web-dev-qa-db-ja.com

ファイルモードビットがa + rwのファイルを削除できません

次のファイルモードビット(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
7
haba713

/tmpディレクトリは、通常、制限付き削除フラグでマークされ、許可文字tまたはTとして表示されますls出力。

制限付き削除はいくつかのことを意味します。一般的なケースでは、ファイルの所有者または/tmp自体の所有者のみが/tmp内のファイル/ディレクトリを削除できることを意味します。

あなたは所有者ではないため、ファイルを削除できません。つまり、rootです。忘れてしまったrmを付けてSudoを実行してみてください。

Sudo rm /tmp/test

より具体的には、Linuxのみの場合、(/tmpなどの誰でも書き込み可能なディレクトリにある)削除制限フラグまた、は、protected_symlinksprotected_hardlinksprotected_regular、およびprotected_fifosを有効にしますこのようなディレクトリでは、ユーザーが所有していないシンボリックリンクをユーザーがたどることを禁止し、ユーザーが所有していないファイルにハードリンクを作成することを禁止し、ユーザーが所有していないFIFOを開くことを禁止し、ユーザーが既存のファイルを開くことを禁止します。彼らはそれらを作成することを期待したときに所有していません。

これは、rootを使用するdoときにSudoのようにさらにさまざまなことを行うと、権限エラーで驚かれるでしょう。

これらの詳細については、「 CentOS 6とCentOS 7でハードリンクのアクセス許可の動作が異なる 」、「 ユーザーの変更時にシンボリックリンクが期待どおりに機能しない 」、「- / tmpでrootのグループ権限が機能していない "。

12
Samuel Philipp

問題は、/tmp

 $ ls -ld /tmp
drwxrwxrwt⃝1ルートルート1044 3月13日12:09 /tmp

https://en.wikipedia.org/wiki/Sticky_bit

ディレクトリのスティッキービットが設定されている場合、ファイルシステムはそのようなディレクトリ内のファイルを特別な方法で処理するため、ファイルの所有者、ディレクトリの所有者、またはrootユーザーのみがファイルの名前を変更または削除できます。スティッキービットが設定されていない場合、ディレクトリの書き込みおよび実行権限を持つユーザーは、ファイルの所有者に関係なく、含まれているファイルの名前を変更または削除できます。 通常、これは/ tmpディレクトリで設定され、一般ユーザーが他のユーザーのファイルを削除または移動できないようにします。

6
haba713