「該当するディレクトリのファイルにデータを追加できますが、ファイルを削除できないようにするには、そのディレクトリにどの権限を設定する必要がありますか?」
私の理解によれば、ファイルにデータを追加するには「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では、ディレクトリ権限はどのように機能しますか?
答え2
ディレクトリはファイル権限には関係ありません。ファイルへの書き込みが可能な場合は削除も可能です。次のようにACLを試すことができます。ファイルに対する読み取りおよび書き込み権限を付与するが削除しない方法しかし、これは実装が簡単です。
ファイル権限の説明は次のとおりです。
(rwx------) This area is for owner.
(---rwx---) This area is for group owner.
(------rwx) This area is for others.
(-rwx------) The preceding - indicates a directory.
Value | Meaning
|
==========================================================================================================================================================================================================
|
777 (rwxrwxrwx) | No restrictions on permissions. Anybody may do anything. Generally not a desirable setting.
755 (rwxr-xr-x) | The file's owner may read, write, and execute the file. All others may read and execute the file. This setting is common for programs that are used by all users.
700 (rwx------) | The file's owner may read, write, and execute the file. Nobody else has any rights. This setting is useful for programs that only the owner may use and must be kept private from others.
666 (rw-rw-rw-) | All users may read and write the file.
644 (rw-r--r--) | The owner may read and write a file, while all others may only read the file. A common setting for data files that everybody may read, but only the owner may change.
600 (rw-------) | The owner may read and write a file. All others have no rights. A common setting for data files that the owner wants to keep private.