最大の違いは、とsudo
同じようにrootとしてコマンドを実行するためにrootパスワードが必要ないことですsu
。sudoers
ファイルに誰かを追加するにはrootパスワードが必要ですが、その後、そのユーザーは、追加のパスワードを要求することなく、rootとして全部または一部(制限されている場合)を実行できます。
もう1つの違いは、既に述べたように、sudo
実行できるコマンドを正確に制御できることです。
sudoers
ファイルの実行形式の詳細については、を実行してくださいman sudoers
。特定のコマンドのみをrootとして実行できるようにする例があります。各行の基本構造は次のとおりです。
user_list host_list = cmd_list
cmd_listには、実際のユーザーが切り替えることができるユーザーの詳細を含めることができます。たとえば、Webマスターがwwwrootに切り替えて、apacheを再起動できるようにすることはできますが、rootにはできません。また、切り替える前にユーザーのパスワードが必要かどうかなど、他のオプションを含めることもできます(これがデフォルトです)。
例の行は次のとおりです。
joe ALL=(ALL) ALL
つまり、すべてのホストですべてのユーザーとしてjoeにコマンドを実行させます。よりタイトなラインは次のとおりです。
joe ALL=(operator) /usr/local/ops/
つまり、joeに/ usr / local / opsディレクトリ内のコマンドをユーザー「operator」として実行させます。
sudoersのmanページの最後には多くの例があります。
/etc/sudoers
コマンドで編集する必要がありますvisudo
。これにより、ファイルが正当であることを確認し、誤ってファイルが破損することを防ぎます。
sudo
は素晴らしい発明です