web-dev-qa-db-ja.com

すべてのユーザーにディレクトリ内のファイルの作成を許可しますが、削除できるのは所有者のみです

どのように使用できますか。できれば単一のchmodコマンドを使用します。これにより、ユーザーはディレクトリにファイルを作成できますが、ファイルの所有者(ファイルを作成したユーザー)のみが自分のファイルを削除できますが、誰も削除できません他はそのディレクトリにあります。

私は使用することを考えていました:

chmod 755 directory

ユーザーはファイルを作成して削除できますが、他の人のファイルを削除することはできませんか?

ファイルを作成した人だけが自分のファイルを削除できるようにしたい。したがって、誰でもファイルを作成できますが、ファイルを作成した人だけがそのファイルを(ディレクトリ内で)削除できます。

19
Mandingo

スティッキービットは多かれ少なかれあなたが望むものを行うことができます。 man 1 chmodから:

制限付き削除フラグまたはスティッキービットは1ビットであり、その解釈はファイルタイプによって異なります。ディレクトリの場合、権限のないユーザーがファイルまたはディレクトリを所有していない限り、ディレクトリ内のファイルを削除したり名前を変更したりすることができません。これはディレクトリの制限付き削除フラグと呼ばれ、一般に/ tmpなどの誰でも書き込み可能なディレクトリにあります。

つまり、ディレクトリにスティッキービットが存在する場合、ユーザーがファイルの所有者または格納されているディレクトリの所有者(またはユーザーがroot)である場合にのみ、含まれるファイルの名前を変更または削除できます。

次のように、スティッキービット(8進数の1000またはtで表される)を適用できます。

# instead of your chmod 755
chmod 1777 directory

# or, to add the bit to an existing directory
chmod o+t directory
32
Chris Down

ほとんど/tmpディレクトリは、そのタイプの権限セットで作成されます。

あなたは世界を「粘着性がある」ビットが欲しいです。そのビットを設定する象徴的な方法は次のとおりです。

# chmod ugo+w,+t directory

「モーダル」な方法は次のとおりです。

# chmod 1777 directory
# ls -ld directory
drwxrwxrwt  2 root  wheel  2 Oct 21 17:06 directory/
14
Jim L.