web-dev-qa-db-ja.com

Debian-すべてのファイルのグローバル読み取りアクセスを防ぐ方法は?

私のDebianのすべてのファイルでは、システムファイルもrw-r--r--の権限を持っているので、すべてのユーザーがシステム構成やデータベースファイルなどを含めて任意のファイルを表示できることを意味します。

ユーザーがすべてのシステムファイルを読み取れないようにするにはどうすればよいですか?ユーザーがすべてのファイルを読み取れないようにグローバル権限を設定する方法はありますか?

2
Welite

すべてのユーザーのすべてのシステムファイルへのアクセスを拒否することは良い考えではないと思います。これらのファイルのいくつかは、システムで動作するために必要です。ただし、特定のユーザーを制限する方法はいくつかあります。たとえば、ユーザーjoe/etc内のすべてにアクセスすることを拒否する場合は、次のようにACLs(setfacl/getfaclコマンドで操作)を使用できます。

setfacl -Rm u:joe:--- /etc

他のアイデアは、selinuxポリシーを使用するか、ユーザーをchrootに保つことです。システムディレクトリのchmod 700は、nobodyftpmailなどのさまざまなシステムユーザーへのアクセスを拒否するため、悪い考えだと思います。一部のシステムサービス。

3
Jakub Pasoń

私のDebianのすべてのファイルでは、システムファイルもrw-r--r--の権限を持っているので、すべてのユーザーが一部のシステム構成やデータベースファイルなどでも任意のファイルを表示できることを意味します。

権限をいじらない限り、箱から出してすぐに使用できるので、まったく問題ありません。特にその周囲では、それらを変更しないでください。

システム(構成)ファイルは、誰もが読めるように保存されています。読み取り可能である必要がある場合(/etc/bash.bashrcまたは/etc/default)もあれば、すでに保護されている場合(/etc/shadow)もあります。

Debianで/var/libにあるデータベースファイルも保護されます。

drwx------ 10 mysql   mysql   4.0K Feb 26 12:49 /var/lib/mysql

Debianリポジトリのほとんどのソフトウェアでは、パーミッションはそのままで安全であると想定できます。もちろん例外もあります。 Webホスティングはその1つであり、通常、ドキュメントルートとPHP-FPMソケットファイルに対してより大きな権限調整を行う必要があります。

'default'フォルダーのアクセス許可の変更がどのような影響を与えるかが完全にわからない場合は、それを拒否する必要があります。

デフォルトのパーミッションが実際に自由すぎる唯一の場所は、少なくとも私の意見では、/homedirectory内です。

6
Daniel

Linuxパーミッションの興味深い側面は、デフォルトのパーミッションが通常777(-rwxrwxrwx)であり、umaskを使用してパーミッションを自動的に削除することです。これにより、新しいディレクトリまたはファイルが作成されたときに、新しく作成されたディレクトリまたはファイルは777ではなくなります。 644(-rw-r--r--)または666(-rw-rw-rw-)のようなものです。すべてのファイル/ディレクトリのデフォルトの読み取り権限を削除する場合は、umaskを調整できます。ただし、umaskを変更することは、おそらく直面するタスクの解決策ではありません。

解決策は、chmodとchown、またはsetfaclとgetfaclを使用してアクセスを制御することだと思います。たとえば、rootのみが/ var/privateにアクセスできる必要があるとします。次のコマンドを使用して、rootのみがディレクトリとディレクトリ内のファイルの読み取り、書き込み、およびアクセスを行うことができます。

Rootを/ var/privateの所有者とグループ所有者の両方として設定します。

chown -R root:root /var/private

Rootのみがディレクトリにアクセスできるように、ディレクトリに権限を設定することもできます(-rwx ------):

chmod 0700 /var/private

次に、ディレクトリ内のすべてのファイルに再帰的にアクセス許可を設定して、rootのみがディレクトリ内のファイルの読み取り、書き込み、および実行を行えるようにすることができます(-rwx -----)。

chmod 0700 -R /var/private/* 

注:データベースをどのように使用しているかわかりません。データベースファイルにPHPまたはASP.Netなど)からアクセスできる場合、このアクセス許可の変更により、PHPまたはASP.Netが使用できなくなる可能性があります。データベースレコードと対話できます。

0
JeremyCanfield