¿Por qué se me solicita una contraseña de sudo cuando especificé "NOPASSWD" en mi archivo /etc/sudoers?

¿Por qué se me solicita una contraseña de sudo cuando especificé "NOPASSWD" en mi archivo /etc/sudoers?

Estoy usando Ubuntu 14.04. Tengo esto en mi archivo /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

Pensé que incluir el comando anterior (el que tiene "NOPASSWD") evitaría que me solicitaran una contraseña, pero después de reiniciar mi sistema e iniciar sesión como mi usuario "rails", tenga en cuenta que todavía me piden una contraseña cuando ejecuto 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

¿Qué debo hacer para que no se me solicite una contraseña cuando ejecuto el comando “rake” (y otros comandos que enumeré)?

Respuesta1

sudorestablece su entorno de forma predeterminada, por lo que no buscará en su archivo $PATH. Por lo tanto, es posible que esté intentando ejecutar una versión predeterminada del sistema rubyen lugar de la que aparece en la lista. En particular, lo $PATHvisto por sudose proporciona en su sudoersarchivo:

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

Intente usarlo sudo -Epara preservar su entorno o use el nombre de ruta completo para ruby, o agregue las rutas a secure_path, antes de las proporcionadas.

información relacionada