sudo, visudo, sudoers, sudoers.dの解説

2016/06/29

sudoを実行できるユーザ、コマンドを設定できる/etc/sudoersを編集するには、visudoコマンドを使う。
sudoersファイルは権限440であるとともに、編集ミスをすると一切sudoできなくなるため、構文チェック機能付き編集ツールのvisudoが必要となる。

書式

/etc/sudoersファイルの書式は

・ユーザ
sudo権限を付与したいユーザを書く。
・ホスト
複数のホストで同じsudoersファイルを使用することを前提としている。1つのホストのみ考慮すればよいなら、「全ホスト」を表す「ALL」を指定すればよい。
参考:http://linux-training-diary.blogspot.jp/2012/01/etcsudoers.html
・権限
どのユーザ(権限)であればで動くか。
つまり sudo -u ユーザ コマンド のユーザ部分に誰を設定しなければならないか。
ALLであれば誰でもOKだし、特定のユーザが設定されていればそれ以外のユーザを指定してsudoしようとしても実行できない。
・コマンド
sudoで実行できるコマンドを書く。

よく使用する設定に、wheelグループに属するユーザはすべてのコマンドをsudoできるというものがある。
※グループの場合は、グループ名の前に % を入れる。

パスワードを不要にする場合は

その他にもユーザやコマンド部分にalias機能が使え、以下のような設定ができる。

sudoersよりもsudoers.dを使う方がカスタマイズ部分が明確でスマート

しかし、sudoersファイルを編集するよりも/etc/sudoers.d/以下にカスタマイズ用ファイルを置く方が、カスタマイズ部分が明確にわかるという点でより良い。
/etc/sudoers.dディレクトリ以下のファイルはsudoersファイルの #includedir /etc/sudoers.d によってsudoersから読み込まれ、sudoersとして有効になる。

/etc/sudoers.d以下も直接vi等で編集するのではなく、文法チェックが行われるvisudoコマンドを使う。

visudo -fで作成したファイルの権限は自動で440となる。

ex

sudoers設定の確認

現在のユーザのsudoers設定を確認するには

※sudo実行時に聞かれるパスワードはrootのパスワードではなく、ユーザのパスワード。

-Linux
-