そのディレクトリのファイルにデータを追加できますが、ファイルを削除できないようにディレクトリにどのような権限を設定する必要がありますか?

そのディレクトリのファイルにデータを追加できますが、ファイルを削除できないようにディレクトリにどのような権限を設定する必要がありますか?

「該当するディレクトリのファイルにデータを追加できますが、ファイルを削除できないようにするには、そのディレクトリにどの権限を設定する必要がありますか?」

私の理解によれば、ファイルにデータを追加するには「w」書き込み権限が必要ですが、それを介してファイルを削除することもできますが、問題はファイルにデータを追加するが削除しないように設定する必要があるということです。

ベストアンサー1

ファイルにデータを追加するには、ファイル自体に対する書き込み権限が必要です。ファイルを削除するには、ファイルを含むディレクトリに対する書き込み権限が必要です。

たとえば、testdirというディレクトリがあり、そのディレクトリに対する書き込み権限を削除しました。

[haxiel@testvm1 ~]$ ls -ld testdir/
dr-xr-xr-x. 2 haxiel haxiel 26 Nov 23 10:09 testdir/

そのディレクトリにtestfile.txtというファイルを作成しました(これはディレクトリへの書き込み権限を削除する前に行われました)。

[haxiel@testvm1 testdir]$ ls -l testfile.txt
-rw-rw-r--. 1 haxiel haxiel 12 Nov 23 10:11 testfile.txt

これで書き込み権限があるので、ファイルにデータを追加できます。

[haxiel@testvm1 testdir]$ echo "Line1" >> testfile.txt
[haxiel@testvm1 testdir]$ echo "Line2" >> testfile.txt
[haxiel@testvm1 testdir]$ cat testfile.txt
Line1
Line2

ただし、親ディレクトリへの書き込み権限がないため、ファイルを削除できません。

[haxiel@testvm1 testdir]$ rm testfile.txt
rm: cannot remove ‘testfile.txt’: Permission denied

ディレクトリ権限の詳細については、この質問を確認してください。ビットを実行して読み出します。 Linuxでは、ディレクトリ権限はどのように機能しますか?

おすすめ記事