固定ビットが設定されているディレクトリからファイルを作成/削除するには、次のいずれかの操作が必要であることを理解してください。
- あなたは根です
- あなたはこのファイルの所有者です
- あなたはこのディレクトリの所有者です
+w
そして、あなたもディレクトリにいる必要があります。
問題は+x
ディレクトリにあります。私が知っている限り、ディレクトリの固定ビットが設定されていない場合は、+x
そのディレクトリにファイルを作成/削除する必要があります。ところが教授様が+x
スティッキービットが設定されていれば必要ないと言われました。
Ubuntu 16.04で試してみましたが、+x
固定ビットが設定されていてもまだ必要なようです。
Bob@david-VirtualBox:/home/Alice$ ls -ld InBox/
drwx----wT 2 Alice Alice 4096 十一 7 01:09 InBox/
Bob@david-VirtualBox:/home/Alice$ touch InBox/some_file
touch: cannot touch 'InBox/some_file': Permission denied
Bob@david-VirtualBox:/home/Alice$ rm InBox/link
rm: cannot remove 'InBox/link': Permission denied
Bob@david-VirtualBox:/home/Alice$ su Alice
Password:
Alice@david-VirtualBox:~$ chmod 1703 InBox/
Alice@david-VirtualBox:~$ su Bob
Password:
Bob@david-VirtualBox:/home/Alice$ touch InBox/some_file
Bob@david-VirtualBox:/home/Alice$ rm InBox/link
Bob@david-VirtualBox:/home/Alice$
私の質問
- この動作はディストリビューション全体で一貫していますか、それともいくつかの標準で説明されていますか?
- Googleを使ってみましたが、ディレクトリ固定ビットのほとんどのリソースは上記の3つの点を強調しています。教授がこう言われたのに、どんな(歴史的な?)理由があるのか気になります。
誰かが尋ねると、教授に私の電子メールに返信してくれるかどうか尋ねます。
よろしくお願いします。
答え1
教授が間違っていました:
ディレクトリから何かを削除するには、ディレクトリのxビットによって与えられる「検索権限」が必要です。
xビットがない場合は、削除するファイルが存在するかどうかを確認する方法はありません。