... どのように設定すればよいのでしょうか? これはディレクトリに対しても同様に機能しますか? スティッキー ビットや、より「エキゾチック」なものの場合はどうなりますか?
答え1
提案されたように@グスタフ、stat
プログラム(これはGNU コアユーティリティそして、本質的には「Linux」プログラムなので、ポートまたはパッケージBSDシステムでは、コマンド
stat -c "%a %n"
ファイル
8進モード(setuid、setgid、スティッキービットを含む)とファイル名のみを含むフォーマットされたリストを生成します。ドキュメントによると
%a
「8進数でのアクセス権」%n
「ファイル名」
たとえば、次のスクリプトがあるとします。
#!/bin/sh
for name in $*
do
ls -ld "$name"
stat -c '%a %n' "$name"
done
次のような出力が表示される場合がありますmyscript /usr/bin /usr/bin/X /usr/bin/bsd-write
:
drwxr-xr-x 5 root root 118784 Jul 11 19:55 /usr/bin
755 /usr/bin
-rwsr-sr-x 1 root root 9232 Dec 16 2011 /usr/bin/X
6755 /usr/bin/X
-rwxr-sr-x 1 root tty 11000 Jun 17 2010 /usr/bin/bsd-write
2755 /usr/bin/bsd-write
3桁または4桁の8進数が返されます。アクセス権、setuidなどが設定されているかどうかによって異なります。先頭(4番目)の数字は、
- 4 (setuid)
- 2 (設定済み)
- 1 (スティッキー)
のアクセス権システムコールによって返される余分なビットを除いて返されるstat
名前がディレクトリ(S_IFDIR
)かファイル(S_IFREG
)かを示すビットです。ちなみに、これらのビットはすべて、1970年代から1980年代初頭の古いUnix実装により16ビットの値に収まり、標準値。 なぜならアクセス権ファイルタイプを除外する場合は、その値をそのままコマンドで使用できますchmod
(また、chmod
関数)は8進数であり、chmod
コマンドはそれを期待しています。setuidなどでも8進数で動作しますが、
chmod u+s /usr/bin/whatever
より読みやすくなります。
さらに読む
答え2
stat -c "%a %n" <file>
動作するようですが、それ以上はわかりません。
答え3
取得:ギュスターヴが答えた通り。
設定:
chmod 0755 myfile
ディレクトリも同様です。スティッキー ビットの最初の数字は 1 になります。スティッキー ビットについて:https://askubuntu.com/a/432703