/etc/sudoersファイルに「NOPASSWD」を指定すると、sudoパスワードを入力するように求められるのはなぜですか? [コピー]

/etc/sudoersファイルに「NOPASSWD」を指定すると、sudoパスワードを入力するように求められるのはなぜですか? [コピー]

Ubuntu 14.04を使用しています。私の/etc/sudoersファイルにこの内容があります。

Defaults        env_reset
Defaults        mail_badpass
Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

# Host alias specification

# User alias specification

# Cmnd alias specification

# User privilege specification
root    ALL=(ALL:ALL) ALL

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL
%deployers ALL=(ALL) ALL

rails ALL = NOPASSWD: /usr/local/rvm/gems/ruby-2.3.0/bin/bundle, /usr/local/rvm/rubies/ruby-2.3.0/bin/ruby, /usr/local/rvm/gems/ruby-2.3.0/bin/rake, /usr/bin/service, /sbin/   restart

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL

上記のコマンド(「NOPASSWD」を含むコマンド)を含めると、パスワードの入力を求められませんでしたが、システムを再起動して「rails」ユーザーとしてログインしても、sudoを実行してもパスワードの入力を求められます。 …

rails@mymachine:~$ sudo rake db:migrate
[sudo] password for rails: 
rails@mymachine:~$ which rake
/usr/local/rvm/gems/ruby-2.3.0/bin/rake

"rake"コマンド(および私がリストした他のコマンド)を実行するときにパスワードの入力を求められないようにするにはどうすればよいですか?

答え1

sudo環境を検索しないように、デフォルトで環境をリセットしてください。したがって、リストされているバージョンの代わりに$PATHシステムのデフォルトバージョンを実行しようとすることがあります。特にruby文書に$PATH表示される内容は次のとおりです。sudosudoers

secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

環境を保存するためにを使用するか、完全修飾パス名を使用するか、sudo -E指定されたパスの前にをruby追加します。secure_path

関連情報