วิธีการค้นหาไฟล์ที่มีสิทธิ์ที่ไม่ถูกต้องในยูนิกซ์?


14

ฉันกำลังมองหาวิธีการค้นหาไดเรกทอรีหรือไดเรกทอรีและรายการไฟล์ทั้งหมดที่มีการอนุญาตที่ไม่ถูกต้องสำหรับไดเรกทอรีสาธารณะ

คำตอบ:


15

คำถามของคุณอาจระบุได้ชัดเจนยิ่งขึ้น คุณหมายความว่าอย่างไรกับ "การอนุญาตที่ไม่ถูกต้อง" สำหรับไดเรกทอรีสาธารณะ

สมมติว่าคุณต้องการให้ไดเรกทอรีเป็น 755 และไฟล์ธรรมดาเป็น 644 ฉันจะทำดังนี้:

$ find \! -perm 644 -type f -o \! -perm 755 -type d

-o ทำอะไร มันหมายถึงอะไรเช่นหรือ


3
ในกรณีนี้ RTFM ไม่ใช่คำตอบที่เป็นประโยชน์มากเนื่องจากมีการตั้งค่าการค้นหาหลายระดับ มันเป็นความสับสนโดยเฉพาะอย่างยิ่งพยายามที่จะคิดออกว่า -o มีความเกี่ยวข้องกับ -type หรือ -perm
Lighthart

ฉันอนุญาตให้ตัวเองไม่เห็นด้วย คำถามคือ "-o ทำอะไร? มันมีความหมายเหมือนหรือ?" นี่คือคำตอบที่สมบูรณ์แบบโดย man page: "expr1 -o expr2 Or; expr2 ไม่ได้รับการประเมินถ้า expr1 เป็นจริง"
0x89

Btw คำถามของคุณเกี่ยวกับลำดับความสำคัญได้รับการจัดการในย่อหน้าเดียวกันของหน้าคน: "ผู้ดำเนินรายการที่แสดงตามลำดับความสำคัญลดลง" และ "นิพจน์สองแถวในแถวจะถูกนำมารวมกับนัย 'และ'; expr2 จะไม่ประเมินว่า expr1 คืออะไร เท็จ. ")
0x89

5

สิ่งนี้ใช้ได้สำหรับฉัน

find .  \! -perm +755

\!ธงหมายถึงไม่ได้และ-permใช้ตัวเลือกตัวเลือก chmod ปกติ


3

ทุกอย่างขึ้นอยู่กับสิ่งที่คุณพิจารณาว่า 'การอนุญาตที่ไม่ถูกต้อง' man findช่วยให้คุณโดยกำหนดวิธีที่คุณสามารถค้นหาไฟล์ / dirs ได้รับอนุญาต:

   -perm -mode
          All of the permission bits mode are set for the file.  Symbolic modes are
          accepted in this form, and this is usually the way in which would want to
          use them.  You must specify ‘u’, ‘g’ or ‘o’ if you use a  symbolic  mode.
          See the EXAMPLES section for some illustrative examples.

   -perm /mode
          Any of the permission bits mode are set for the file.  Symbolic modes are
          accepted in this form.  You must specify ‘u’, ‘g’ or ‘o’  if  you  use  a
          symbolic  mode.  See the EXAMPLES section for some illustrative examples.
          If no permission bits in mode are set, this test matches  any  file  (the
          idea here is to be consistent with the behaviour of -perm -000).

   -perm +mode
          Deprecated,  old  way  of  searching for files with any of the permission
          bits in mode set.  You should use -perm /mode instead. Trying to use  the
          ‘+’  syntax with symbolic modes will yield surprising results.  For exam‐
          ple, ‘+u+x’ is a valid symbolic mode (equivalent to +u,+x, i.e. 0111) and
          will  therefore  not be evaluated as -perm +mode but instead as the exact
          mode specifier -perm mode and so it matches files with exact  permissions
          0111  instead of files with any execute bit set.  If you found this para‐
          graph confusing, you’re not alone - just use -perm /mode.  This  form  of
          the -perm test is deprecated because the POSIX specification requires the
          interpretation of a leading ‘+’ as being part of a symbolic mode, and  so
          we switched to using ‘/’ instead.

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.