web-dev-qa-db-ja.com

Ubuntuで「その他」がデフォルトでファイルを読み取れるのはなぜですか?

新しいファイルやディレクトリをDocumentsフォルダーに作成すると、デフォルトで次の権限が割り当てられる理由を理解しようとしています。

-rw-rw-r-- 1 hello world    0 Nov 19 12:17 'New Empty File'
drwxrwxr-x 2 hello world 4.0K Nov 19 12:16 'New Folder'/

「その他」が自分のファイルにアクセスできないようにしないでください。私が読んだことから、Ubuntuはデフォルトでかなり安全です。しかし、この行動の合理化をどこにも見つけることができませんでした。答えをいただければ幸いです:)

6
wombat trash

Linuxのアクセス許可モデルとは、自分がコンピューターの唯一のユーザーであっても、システム上の唯一のユーザーではないことを意味します。多くのサービスは、独自のユーザーアカウントを作成して実行します。たとえば、Apacheは通常、独自の専用アカウントで実行します。

また、ホームフォルダーには通常、自分のアカウント(つまり、権限700またはdrwx------)のみがアクセスできることに注意してください。つまり、そのフォルダー内のサブフォルダーに完全なアクセス権がある場合でも、ホームフォルダーにアクセスできるのは自分だけです。

この組み合わせは、便利なバランスを提供します。デフォルトの権限では、サービスアカウントはシステム上の必要なファイルを読み取ることができますが、何も変更することはできません。個人的なファイルはすべてホームフォルダーに置く必要があります。そのため、悪意のあるサービスはそれらにアクセスできなくなります。

Filesystem Hierarchy Standard は便利な資料です。これは、Unix/Linuxシステムに一般的に期待される権限と機能の概要を示しており、ほとんどのディストリビューションはこれを遵守しています。

15
timbstoke

新しいファイルとディレクトリを作成するとき、初期の権限はumask設定によって制御されます。アイテムを作成するアプリケーションは、最大のアクセス許可を指定します(通常、ディレクトリおよび実行可能ファイルの場合はrwxrwxrwxrw-rw-rw-(データファイルの場合)、次にumaskの権限がこれから差し引かれます。

したがって、より限定的なアクセス許可が必要な場合は、umaskを設定して、付与したくないアクセス許可を削除する必要があります。表示する権限は、umask 002、つまりother=write。無効にする場合はother=read/executeも使用する必要があります。

umask 007

従来、デフォルトのumask 002は、特定のシステムのすべてのユーザーが協力コミュニティ(組織の同じ部門のプログラマーなど)であるという想定に基づいているため、他のユーザーが一般的にファイルを読み取れないようにする理由はほとんどありません。よりプライベートな特定のファイルがある場合は、より限定的なアクセス許可を付与します。上記の仮定がシステムのユーザーにとって不適切な場合は、シェルの起動スクリプトで別のデフォルトのumaskを使用する必要があります。

1
Barmar