変更できないディレクトリに新しいファイルを作成する方法

変更できないディレクトリに新しいファイルを作成する方法

chattr +i /testdir次の方法でディレクトリのプロパティを変更できないように変更しましたが、そのディレクトリにファイルを作成する必要があります。

それとも誰もディレクトリを削除できませんが、所有者はまだディレクトリに書き込めるようにする方法はありますか?

答え1

必要なものを取得する方法は次のとおりです。

chattr +a /testdir

所有者だけが書き込みアクセス権を持つようにディレクトリ自体の権限を設定します。

このaスイッチを使用すると、内部的にファイルを作成および変更できますが、削除することはできません。

ページmanにはファイルで実行される操作chattrのみが記載されていますが、aディレクトリで使用する場合は、同じ操作を実行する方法を見つけるときに見つけたように、上記のものとまったく一致します。

答え2

注文する

chattr -i /testdir

フラグが削除されます。その後、新しいファイルを作成してもう一度

chattr +i /testdir

ディレクトリの削除を防ぐには、グループやその他の親ディレクトリのr合計のみを設定する必要があります。x

答え3

ディレクトリに設定されている不変属性は、そのディレクトリとそのディレクトリの即時(たとえば、最初のレベル)コンテンツにのみ影響します。サブディレクトリの内容ではありません。

したがって、このディレクトリ内のファイルを変更または削除せずにこのディレクトリにファイルを追加する必要がある場合は、aNasir 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

関連情報