আমি এমন ফাইলগুলি সন্ধান করতে চাই যা কোনও নির্দিষ্ট ব্যবহারকারী পড়তে সক্ষম হবে না।
ধরুন, ব্যবহারকারীর নামটি "ব্যবহারকারী 123" এবং তারা "ইউজার 123" নামে একটি গোষ্ঠীতে রয়েছে। আমি এমন ফাইলগুলি সন্ধান করতে চাইছি যেগুলি যদি তাদের ব্যবহারকারীর মালিকানাধীন হয় তবে আপনার যদি ইউটিআর 12 থাকে; ব্যর্থ হয়েছে যে ফাইলটি যদি গ্রুপ ব্যবহারকারী হয় তবে এটিতে জি + আর চালু থাকতে হবে; ব্যর্থ হওয়ায় এটিতে ও + আর চালু থাকতে পারে।
যেহেতু জিএনইউতে "পাঠযোগ্য" রয়েছে তাই আমি এটি করতে পারি:
sudo -u user123 find /start ! -readable -ls
তবে প্রক্রিয়াটি এমন কোনও ব্যবহারকারী দ্বারা চালিত করতে হবে যার সুডো অ্যাক্সেস নেই। সুতরাং II এটি চেষ্টা করেছে: (এটি o + r পরীক্ষা করে না তবে এটি এই মুহুর্তে গুরুত্বপূর্ণ নয়)
find /start \( -user user123 ! -perm -u=r \) -o \( -group user123 ! -perm -g=r \) -ls
তবে এটি এই ফাইলটি তালিকাভুক্ত করে:
272118 4 -rw------- 1 user123 user123 3243 Jul 3 19:50 /start/blah/blah/file.txt
এই ফাইলটি এমন একমাত্র ফাইল যার অধীনে /start
ব্যবহারকারীর দ্বারা মালিকানাধীন 123 g=r
অফ রয়েছে। এটি যেমন হিসাবে ব্যাখ্যা করা -u=r
হয় -g=r
।
আমি সিদ্ধান্ত নিয়েছিলাম যুক্তিটিকে উল্টো করার চেষ্টা করে পরিবর্তে পরীক্ষার জন্য not ( truth )
:
find /etc/puppet ! \( \( -user puppet -perm -u=r \) -o \( -group puppet -perm -g=r \) -o \( -perm -o=r \) \) -ls
ওই কাজগুলো!
কেন আসল find
ব্যর্থ? এটি কি কোনও বাগ ইন find
(সম্ভাবনা নেই) বা যুক্তিটি ভুল?
আপডেট: আমার যুক্তিটি ভুল ছিল। নীচে হিসাবে নির্দেশিত, যেহেতু! (এ || বি || সি) == (! ও! এন্ড এন্ড বি! এবং সি!) এই দুটি সমতুল্য বক্তব্য:
find /start ! \( \( -user user123 -perm -u=r \) -o \( -group user123 -perm -g=r \) -o \( ! \( -user user123 -o -group user123 \) -perm -o=r \) \) -ls
find /start ! \( -user user123 -perm -u=r \) ! \( -group user123 -perm -g=r \) ! \( ! \( -user user123 -o -group user123 \) -perm -o=r \) -ls
আমার লক্ষ্যটি ছিল না যে দু'বার ব্যবহারকারীর / গ্রুপ পরীক্ষা করা test আমার যা দরকার তা হল আরও জটিল যদি-তবে-অন্য কাঠামো, যা সম্ভবত তখনই সম্ভব হত যদি কোনও এক্স-অপারেটর থাকত। আমি এবং / অথবা / এর বাইরে একটি জোর তৈরি করতে পারি তবে এটি উপরের দুটি সমাধানের চেয়ে জটিল complex
puppet
সাহায্যে কোনও ফাইলের অ্যাক্সেস রয়েছে--wxrwxrwx puppet puppet
।