Làm thế nào để tìm tập tin có quyền không chính xác trên unix?


14

Tôi đang tìm cách để tìm kiếm một thư mục hoặc thư mục và liệt kê tất cả các tệp có quyền sai cho thư mục công cộng.

Câu trả lời:


15

Câu hỏi của bạn có thể được nêu rõ hơn, đặc biệt. bạn có ý nghĩa gì với "quyền sai" cho một thư mục công cộng?

Giả sử rằng bạn muốn thư mục là 755 và các tệp thông thường là 644, tôi sẽ làm như thế này:

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

-O làm gì? Nó có nghĩa gì đó giống như HAY?


3
Trong trường hợp cụ thể này, RTFM không phải là một câu trả lời rất hữu ích với nhiều mức cài đặt tìm thấy; thật khó hiểu khi cố gắng tìm hiểu xem -o có liên quan đến -type hay -perm hay không.
Lighthart

Tôi cho phép mình không đồng ý. Câu hỏi là "Cái gì -o làm gì? Nó có nghĩa gì đó giống như OR?". Điều này được trả lời hoàn hảo bởi trang man: "expr1 -o expr2 Hoặc; expr2 không được đánh giá nếu expr1 là đúng."
0x89

Btw. câu hỏi của bạn về quyền ưu tiên được xử lý trong cùng một đoạn của trang man: "HOẠT ĐỘNG Được liệt kê theo thứ tự giảm dần ưu tiên" và "Hai biểu thức liên tiếp được thực hiện để được nối với ngụ ý 'và'; expr2 không được đánh giá nếu expr1 được đánh giá sai.").
0x89

5

Điều này làm việc cho tôi

find .  \! -perm +755

Các \!phương tiện cờ không và -permsử dụng tùy chọn các tùy chọn chmod bình thường


3

Mọi thứ phụ thuộc vào những gì bạn cho là 'sự cho phép không chính xác'. man find giúp bạn bằng cách xác định cách bạn có thể tìm tệp / thư mục với sự cho phép:

   -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.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.