Web Application Security Memo

ウェブセキュリティに関するメモ書き

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

広告