sudoersでNOPASSWD: command
とか入れたのに効かない...
まとめ: 順序が重要(後出しじゃんけん)
なので/etc/sudoers.d/配下で設定する場合、ファイル名によるソート順も影響します。 man sudoers
一人のユーザに複数のエントリがマッチするときは、順番に適用される。複数の指定がマッチしている箇所については、最後にマッチしたものが使用される(それが一番明示的なマッチだとはかぎらないが)。
確認: 該当ユーザでsudo -l
User user1 may run the following commands on host1:
(ALL) ALL
(root) NOPASSWD: command
ならNOPASSWDが効く(後出し)
User user1 may run the following commands on host1:
(root) NOPASSWD: command
(ALL) ALL
だとNOPASSWDが効かない。所属しているグループとかで指定があって後出しされるとそちらが優先されます。
/etc/sudoersを直接編集する場合はストレートに記載順序。
#includedir: /etc/sudoers.d
配下の順序はどうなるの?
確認: visudo --check --strict
/etc/sudoers: parsed OK
/etc/sudoers.d/10-group: parsed OK
/etc/sudoers.d/90-user1: parsed OK
/etc/sudoers.d/90-user2: parsed OK
各ファイルの文法チェック結果が表示されます。Files are parsed in sorted lexical order.
辞書順ソート。
###P.S. visudo -f /etc/sudoers.d/foobar
文法チェックもしてくれるのでsudoers.d以下もvisudo
しましょうか。
####P.S.2 sudoの設定は慎重に。それと_/etc/group_の修正時!
sudoers設定ミスるとrootをパスワード無しで運用してたりすると面倒なルートに入りますよね。
sudoersは気をつけてたのですがgroupの修正した時にうっかりsudo出来るグループ名を変更しちゃってsudoから外れさせてしまってroot権限持てるユーザを居なくした時があります。
- 確認した環境: CentOSとかFedoraとか。