/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표시된 내용은 다음과 같습니다.sudosudoers

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

환경을 보존하기 위해 를 사용 하거나, 정규화된 경로 이름을 사용하거나, sudo -E지정된 경로 앞에 ruby를 추가해 보세요 .secure_path

관련 정보