Por que estou sendo solicitada uma senha sudo quando especifiquei "NOPASSWD" em meu arquivo /etc/sudoers?

Por que estou sendo solicitada uma senha sudo quando especifiquei "NOPASSWD" em meu arquivo /etc/sudoers?

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

sudoredefine 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 rubyem vez da listada. Em particular, o $PATHvisto por sudoé fornecido no seu sudoersarquivo:

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

Tente usar sudo -Epara preservar seu ambiente ou usar o nome de caminho totalmente qualificado para ruby, ou adicionar os caminhos a secure_path, antes dos fornecidos.

informação relacionada