chattr +i /testdir
次の方法でディレクトリのプロパティを変更できないように変更しましたが、そのディレクトリにファイルを作成する必要があります。
それとも誰もディレクトリを削除できませんが、所有者はまだディレクトリに書き込めるようにする方法はありますか?
答え1
必要なものを取得する方法は次のとおりです。
chattr +a /testdir
所有者だけが書き込みアクセス権を持つようにディレクトリ自体の権限を設定します。
このa
スイッチを使用すると、内部的にファイルを作成および変更できますが、削除することはできません。
ページman
にはファイルで実行される操作chattr
のみが記載されていますが、a
ディレクトリで使用する場合は、同じ操作を実行する方法を見つけるときに見つけたように、上記のものとまったく一致します。
答え2
注文する
chattr -i /testdir
フラグが削除されます。その後、新しいファイルを作成してもう一度
chattr +i /testdir
ディレクトリの削除を防ぐには、グループやその他の親ディレクトリのr
合計のみを設定する必要があります。x
答え3
ディレクトリに設定されている不変属性は、そのディレクトリとそのディレクトリの即時(たとえば、最初のレベル)コンテンツにのみ影響します。サブディレクトリの内容ではありません。
したがって、このディレクトリ内のファイルを変更または削除せずにこのディレクトリにファイルを追加する必要がある場合は、a
Nasir Rileyが表示したプロパティを使用するのが正しい方法です。
一方、ディレクトリ名の変更/削除を防ぎながらディレクトリに対するフルアクセス権を持つには、次のようにサブフォルダを使用し、上位フォルダを変更できないようにすることができます。
$ mkdir d1
$ mkdir d1/d2
$ sudo chattr +i d1
その後、すべての権限があることを確認できますd1/d2
。
$ touch d1/d2/f1
$ mv d1/d2/f1 d1/d2/f2
$ rm d1/d2/f2
同時にd1
フォルダは変更できません。
$ sudo rm -rf d1/
rm: cannot remove 'd1/d2': Operation not permitted
$ sudo mv d1 d3
mv: cannot move 'd1' to 'd3': Operation not permitted