-perm -1000 和 -perm /1000 会产生相同的结果来查找设置了粘性位的文件吗?

-perm -1000 和 -perm /1000 会产生相同的结果来查找设置了粘性位的文件吗?

手册页指出:

-perm -mode表示模式中的所有权限位均已为该文件设置。

-perm /mode意味着模式中的任何权限位都为该文件设置。

当我使用和/tmp权限创建两个目录并使用这些命令时,发现这两个目录都具有和权限。1777175517771755

find / -perm -1000 -type d

find / -perm /1000 -type d

这就是我感到困惑的原因。我使用 CentOS 7 作为我的发行版。

答案1

八进制 8#1000 是二进制 2#1_000_000_000,它只设置了一位,即粘性位, 所以全部或者任何没有什么区别。

/tmp已设置所有该一位,并且已设置任何一位。

您会发现至少设置了 2 位的值存在差异,例如在-perm -5000vs中-perm /5000(8#5000 是设置了 2 位的 2#101_000_000_000),其中前者返回同时设置了 setuid 和 Sticky 位的文件,而后者返回了其中一个(或两个)设置。

您通常用于/诸如-perm /111(可由某人执行)-perm /444(可由某人读取)或-perm /6000(setuid 或 setgid,即危险)之类的东西,以及诸如(可由所有人执行)-之类的东西, (可由其所有者读取和写入)取反 ( )。-perm -111-perm -600! -perm -... -exec chmod ...+... {} +

相关内容