
Estou usando o Ubuntu 14.04. Eu tenho isso no meu arquivo /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
Achei que incluir o comando acima (aquele com “NOPASSWD”) evitaria a solicitação de uma senha, mas depois de reiniciar meu sistema e fazer login como meu usuário “Rails”, observe que ainda estou recebendo uma solicitação de senha ao executar o 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
O que preciso fazer para que não seja solicitada uma senha ao executar o comando “rake” (e outros comandos que listei)?
Responder1
sudo
redefine seu ambiente por padrão, para que ele não pesquise seu arquivo $PATH
. Portanto, pode estar tentando executar uma versão padrão do sistema ruby
em vez da listada. Em particular, o $PATH
visto por sudo
é fornecido no seu sudoers
arquivo:
secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
Tente usar sudo -E
para preservar seu ambiente ou usar o nome de caminho totalmente qualificado para ruby
, ou adicionar os caminhos a secure_path
, antes dos fornecidos.