使用 `find -perm` 查找未设置权限的时间
Posted
技术标签:
【中文标题】使用 `find -perm` 查找未设置权限的时间【英文标题】:Using `find -perm` to find when a permission is not set 【发布时间】:2011-05-21 22:07:43 【问题描述】:我想在我的目录中找到不可读的文件(例如带有 g-r 的文件)。所以我尝试了这个:
find . -perm -g-r
它显示了我所有的文件??所以我尝试了这个:
find . -perm -g+r
它只向我显示了可读文件。 -perm -g-r
似乎与所有文件匹配。我正在使用 CentOS 5.5。难道我做错了什么?看起来-perm -g-r
没有做任何有用的事情。
【问题讨论】:
我相信权限参数的-
前缀意味着匹配具有“至少”这些权限的文件。所以它匹配不是组可读的文件以及组可读的文件,因为组可读文件具有被认为“大于”g-r
的组权限
【参考方案1】:
试试:
find . ! -perm -g+r
【讨论】:
成功了!我仍然对-perm -g-r
不工作感到困惑,但是哦,好吧。
这是一个明显的扩展来查找不可执行的文件,也是。谢谢!
如果我想将搜索限制在文件而不是目录,并且想要-maxdepth
2 怎么办?我的意思是,我如何在断言其他事情的同时否定烫发?编辑:没关系。您可以使用 ! 否定任何选项。起初它似乎不起作用,但确实如此。我做了find -maxdepth 2 ! -perm -g+r -type d
,发现目录深度为2,没有组读取权限。
我认为-perm
选项不支持g-r
就像chmod g-r <file>
一样【参考方案2】:
如果您想查找 您 不可读的文件,您可以使用
find . ! -readable
【讨论】:
这适用于 Linux,但在 Mac 上找到的 BSD(从 2008 年开始)不支持它。 好点。可能有不少版本的 find out 不支持 -readable。【参考方案3】:当您执行以下指令时,您可以看到所有文件,因为您是以 root 身份执行的。
find . -perm -g-r
尝试以普通用户身份执行。
【讨论】:
文件属性(权限、所有权、大小等)不依赖于用户。我相信你的答案是错误的。 另外,OP 询问了如何找到位 not 集,Tim Cooper 的答案是这样,而你的却没有。以上是关于使用 `find -perm` 查找未设置权限的时间的主要内容,如果未能解决你的问题,请参考以下文章
未执行的任务(Django + Heroku + Celery + RabbitMQ)