chmod
すべてのユーザーがディレクトリにファイルを作成できますが、ファイル所有者(ファイルを作成したユーザー)だけが自分のファイルを削除でき、そのディレクトリの他の人は削除できないコマンドをどのように使用できますか?
私は次を使いたいです:
chmod 755 directory
これで、ユーザーがファイルを作成して削除できるようになります。
ファイルを作成した人が自分のファイルを削除できることを願っています。したがって、誰でもファイルを作成できますが、そのファイルを作成した人だけがディレクトリ内のファイルを削除できます。
答え1
粘着性のあるビットはあなたが望むものをある程度行うことができます。からman 1 chmod
:
制限された除去フラグまたは固定ビットは、ファイル形式によって解釈が異なる単一ビットである。ディレクトリの場合、権限のないユーザーがファイルまたはディレクトリを所有していない限り、ディレクトリからファイルを削除または名前変更することを防ぎます。これはディレクトリの削除制限フラグと呼ばれ、/tmpのような誰でも書き込むことができるディレクトリにあります。
つまり、ディレクトリに固定ビットがある場合、ユーザーがファイルの所有者である場合、または含まれているディレクトリの所有者(またはユーザーがルート)である場合にのみ、含まれるファイルの名前を変更または削除できます。
t
次のように固定ビット(8進数1000またはで示す)を適用できます。
# instead of your chmod 755
chmod 1777 directory
# or, to add the bit to an existing directory
chmod o+t directory
答え2
ほとんどの/tmp
ディレクトリは、この種の権限セットで作成されます。
あなたは世界がもう少し「ベタベタ」になることを望みます。このビットを設定する記号的な方法は次のとおりです。
# chmod ugo+w,+t directory
「モーダル」方式は次のとおりです。
# chmod 1777 directory
# ls -ld directory
drwxrwxrwt 2 root wheel 2 Oct 21 17:06 directory/