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
表示される内容は次のとおりです。sudo
sudoers
secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
環境を保存するためにを使用するか、完全修飾パス名を使用するか、sudo -E
指定されたパスの前にをruby
追加します。secure_path