Warum werde ich zur Eingabe eines Sudo-Passworts aufgefordert, wenn ich in meiner Datei /etc/sudoers „NOPASSWD“ angegeben habe?

Warum werde ich zur Eingabe eines Sudo-Passworts aufgefordert, wenn ich in meiner Datei /etc/sudoers „NOPASSWD“ angegeben habe?

Ich verwende Ubuntu 14.04. Ich habe dies in meiner /etc/sudoers-Datei

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

Ich dachte, dass die Verwendung des obigen Befehls (der mit „NOPASSWD“) die Aufforderung zur Kennworteingabe verhindern würde. Nachdem ich mein System jedoch neu gestartet und mich als mein „Rails“-Benutzer angemeldet habe, werde ich beim Ausführen von „sudo“ immer noch nach einem Kennwort gefragt …

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

Was muss ich tun, damit ich beim Ausführen des Befehls „rake“ (und anderer von mir aufgelisteter Befehle) nicht zur Eingabe eines Kennworts aufgefordert werde?

Antwort1

sudosetzt Ihre Umgebung standardmäßig zurück, sodass Ihre nicht durchsucht wird $PATH. Es könnte also versuchen, eine systemeigene Standardversion von auszuführen, rubyanstatt der aufgelisteten. Insbesondere ist in Ihrer Datei das $PATHGesehene von angegeben:sudosudoers

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

Versuchen Sie, sudo -EIhre Umgebung beizubehalten, oder verwenden Sie den vollständig qualifizierten Pfadnamen für ruby, oder fügen Sie die Pfade zu secure_pathvor den angegebenen hinzu.

verwandte Informationen