ユーザーにroot権限の一部を委譲する

ユーザーにroot権限の一部を委譲し、rootとしてコマンドを実行できるようにためには、/etc/sudoersを編集します。/etc/sudoersには、誰が・どのホストで・誰の権限で・どのコマンドを実行できるか、が定義されています。

sudoersの編集には専用コマンドが用意されているので、通常はそのコマンドを使って編集します。

$ sudo visudo

基本的な書式は

ユーザー    ホスト = (権限) コマンド

です。コマンドは絶対パスで指定します。

myuser      ALL = (root) /sbin/reboot
myuser      ALL = /sbin/reboot          # (root)は省略することができます

コマンドにディレクトリを指定すると、ディレクトリ直下にあるすべてのコマンドが対象になります(サブディレクトリにあるコマンドは対象になりません)。

myuser      ALL = (root) /sbin/

ユーザーの代わりにグループを指定することもできます。グループを指定するときは、グループ名の先頭に%を付けます。次の例は、wheelグループにrootとしてすべてのコマンドを実行する権限を与えます。

%wheel      ALL = (ALL) ALL

上と同じ例ですが、NOPASSWDを付けると実行時にパスワードを要求しません。

%wheel      ALL = (ALL) NOPASSWD: ALL