デフォルトで私のディレクトリ/home/<user>/
に権限が755
に設定されているのはなぜですか。これにより、他のユーザーが私の家のディレクトリに入ってファイルを読み取ることができます。これには正当な理由がありますか?
たとえば、次のように、ホームとすべてのサブディレクトリのアクセス許可を700
に設定できますか?
chmod -R o-xw /home/<user>/
chmod -R g-xw /home/<user>/
何も壊すことなく?
また、自分の家に権限を設定して、作成されたすべての新しいファイルに600
とディレクトリ700
が含まれるようにすることもできますか?
ホームディレクトリがプライベートの場合、他の誰もファイルにアクセスできません。ファイルにアクセスするには、プロセスは、ルートディレクトリからツリーの下のパスにあるすべてのディレクトリに対する実行権限を持っている必要があります。たとえば、他のユーザーが/home/martin/public/readme
を読み取ることを許可するには、ディレクトリ/
、/home
、/home/martin
、および/home/martin/public
はすべて、d??x??x??x
(drwxr-xr-x
、またはdrwx--x--x
、またはその他の組み合わせ)のアクセス許可を持っている必要があり、さらにファイルreadme
はパブリックに読み取り可能である必要があります(-r??r??r??
)。
モードdrwxr-xr-x
(755)または少なくともdrwx--x--x
(711)のホームディレクトリを持つことは一般的です。ディレクトリのモード711(実行権限のみ)では、他のユーザーがその名前を知っている場合、そのディレクトリ内のファイルにアクセスできますが、ディレクトリの内容をリストすることはできません。そのホームディレクトリの下に、必要に応じてパブリックサブディレクトリとプライベートサブディレクトリを作成します。
あなたが決してあなたのファイルを他の人に読ませたくない場合は、ホームディレクトリをdrwx------
(700)にすることができます。その場合、ファイルを個別に保護する必要はありません。これは、他の人があなたのファイルを読む能力以外には何も壊しません。
ファイルを読み取る他の人のインスタンスであるため、壊れる可能性がある1つの一般的なことは、Webページを含む~/public_html
や~/www
などのディレクトリがある場合です。 Webサーバーの構成によっては、このディレクトリーを誰でも読み取り可能にする必要がある場合があります。
.profile
に mask 値を設定することにより、作成したファイルのデフォルトのアクセス権を変更できます。 umaskは、ファイルの最大権限の補足です。一般的な値には、022(所有者のみが書き込み可能、全員が読み取りおよび実行可能)、077(所有者のみがアクセスできる)、002(022と同様、ただしグループ書き込み可能)が含まれます。これらは最大の権限です。たとえば、ほとんどのファイルは、ファイルを作成するときに実行権限ビットを設定しなかったため、ほとんどのファイルは実行不可になります。
はい、非常に正当な理由があります。他のユーザーはファイルを読み取ることはできますが、書き込むことはできません。これは、同僚とファイルを簡単に共有できるため、プロフェッショナルネットワークで非常に役立ちます。
たとえば、私が以前使用していたラボでは、お互いの$HOME
ディレクトリにアクセスできるため、データやスクリプトを簡単に共有できます。友人のアリスがXを実行するための素晴らしいスクリプトを持っている場合、私はそれを実行するだけです。
~alice/bin/scriptX.pl mydata
他の人が述べたように、これを変更するには、umaskを設定する必要があります。たとえば、新しいファイルとフォルダを自分だけが読めるようにするには、これを~/.bashrc
に追加します。
umask 0077
RHEL/CentOS 5.xでチェックインした場合、デフォルトのパーミッションは700ですが、Ubuntuでは755です。
buntuforms.orgスタッフ によると、新しいユーザー間でファイルを共有しやすくするためです。他のユーザーがファイルを読み取りおよび実行できないようにする場合は、アクセス許可を700または750に変更できます。
また、私の家に権限を設定して、作成されたすべての新しいファイルに600とディレクトリ700が含まれるようにすることはできますか?
umask 0077
を設定できます
それは次のように機能します:
ディレクトリのデフォルトの権限は0777
であるため、umask 0077
を設定すると、新しいディレクトリは権限(0777-0077)
、つまり0700
で作成されます。
Umaskを変更して、ホームフォルダーに新しいファイルを作成する方法を変更する必要があります。これは通常、シェルの起動スクリプトを編集することで行われます。かなり良い概要があります こちら
ホームフォルダーのすべてのアクセス許可を700に変更することについては、ホームフォルダーからの構成情報を必要とするサービスアカウントで実行されているサービスにどのように影響するのかと思います...これらのサービスが必要な構成ファイルを読み取れない可能性があります。