/ tmpからrootが所有しているファイルを削除できません。

/ tmpからrootが所有しているファイルを削除できません。

ファイルとフォルダはrootが所有していますが、私はsudo chmod ugo+rw両方の方法でこれを行いましたls -l。ただし、通常のユーザーとしてファイルを削除することはできません。

❯ ls -ld /tmp /tmp/perm
drwxrwxrwt 46 root root 1160 Jan  9 17:41 /tmp
-rw-rw-rw-  1 root root    3 Jan  9 17:40 /tmp/perm
❯ rm /tmp/perm
rm: cannot remove '/tmp/perm': Operation not permitted

Attr と ACL が構成されていません。

❯ lsattr -d /tmp
---------------------- /tmp
❯ getfacl /tmp
getfacl: Removing leading '/' from absolute path names
# file: tmp
# owner: root
# group: root
# flags: --t
user::rwx
group::rwx
other::rwx

サブフォルダでも同じことができます。

/tmp/Arch Linux にインストールされ実行される ext4 システムの一部です。

答え1

tその理由は:の粘着部分によるものです。/tmpdrwxrwxrwt 46 root root 1160 Jan 9 17:41 /tmp

からman chmod

制限除去フラグまたは固定ビット

制限された除去フラグまたは固定ビットは、ファイル形式によって解釈が異なる単一ビットである。ディレクトリの場合、権限のないユーザーがファイルまたはディレクトリを所有していない限り、ディレクトリからファイルを削除または名前変更することを防ぎます。これはディレクトリの削除制限フラグと呼ばれ、/tmpのような誰でも書き込むことができるディレクトリにあります。

以下を使用して固定ビットを設定できます。

chmod +t /path/to/dir

または

chmod o+x,+t /path/to/dir

2つの違いは、ディレクトリに実行権限がない場合、最初のものがT代わりに設定されることです。t他の人。代わりにo+x,+t実行権限が与えられ、固定ビットがセットされます。

この場合、私はあなたをお勧めしませんそれから粘着性のあるビットを取り除きます/tmp。ただし、削除するには以下を使用する必要があります。

sudo chmod -t /tmp

あるいは、より良い方法は、固定ビットを削除せずにrm /tmp/permルート(または)でsudo実行することです。

関連情報