ユーザーはファイルへの書き込みアクセス権を持っていますが、読み取ることはできませんか?どうやってこれができますか?
次のコマンドを試しました。
debianbox@debian:~/posix/io$ touch filetest
debianbox@debian:~/posix/io$ ls -l filetest
-rw-r--r-- 1 debianbox debianbox 0 14 oct. 03:10 filetest
debianbox@debian:~/posix/io$ echo "Hello World" > filetest
debianbox@debian:~/posix/io$ cat filetest
Hello World
debianbox@debian:~/posix/io$ chmod u-r filetest
debianbox@debian:~/posix/io$ cat filetest
cat: filetest: Permission forbidden
debianbox@debian:~/posix/io$
ここに示すように、ファイルに対する書き込み権限はありますが、読み取り権限はありません。どうやってこれができますか?これはバグと見なされますか?そうでなければ、どのような状況でこれが役に立ちますか?
ベストアンサー1
書き込みアクセスは許可しますが読み取りアクセスは許可しない主な理由は、カーネルとユーザープログラムの両方で権限管理を簡素化するためです。権限には2種類あります。 1 つは読み取り、もう 1 つは書き込みであり、独立して管理されます。文書化されたアクションが実際のアクションと一致し、他のアクションを必要とする妥当な理由がないため、これはバグではありません。
一般ファイルの場合、書き込み権限はありますが読み取り権限はないことは意味がありません。あらゆる種類の特殊ファイルに適しています。
- 一部のシステムでは、ファイルの添付のみを許可します。たとえば、これはログファイルに役立ちます。多くのユーザーがログエントリを生成することを許可しますが、既存のエントリを削除または上書きすることを許可しない(つまり、書き込み権限はありますが属性の追加のみを許可)、他の人のエントリを読み取ることはできません(したがって許可されません)。権限を許可するのが合理的です。 )。
- プログラムは名前付きパイプに書き込むことができますが、読み取ることはできません。
- 一部のデバイスは書き込み専用です。たとえば、スピーカーに接続されているがマイクを持たないサウンド出力デバイスには書き込みアクセス権が必要ですが、読み取りアクセス権はありません。
- ストレージにデータを検索または追加する代わりに、ファイルの読み取りまたは書き込みがすぐに発生するさまざまな特殊なファイルシステムがあります。たとえば、Linuxには、ユーザースペースプログラムが特定のファイルに書き込み、カーネルにコマンドを送信できるようにする
/proc
さまざまなファイルがあります。/sys
コマンドがフィードバックを提供しない場合、特殊ファイルは書き込み専用になります。