質問: ### 前提・実現したいこと 現在、Bash on Windows on Ubuntuのvisudoで一部コマンドをパスワード入力せずにroot権限で実行する設定を行っております。 パスワード入力を不要にしたいコマンドはシェルプログラムで、root権限内のルートディレクトリ[root@:~#]に配置してあります。 ### 発生している問題・エラーメッセージ visudo内に下記のコードを追加し下記のコマンドを実行したのですが、以前のようにパスワード認証が必要となってしまいます。 ### 該当のソースコード visudoの追加コード ``` ALL=(ALL) NOPASSWD: /root/ ``` 実行コマンド ``` sudo -i ./<シェルプログラム> ``` もし解決方法等あれば教えていただきたいです!
回答: 訂正:最初の回答は間違いでした。大変失礼しました。 マニュアルにはコマンドリストにディレクトリーも指定できることが書かれていました。 パスの最後を'/'で終わらせてディレクトリーを指定できるのですね。 自分の環境(Ubuntu 16.04LTS)で、以下のように設定すると/root/t.shがパスワードなしで実行できました。 sudoers: ` ALL=(ALL) NOPASSWD: /root/` /root, /root/t.shの権限は700の状態で、`sudo /root/t.sh`で実行。 しかしながら、この状態で`sudo -i /root/t.sh`とするとパスワードが聞かれます。-iとは併用できないということなのだと思います。(確かなことは言えませんが、-iの効果を得るためにsudoersの設定でそれが達成でいないか調べてみてはいかがでしょうか。) 以下最初の回答 sudoersマニュアルには行の末尾のエントリーは「コマンド」と記述されていたと思います。ゆえに「ディレクトリーのみを書いてコマンドファイル名を省略すること」はできず、特権実行を許すコマンド(スクリプト)を全て列挙する必要があると思います。 ` ALL=(ALL) NOPASSWD: /root/sh1.sh,/root/sh2.sh,/root/sh3.sh`