kidoOooOoooOOom

IT系で開発やってます

sudoersの文法メモ

serverspecやansibleでsudoの動作設定を変更することがあるので、一応 sudoers の文法について整理しておく。

sudoの動作設定は /etc/sudoers に記述されており、visudo コマンドでのみ編集を行うことができる。visudo コマンドは保存時に自動的に構文チェックするようなので、文法ミス等があっても保存時に即sudoが動かなくなるということは無い。

文法と設定例は下記の通り。

文法

ユーザ名 ホスト=(変身可能ユーザ) 実行可能コマンド

設定例

root   ALL=(ALL)   ALL
%hoge   ALL=(ALL)   NOPASSWD: ALL

1つ目の設定では、「rootユーザ」が「全てのホスト」から「全てのユーザに変身」でき、「全てのコマンドを実行可能」となる。
2つ目の設定はユーザ名の頭に % をつけているため、hogeグループの指定になる。
また、NOPASSWDをつけることでsudo実行時に パスワードを聞かれない。

sudo自体のパラメータ変更もできる。
sudo コマンドを実行する時に毎回パスワードを求めるようにするには次のようにする。

Defaults timestamp_timeout = 0

timestamp_timeout のデフォルト値は 5 で、パスワードを入力すると 5 分間は入力を求められない。0 にすることで毎回パスワードを求められるようになる。