如何在unix上查找具有不正确权限的文件?

如何在unix上查找具有不正确权限的文件?

我正在寻找一种方法来搜索一个或多个目录并列出对公共目录具有错误权限的所有文件。

答案1

您的问题可以表述得更清楚一些,特别是对于公共目录来说,“错误的权限”是什么意思?

假设您希望目录为 755 而普通文件为 644,我会这样做:

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

答案2

这对我有用

find .  \! -perm +755

\!标志表示不,并且该-perm选项使用正常的 chmod 选项

答案3

一切都取决于您认为什么是“不正确的许可”。男人找到通过定义如何查找具有给定权限的文件/目录的方式来帮助您:

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

相关内容