で議論したようにUNIXの権限とファイルタイプの理解、各ファイルには次の権限設定(「ファイルモード」)があります。
- 所有者/ユーザー("
u
")、 - 所有者グループ( "
g
")と - 他のすべての人("
o
")。
私が理解したところによると、ファイル所有者は常に利用可能chmod
であり、所有者の下で実行されるすべてのアプリケーションも同じです。
所有者がいつでも権限を変更できる場合、所有者自身の権限を制限するのはなぜですか?
私が見ることができる唯一の用途は保護のためのものです。偶然意図的な場合は、削除または実行を簡単に克服できます。
ここに関連する質問があります。「所有者」権限が存在するのはなぜですか?グループ権限が足りませんか?所有者の権限を個々のユーザー(所有者)の仮想グループに置き換えることができない理由を説明します。対照的に、ここでは所有者が権限を持つ目的について尋ねています。原則としてu
、別の ""オクテットまたは別のグループ+ ACLを介して実装されているかどうか。
答え1
所有者の権限を減らすにはいくつかの理由があります(グループの権限より低い場合はまれですが)。
最も一般的なのは、実行されないファイルに対する実行権限がないことです。多くの場合、シェルスクリプトは他のスクリプト(例えば、あなたのスクリプト
.profile
)から始まるように意図されたフラグメントであるため、最上位プロセスには適していません。コマンド補完は実行可能ファイルのみを提供するため、正しい権限は対話型シェルに役立ちます。誤ってファイルを上書きすることは大きな危険です。コマンドを誤って入力すると、これが発生する可能性があり、GUIプログラムではこれが発生する可能性がはるかに高くなります。カメラからファイルをコピーするときに最初にすることは、そのファイル(およびファイルに含まれるディレクトリ)を書き込み不可能にすることです。これにより、私が編集したものはコピーになり、元のファイルを上書きしないでください。
時には、ファイルを読み取れないことが重要なこともあります。 Emacsをアップグレードし、
~/lisp
ディレクトリ内のローカルパッケージに問題がある場合は、chmod -r
正常に起動できるまでオプションで無効にします(を使用して)。これにより、互換性の問題を解決しながら一度だけ読み取ることができます。
ユーザーの正しい権限セット表現意図性。ユーザーは権限を変更できますが、誠実に動作するプログラムはそうしません(少なくとも最初に尋ねる必要はありません)。権限を制限として表示する代わりにユーザー、ユーザー制限として処理プロセス与えられた時点でできること。
答え2
ここでやや重要な点を見逃しているようです。正しく機能するプロセスは、アクセス権を持つファイルの権限を変更しません。ls
ユーザーが指すディレクトリをランダムに読み取れるようにするのではなく、ディレクトリの内容のみを一覧表示します。間違った場合は、ssh
その権限や埋め込みファイルを「修正」せずに実行を拒否するだけです。~/.ssh
一般的に使用するすべてのプログラムがこのように動作すると仮定するのは安全です。
これは、特定のファイルに対して所有者が設定した権限が次のようになることを意味します。通常幸いなことに、(LinuxのようにルートであるかDACチェックを短絡できる場合を除き、通常のCAP_DAC_OVERRIDE
プログラムは権限を確認するためにカーネルのみを信頼するため)、偶発的な修正や実行から特定のファイルを保護するのが便利なことがよくあります。 。この問題は比較的簡単に克服できますが、ユーザーはそれを克服するためには、何かがなされなければならない。 IOW、これは「はい、私はこれをしたい」と言うもう一つの確認ステップとして機能します。
ただし、より一般的には、所有者権限は通常尊重されているため、所有者権限を使用して多くの便利なタスクを実行できます。
- ファイルまたはディレクトリを読み取り専用にします(Windowsの「読み取り専用」プロパティ設定と同じ)。
- ファイルを実行できないとマークするか、
.desktop
XDGファイルを信頼できないとマークします。 - (ディレクトリを読み取れないとマークして)ディレクトリまたはファイルの内容を機能的に「隠します」。これは実際に非常に特定のアプリケーションのプラグインの問題をデバッグするときに便利です。プラグイン固有のディレクトリやファイルを使用するほとんどのアプリケーションは、そのファイルを読み取れない場合は、プラグインが存在しないかのように動作するためです。
答え3
ほとんどの場合、あなたが提案したように誤って削除/修正を防ぐためにこれを行います。ただし、特定のツリー内のすべてのファイル/ディレクトリに対して一括変更を実行できるようにする場合があります。とは別に私が「保護した」人々。
答え4
制限された所有者権限は、ユーザーが権限を変更するツールにアクセスできない制限された環境で役立ちます。
一般的な例は匿名FTPサーバーです。所有者が書き込み権限を持っているが読み取り権限を持たない「dropbox」ディレクトリを作成できます。これにより、匿名ユーザーがファイルをアップロードできますが、他のユーザーがアップロードしたファイルは一覧表示されません。同時に、ディレクトリはディレクトリが属するグループから読み取ることができるため、ディレクトリで検索を許可されたユーザーをそのグループに配置します。 FTPサーバーがchmod
コマンドを提供しないと、匿名ユーザーはコマンドを無視して自分にディレクトリを一覧表示する権限を付与できません。