sudoers で複数エントリがマッチする場合について

/etc/sudoers に、自アカウントが(1)ユーザとして該当するエントリと(2)グループとして該当するエントリの両方が存在する場合、どう適用されるか?を調べてみた。

man sudoers すると以下のように記述されている。

When multiple entries match for a user, they are applied in order. Where there are multiple matches, the last match is used (which is not necessarily the most specific match).

man sudoers

つまり、後に合致した設定が有効になる。
例として、以下の条件を考える。

  • ユーザ foo は wheel グループに所属している。
  • wheel グループに所属するユーザは全てのコマンドに対して、sudo の権限が与えられる(パスワードの入力は必要)。
  • ユーザ foo は visudo と make コマンドをパスワードなしで sudo で実行可能とする(rootとして実行)。

この場合、以下のように先にグループの設定を記述すればよい。

# 設定の順番も重要
%wheel  ALL=(ALL)  ALL
foo     ALL=(root) NOPASSWD: /usr/sbin/visudo, /usr/bin/make

また、fooユーザに対して複数の設定を行う場合は以下のように記述できる。(”NOPASSWD:”は、次に”PASSWD:”が出現するまで全てのコマンドに有効)

foo  ALL=(ALL)  ALL,\
         (root) NOPASSWD: /usr/sbin/visudo, /usr/bin/make
Pocket

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*