以下は、_ser1が所有するファイル/tmp/testfile
を示しています。グループはwheelに変更され、ser2も含まれています。ファイルには、グループに対するrw
権限があります。それで、グループのメンバーはそれを削除できないはずですか?以下の出力例は、ser2がファイルを削除できないことを示しています。どうして?
[user2@files ~]$ ls -l /tmp/testfile
-rw-rw-r-- 1 user1 wheel 0 Jul 18 18:54 /tmp/testfile
[user2@files ~]$ groups
user2 wheel
[user2@files ~]$ rm /tmp/testfile
rm: cannot remove `/tmp/testfile': Operation not permitted
まず、間違った許可を調べています。ファイルを移動/名前変更/削除すると、親ディレクトリのみが変更されます。ファイル自体の権限はチェックされません。ディレクトリのファイルリストからのみエントリを削除します。したがって、親ディレクトリ(この場合は_/tmp
_)の権限を確認する必要があります。
_$ ls -ld /tmp
drwxrwxrwt 15 root root 460 Jul 19 15:18 /tmp/
_
次に、_/tmp
_は特別です。事実上すべてのシステムで、誰でも書き込み可能(_ugo=rwx
_)なので、一見すると、誰でもその中のファイルの名前を変更または削除できるように見えます。もちろん、これにより他のユーザーの問題を簡単に(さらに簡単に)作成できます。したがって、_/tmp
_には常に「スティッキー」または「制限付き削除」モードセット(_o+t
_)があります。このモードを設定すると、権限に関係なく、ファイルの所有者のみがそのディレクトリ内のファイルを移動または削除できます。
(GNU coreutilsでは、chmod(1)
のマニュアルページに "制限付き削除フラグまたはスティッキービット" に関するセクションがあります。)