次のファイルモードビット(a+rw
):
[0] mypc<johndoe>:~>Sudo touch /tmp/test
[0] mypc<johndoe>:~>Sudo chmod a+rw /tmp/test
[0] mypc<johndoe>:~>ls -l /tmp/test
-rw-rw-rw- 1 root root 0 Mar 13 11:09 /tmp/test
ファイルを削除できないのはなぜですか?
[0] mypc<johndoe>:~>rm /tmp/test
rm: cannot remove '/tmp/test': Operation not permitted
/tmp
ディレクトリは、通常、制限付き削除フラグでマークされ、許可文字t
またはT
として表示されますls
出力。
制限付き削除はいくつかのことを意味します。一般的なケースでは、ファイルの所有者または/tmp
自体の所有者のみが/tmp
内のファイル/ディレクトリを削除できることを意味します。
あなたは所有者ではないため、ファイルを削除できません。つまり、root
です。忘れてしまったrm
を付けてSudo
を実行してみてください。
Sudo rm /tmp/test
より具体的には、Linuxのみの場合、(/tmp
などの誰でも書き込み可能なディレクトリにある)削除制限フラグまた、は、protected_symlinks
、protected_hardlinks
、protected_regular
、およびprotected_fifos
を有効にしますこのようなディレクトリでは、ユーザーが所有していないシンボリックリンクをユーザーがたどることを禁止し、ユーザーが所有していないファイルにハードリンクを作成することを禁止し、ユーザーが所有していないFIFOを開くことを禁止し、ユーザーが既存のファイルを開くことを禁止します。彼らはそれらを作成することを期待したときに所有していません。
これは、root
を使用するdoときにSudo
のようにさらにさまざまなことを行うと、権限エラーで驚かれるでしょう。
これらの詳細については、「 CentOS 6とCentOS 7でハードリンクのアクセス許可の動作が異なる 」、「 ユーザーの変更時にシンボリックリンクが期待どおりに機能しない 」、「- / tmpでrootのグループ権限が機能していない "。
問題は、/tmp
。
$ ls -ld /tmp drwxrwxrwt⃝1ルートルート1044 3月13日12:09 /tmp
https://en.wikipedia.org/wiki/Sticky_bit
ディレクトリのスティッキービットが設定されている場合、ファイルシステムはそのようなディレクトリ内のファイルを特別な方法で処理するため、ファイルの所有者、ディレクトリの所有者、またはrootユーザーのみがファイルの名前を変更または削除できます。スティッキービットが設定されていない場合、ディレクトリの書き込みおよび実行権限を持つユーザーは、ファイルの所有者に関係なく、含まれているファイルの名前を変更または削除できます。 通常、これは/ tmpディレクトリで設定され、一般ユーザーが他のユーザーのファイルを削除または移動できないようにします。