sudoコマンドは一般ユーザー権限で実行できないコマンドを特定のユーザーだけには許可したいけれども、root 権限を与えたくないような場合に使用します。
sudoを使うにはvisudoコマンドを使って/etc/sudoersという設定ファイルに使用できるユーザーを登録します。
# visudo
ファイルの中に次のように1行だけコメントアウトされていない行があります。
root ALL=(ALL) ALL
これは「root が全てのホスト上で、 全てのユーザーとして全てのコマンドを実行できる」という意味です。
hogeユーザーが全てのホストで root 権限で全てのコマンドを使用可能に設定したい場合、
hoge ALL=ALL
この一行を書き込んで保存するだけです。(ユーザーを指定しなかった場合は、「root 権限で」という意味になります。)保存するときに sudoers は書式が間違っていないか自動的にチェックします。一度 sudo を使うとそれからデフォルトでは5分間はパスワードを要求されることなく、 sudo を使うことができます。
またsudoers に次の1行を加えることで単独にログをとることができます
Defaults logfile=/var/log/sudolog
adminグループ属するユーザーはroot権限で全てのホストで全てのコマンドを実行させたい場合、
%admin ALL = ALL
というようにグループ名の前に%を付けて入力します。
hogeユーザーは全てのホストでパスワードなしで shutdown を実行できる設定にしたい場合、
hoge ALL = NOPASSWD: /sbin/shutdown
と入力します。
hogeユーザーは全てのホストでtakaとして全てのコマンドを実行できる設定にしたい場合、
hoge ALL = (taka) ALL
と入力します。
この場合、ターミナルで以下のようにするとtakaの権限で実行したことになります。
hoge$ sudo -u taka コマンド
hogeユーザーはホストweb以外で全てのコマンドを実行できる設定にしたい場合、
hoge !web = ALL
と入力します。
ちなみにMac OS Xの/etc/sudoersファイルにはデフォルトで
root ALL=(ALL) ALL
%admin ALL=(ALL) ALL
と入力されています。「システム環境設定」で管理者として登録されているユーザーは自動的ににadminグループに登録されるのでsudoコマンドを使ってroot権限でコマンドを実行することができます。