読み取りアクセスなしの書き込みアクセス


15

ユーザーがファイルへの書き込みアクセス権を持ち、それを読み取ることができない可能性はありますか?どうして可能ですか?

次のコマンドを試しました。

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$

ご覧のとおり、このファイルには書き込みアクセス権がありますが、読み取りアクセス権はありません。これはどのように可能ですか?これはバグと見なされますか?そうでない場合、これはどのような状況で役立ちますか?

回答:


18

これはバグではなく、機能TMです(また、Unixによるパーミションへのアプローチの結果です)。

ディレクトリの場合のDropboxのような動作とは別に(BillThorで説明されているように)、/procおよびの下のいくつかの特別な(疑似)ファイルには書き込み専用アクセスが必要です/sys。このようなファイルは、一部のドライバーまたはカーネルのプロパティを設定したり、システムアクションをトリガーしたりするために使用されます。それらは一方向の信号にのみ使用されるため、読み取ることができません-一部のテキスト/データのみをエコーすることができます。そのようなファイルを見つけるには、次を使用できます。

find /proc/[^0-9]* /sys -perm /222 ! -perm /444

これらのファイルは高度なシステム設定に使用される可能性があるため(潜在的に危険)、それらのファイルrootへの書き込みアクセスしか持たないことに注意してください(ほとんどの場合)。


21

読み取りアクセスなしで書き込みアクセスを許可する主な理由は、カーネル内とユーザープログラムの両方でアクセス許可の管理が簡単になることです。読み取り用と書き込み用の2つのアクセス許可があり、それらは個別に管理されます。文書化された動作が実際の動作と一致し、別の動作を要求する正当な理由がないため、これはバグではありません。

読み取り権限なしで書き込み権限を持つことは、通常のファイルではあまり意味がありません。さまざまな特殊ファイルに対して意味があります。

  • 一部のシステムでは、追加専用ファイルが許可されています。これは、たとえばログファイルに役立ちます。多くのユーザーがログエントリを作成できるようにすることはできますが、既存のエントリを消去または上書きすることは許可されず(したがって、書き込み許可ですが、追加のみの属性)、他のエントリを読み取ることはできません(したがって:no読み取り許可)。
  • プログラムは、名前付きパイプからの読み取りを許可されることなく、名前付きパイプへの書き込みを許可される場合があります。
  • 一部のデバイスは書き込み専用です。たとえば、ラウドスピーカーに接続されているがマイクがないサウンド出力デバイスには、書き込み権限はあるが読み取り権限はないはずです。
  • データを取得したりストレージに追加したりするのではなく、ファイルの読み取りや書き込みが即座に影響するさまざまな特殊なファイルシステムがあります。たとえば、Linuxの下にはさまざまなファイルが/procあり/sys、ユーザースペースプログラムは特定のファイルに書き込むことでカーネルにコマンドを送信できます。そのコマンドがフィードバックを提供しない場合、特殊ファイルは書き込み専用になります。

2

いいえ、これはバグではありません。ただし、ファイルに一般的に適用されることはありません。

私はほとんどの場合、Dropboxディレクトリへの書き込み専用アクセスを見てきました。ユーザーはディレクトリにファイルを追加できますが、どのファイルが存在するかは確認できません。

通常のテキストファイルでは、ドロップボックスタイプのアクセスには書き込みのみのアクセスが適切です。

自分で書き込み専用アクセスを設定することはそれほど便利ではありませんが、許可しないとアクセス許可コードが複雑になります。

編集:Dropboxファイルは有用ではない可能性があります。ただし、ログエントリを上書きするのがより困難になるため、非ルートログの場合は便利です。ファイルを読み取ることができれば、置換ログエントリを書き込む場所を簡単に特定できます。ただし、このようにログを設定する人は誰も知りません。一般的に、リモートロギングを使用して、ログエントリがローカルで変更されるのを防ぎます。

許可の組み合わせを許可するルールを設定すると、予期しない有用な許可を防止できます。多くの組み合わせは、所有者レベルよりもグループレベルまたは世界レベルでより意味があります。所有者によるアクセスを阻止する試みは、簡単に上書きできます。しかし、彼らは落ち着いた秒を強制するのに役立ちます。


「ドロップボックスファイル」は実際にはほとんど意味がありません。データの書き込みにのみ使用でき、ある時点で読み取り可能になったとしても、その内容は以前に消去または削除された可能性があるため、実際に何が起こったのかを示すことはできません。
rozcietrzewiacz
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.