sudoでNOPASSWD設定しても反映されない現象に遭遇


[まとめ] 現在開催中のKindleセール情報はこちら

特定ユーザの特定コマンド(今回の場合はgod)のみsudoをパスワードなしで実行できるようにしたいと思い、visudoで以下のような設定を行いました。

root    ALL=(ALL)       ALL

app ALL=NOPASSWD: /opt/rbenv/shims/god

## コメント行
## コメント行

これでappユーザは/opt/rbenv/shims/godの実行のみパスワードなしでsudoを実行できるようになるはずなのですが、なぜか設定変更後も毎回パスワードを聞かれてしまう現象に遭遇しました。

別のサーバでは上記の設定で問題なく動いていたので文法的に間違っているわけではなさそうです。

調べていたところ、ハートビーツさんのブログ記事を発見

sudoでNOPASSWORDが効かない場合、設定をファイルの一番最後に設定を書けば解決します。

というわけで実際に試してみたところ、確かに最後に書いたらパスワードなしで実行できました。

もともとNOPASSWD設定を書いた行以降はすべてコメント行だったので、これで結果が変わることはないと思っていたのですが最後の行に書くか、そうじゃないかで結果が変わるという謎の挙動でした。

途中にNOPASSWD設定を書くと反映されない現象はこれまで起きたことがなく、今回が初めて遭遇したのでハマりました。

根本的な原因がつかめていないのですが、次も同じ現象が起きたら確実にハマるのでメモしておきます。

参考

[まとめ] 現在開催中のKindleセール情報はこちら