/etc/sudoers 파일에 "NOPASSWD"를 지정할 때 sudo 비밀번호를 묻는 메시지가 표시되는 이유는 무엇입니까?

/etc/sudoers 파일에 "NOPASSWD"를 지정할 때 sudo 비밀번호를 묻는 메시지가 표시되는 이유는 무엇입니까?

우분투 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

관련 정보