为什么 chmod 0000 directory-name 不会清除目录上的特殊位?

Leo*_*rdo 8 linux chmod

$ mkdir test 
$ chmod 0000 test 
$ ls -la | grep test | awk '{print $1}'
d---------.
$ chmod 6000 test
$ ls -la | grep test | awk '{print $1}'
d--S--S---.
$ chmod 0000 test
$ ls -la | grep test | awk '{print $1}'
d--S--S---.
Run Code Online (Sandbox Code Playgroud)

我不确定为什么chmod 0000 test不清除所有权限位。我没有得到什么?我试过与计算器进行比较,但它们不匹配。在我通过 ssh 连接到的服务器 RHEL 和我自己的机器 Ubuntu 上可以看到相同的行为。我已经阅读了一段时间并花了太多时间试图理解。

我在尝试第一个八进制的所有符号时遇到了这个问题,之前从未使用过 chmod 和 4 个八进制。然而,它似乎确实清除了粘性位。

Nic*_*sso 8

0000 被认为是不明确的,因为它可能只是表示 000,加上一个前导零,因为它是八进制。

http://lists.gnu.org/archive/html/bug-coreutils/2011-03/msg00162.html

0755 不是明确的 - 对于明确使用 printf %#3o 输出带有前导 0 的 3 位八进制字符串的人来说,这是模棱两可的 - 我认为我们无法改变这一点。

那个 coreutils 讨论线程有人引用 chmod 手册页开始,注意到这个限制:

您可以使用数字模式设置(但不清除)这些位。