sudoでNOPASSWD設定しても反映されない現象に遭遇
特定ユーザの特定コマンド(今回の場合は god)のみsudoをパスワードなしで実行できるようにしたいと思い、visudoで以下のような設定を行いました。
root ALL=(ALL) ALL
app ALL=NOPASSWD: /opt/rbenv/shims/god
## コメント行
## コメント行
これでappユーザは/opt/rbenv/shims/godの実行のみパスワードなしでsudoを実行できるようになるはずなのですが、なぜか設定変更後も毎回パスワードを聞かれてしまう現象に遭遇しました。
別のサーバでは上記の設定で問題なく動いていたので文法的に間違っているわけではなさそうです。
調べていたところ、 ハートビーツさんのブログ記事を発見
sudoでNOPASSWORDが効かない場合、設定をファイルの一番最後に設定を書けば解決します。
というわけで実際に試してみたところ、確かに最後に書いたらパスワードなしで実行できました。
もともとNOPASSWD設定を書いた行以降はすべてコメント行だったので、これで結果が変わることはないと思っていたのですが最後の行に書くか、そうじゃないかで結果が変わるという謎の挙動でした。
途中にNOPASSWD設定を書くと反映されない現象はこれまで起きたことがなく、今回が初めて遭遇したのでハマりました。
根本的な原因がつかめていないのですが、次も同じ現象が起きたら確実にハマるのでメモしておきます。
参考
[amazonjs asin="4839953554" locale="JP" title="Webエンジニアが知っておきたいインフラの基本 ~インフラの設計から構成、監視、チューニングまで~"]