手册页指出:
-perm -mode
表示模式中的所有权限位均已为该文件设置。
-perm /mode
表示为该文件设置了 mode 中的任何权限位。
当我使用和/tmp
权限创建两个目录并使用这些命令时,发现这两个目录都具有和权限。1777
1755
1777
1755
find / -perm -1000 -type d
find / -perm /1000 -type d
这就是我感到困惑的原因。我使用 CentOS 7 作为我的发行版。
手册页指出:
-perm -mode
表示模式中的所有权限位均已为该文件设置。
-perm /mode
表示为该文件设置了 mode 中的任何权限位。
当我使用和/tmp
权限创建两个目录并使用这些命令时,发现这两个目录都具有和权限。1777
1755
1777
1755
find / -perm -1000 -type d
find / -perm /1000 -type d
这就是我感到困惑的原因。我使用 CentOS 7 作为我的发行版。
八进制 8#1000 是二进制 2#1_000_000_000,它只设置了一位,即粘性位,因此所有或任何都没有区别。
/tmp
已设置所有该一位,并且已设置任何一位。您会发现至少设置了 2 位的值存在差异,例如在
-perm -5000
vs-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 ...+... {} +
)。