質問がいくつかあります:
- rootでプログラムを実行することとを使用してプログラムを実行することの違いは何ですか
sudo programxxx
? sudoはより安全ですか? - ユーザーとしてプロセスを実行する必要がありますか?またはおそらく
sudo excuteprogram
? - それでは、apache、phpmyadmin、mysqlユーザーとしてこれらのプログラムをどのように実行しますか? (つまり、1人のユーザー実行= 1つのデーモン、プログラム、それはいいですか?)
- ユーザーとしてプログラムを実行するには?通常のユーザーはApache、mysql、および他のプログラムを実行できません。
答え1
Sudoは次のようなので、より「安全」です。最小権限の原則。これは、「必要な場合にのみ管理者として実行」を意味します。〜しなければならない」
また、Sudo は、auditd を有効にしない限り、root として実行したときにどのユーザーがどのコマンドを実行するかを記録します。
Sudoも非常に設定可能です。 「Web Admins」というグループがApacheまたはnginxプロセスを再起動できるようにすることができます。したがって、スーパーユーザー/管理者権限を特定のグループに必要なコマンドに制限できます。
Sudoを使用すると、root以外のユーザーとしてプログラムを実行することもできます。 「sudo -u mysql」では、mysqlユーザーとして実行できます。繰り返しますが、これはさまざまなグループや人にさまざまな権限を付与して制御できます。
答え2
プログラムをrootとして直接実行するか、sudoを介して実行すると、結果は本質的に同じです。常にrootアカウントを使用したくない場合は、sudoを使用してください。そうしないと、エラーによって重大な結果が生じる可能性があります。
参照する特定のプログラムに関連して特権(<1024)ポートにバインドしたり、起動時に自動的に起動するなど、一部のプログラムは最初に正しく初期化できるようにrootで起動する必要があります。ほとんどは他のユーザーに譲渡できますが、これは通常製品によって異なります。特定のマニュアルを参照してください。