chmod 0000 directory-nameがディレクトリの特別なビットをクリアしないのはなぜですか?


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

なぜchmod 0000 testすべての許可ビットがクリアされないのかわかりません。ここには何が入っていませんか?電卓と比較してみましたが、一致しません。sshを実行したサーバー、RHEL、および自分のマシンUbuntuでも同じ動作が見られます。私はこれについてしばらく読んでいて、理解しようとすることに多くの時間を費やしました。

以前に4つの8進数でchmodを使用したことがないため、最初の8進数のすべてのシンボルを試すときにこの問題に遭遇しました。ただし、スティッキービットはクリアされるようです。

回答:


8

0000は単に000を意味する可能性があるため、あいまいであると見なされました。

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

0755は明示的ではありません。printf%#3oを明示的に使用して、先頭に0を付けた3桁の8進文字列を出力している人々にはあいまいです-これは変更できないと思います。

そのcoreutilsディスカッションスレッド、chmodのmanページを引用している誰かがこの制限を指摘して開始します。

数値モードでビットを設定できます(ただしクリアはできません)。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.