ファイルが所有者(400)のみを読み取ることができる場合、読み取りおよび書き込み権限を持つファイルよりも安全ですか?
せいぜい実際のセキュリティを追加するのではなく、自分のファイルに愚かな間違いを犯すのを防ぐのに役立ちませんか?ファイルを所有している場合は、その権限を変更できます。したがって、誰かが悪意のあるユーザーへのアクセス権を取得した場合、そのユーザーが所有するファイルを400に設定すると、攻撃者がそのファイルに対する権限を変更してそのファイルに書き込むことを防ぐことはできませんか?
書き込めないファイルを持つことでセキュリティを得ることはできますか?
答え1
脅威モデルがバイナリの場合(ユーザーアカウントが破損していないか完全に破損している(任意のコマンドを実行))、違いはありません。ご存知のように、攻撃者はchmod u+w
このファイルにのみアクセスできます。
しかしある程度妥協は可能です。たとえば、攻撃者が「すべてのファイルに書き込む」権限のみを取得した場合、0400ファイルに書き込むことはできません。しかし、ほとんどの場合、これの利点は疑わしいです。 「すべてのファイルの書き込み」は、~/.bashrc
かなり簡単に任意のコマンド(writeなど)に昇格できます。
また、親ディレクトリへの書き込み権限を持つモード0400ファイルを削除(リンク解除)することもできます。これは、攻撃者が既存のファイルを削除し、同じ名前の新しいファイルを配置できることを意味します。
心に浮かぶ「安全な」用途の一つは、FTPなどの保管用アカウントです。モード0400では、readmeファイルを置くことができます。 Dropboxの親ディレクトリがに設定されている場合、a+rwxt
誰もがここに新しいファイルを追加でき、それによって+t
自分が所有するファイルのみを削除できます。したがって、あなたのReadmeは保護されます。
だから全体的には安全機能というよりは事故防止機能だと思います。
答え2
愚かな間違いはデータを破壊する可能性があります。愚かな間違いを防ぐことでデータを節約できます。実際にアーカイブしたいファイルの書き込み権限を設定しないことは次のとおりです。いいえ自動的に-f
onを使用しますがrm
、rm
誤って試してみると文句を言うでしょうrm -r /
。いいえroot
シェルを実行し続けます。自分がやっていることを知っていれば、それらのどれも必要ありませんが、状況によっては役に立ちます。
しかし、セキュリティ違反は小さなものから始まります。ユーザー入力は、アクセスするファイル名を決定するために使用でき、未処理のままにすると、プログラムはエンドユーザーがアクセスできないコンテンツにアクセスするように欺くことができます。 (クラシックだと思います../../../passwd
。)
書き込み権限なしで重要なファイルを保存した場合、ファイル名だけを知ってもファイルの書き込みは許可されません。しかし、これがどれほど重要かは、それらが書き換えることができる他のファイルが何であるかによって異なります。(実際には、削除されていない入力の使用を修正する方が良いでしょう。)
答え3
簡単に言えば、努力する価値があるものは何も得られません。正しく述べたように、ファイルを読んでいる人は誰でもその権限を変更できます。
考慮すべきセキュリティと有用性の間には常にバランスがあり、この場合、このソリューションを維持する努力と比較して利点を測定することは言うまでもありません。