GNU/Linux >> Linux の 問題 >  >> Linux

一部のアプリケーションでグループとユーザーを作成することが推奨されるのはなぜですか?

ほとんどの場合、ソースからプログラムをインストールするときは、新しいユーザーと新しいグループを作成し、/usr/local/<myapp>を指定することをお勧めします。 最近作成されたユーザーとグループの所有権。

  • なぜそのような慣習が良い習慣と見なされるのですか?

  • 何が改善されますか?

例:MySQLデータベースサーバーのmysqlユーザー/mysqlグループ。

承認された回答:

慣例は、アプリケーションごとではなく、サービスごとに1つのユーザーとグループを作成することです。つまり、ローカルユーザーによって実行されるプログラムは、root以外のユーザーとしてインストールする必要はありません。デーモン、バックグラウンドで実行され、ネットワークまたはその他の通信手段を介して送信される要求を実行するプログラムであり、専用ユーザーとして実行する必要があります。

デーモンは専用ユーザーとして実行されるため、(バグが原因で、おそらく攻撃者によって引き起こされた)誤動作した場合に発生する可能性のある被害は限定的です。影響を受けるのはデーモンのデータファイルのみです(攻撃者がローカルルートホールを見つけることができた場合を除く)。 、発生する可能性があります)。たとえば、データベースデーモンmysqld 専用のユーザーおよびグループとして実行mysql:mysql およびデータベースのデータファイル(/var/lib/mysql/*mysql:mysqlに属します 。

使用されているがデーモンによって変更されるべきではないデーモン実行可能ファイルおよびその他の静的データと構成ファイルは、専用ユーザーに属していてはならないことに注意してください。 root:rootが所有する必要があります 、ほとんどのプログラムおよび構成ファイルと同様です。 mysqld プロセスには、/usr/sbin/mysqldを上書きするビジネスはありません または/etc/mysql/my.cnf 、したがって、これらのファイルはmysqlに属していてはなりません ユーザーまたはmysqlによって書き込み可能 ユーザーまたはmysql グループ。一部のファイルをデーモンと管理者だけが読み取れるようにする必要がある場合は、ユーザーrootと専用グループが所有し、モード0640(rw-r-----)である必要があります。 。

root:rootが所有できない実行可能ファイルの特別なカテゴリ ユーザーによって呼び出されるが、追加の特権で実行する必要があるプログラムです。これらの実行可能ファイルは、(少なくとも部分的に)rootとして実行する必要がある場合は、setuidrootである必要があります。その場合、実行可能ファイルのモードは4755(rwsr-xr-x)である必要があります。 )。プログラムがrootとしてではなく追加の特権を必要とする場合は、プログラムをsetgidにして、追加の特権がユーザーではなくグループを介して取得されるようにする必要があります。その場合、実行可能ファイルのモードは2755(rwxr-sr-x)になります。 )。理由は2つあります:

  • 実行可能ファイル自体の変更を許可しないでください。ユーザーが脆弱性を悪用した場合、プログラムで使用されるデータファイルを変更できる可能性がありますが、他のユーザーを攻撃するために実行可能ファイルにトロイの木馬を挿入することはできません。プログラムを実行します。
  • 実行可能ファイルのデータファイルはグループに属しています。 setuidプログラムは、ユーザーと対話するために実際のユーザー(プログラムを呼び出したユーザー)と、プライベートデータファイルにアクセスするための有効なユーザー(プログラムを実行しているユーザー)を切り替える必要があります(その理由追加の特権を持つため)。 setgidプログラムは、グループのみがアクセスできるユーザーごとのデータをさらに分離できます(たとえば、rootとプログラムのグループのみがアクセスできるディレクトリにユーザーが所有するファイルを保存することにより)。
関連:コマンドラインからストップワードリストを含むファイル内で最も頻繁に使用されるn個の単語を検索しますか?
Linux
  1. Linux用のPythonアプリケーションをパッケージ化する方法

  2. ファイルパーミッションにおけるユーザーとグループ所有者の優先順位?

  3. CentOSユーザーの作成と削除

  1. なぜLinuxなのか? –Linuxに変換するいくつかの理由

  2. Linuxでユーザーグループを作成および削除する方法

  3. Howto MySQL:ユーザーを作成し、データベースに権限を付与します

  1. 別のユーザーおよびグループとしてファイルを作成しますか?

  2. 「thesql」ユーザーとグループの作成、所有権の設定?

  3. 新しいユーザーを作成し、MySQLで権限を付与します