ファイルとフォルダは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
その理由は:の粘着部分によるものです。/tmp
drwxrwxrwt 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
実行することです。