/etc/sudoers の書き方 1

sudo の設定である /etc/sudoers の書き方を説明します.

設定の基本

ユーザの設定は,

ユーザ名0 ホスト名 = (ユーザ名1) コマンド0, コマンド1, コマンド2

と書きます.

ユーザ0 は sudo を行えるユーザです.sudo元のユーザです.

ホスト名 は sudo によりコマンドを実行するホストです.ほとんどの人にとって sudo を行うホストと sudoによりコマンドを行うホストは同じなので、ほとんどの人は ALL と書きます.

ユーザ名1 は,sudo 経由でコマンドを実行するときの権限のユーザです.sudo先のユーザです.

コマンド0, コマンド1, コマンド2 は,sudo 経由で他人の権限で実行できるコマンドです.カンマで区切って複数書けます.3個でなくても良いです.

例1 基本. ホスト,ユーザ,コマンド

dgb boulder = (operator) /bin/ls, /bin/kill, /usr/bin/lprm

と書いてある場合は,

ユーザ dgb は,ホスト boulder 上で,ユーザ operator の権限で,コマンド /bin/ls と /bin/kill と /usr/bin/lprm を実行できる

という意味です.よって,ユーザ dgb は以下をできます.

$ sudo -u operator /bin/ls

例2 ユーザとコマンドを複数組

dgb boulder = (operator) /bin/ls, (root) /bin/kill, /usr/bin/lprm

と書いてある場合は,

ユーザ dgb は,ホスト boulder 上で,
ユーザ operator の権限で コマンド /bin/ls を, 
root の権限で コマンド /bin/kill と /usr/bin/lprm を実行できる

という意味です.

例3 ユーザとグループ

dgb boulder = (operator : opegrp) /bin/ls

と書いてある場合は,

ユーザ dgb は,ホスト boulder 上で,
ユーザ operator の権限で コマンド /bin/ls を, 
グループ opegrp の権限で コマンド /bin/ls を実行できる

という意味です.よって、ユーザ dgb は,以下をできます.

$ sudo -u operator /bin/ls
$ sudo -u operator -g opegrp /bin/ls
$ sudo -g opegrp /bin/ls

例4 グループのみ

dgb boulder = (:opegrp) /bin/ls

と書いてある場合は,

ユーザ dgb は,ホスト boulder 上で,
グループ opegrp の権限で コマンド /bin/ls を実行できる

という意味です.

例5 ALL

非常によく見る設定例です.

may ALL=(ALL) ALL

と書いてある場合は,

ユーザ may は,すべてのホストで,すべてのユーザの権限で,すべてのコマンドを実行できる

という意味です.例えば,ユーザ may は以下をできます.

$ sudo su -

これを行うと,ユーザ may は root アカウントに変わります.

設定の詳細

詳細に興味がある方は,以下の記事を読んでください.


この記事が気に入ったらサポートをしてみませんか?