Por que estou solicitando uma senha sudo quando especifiquei “NOPASSWD” no meu arquivo / etc / sudoers? [duplicado]

3

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

Eu pensei que incluir o comando acima (aquele com “NOPASSWD”) impediria a solicitação de uma senha, mas depois que eu reiniciei meu sistema e fiz o login como meu usuário “rails”, note que ainda estou pedindo uma 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 eu preciso fazer para não ser solicitada uma senha ao executar o comando "rake" (e outros comandos que listei)?

    
por Dave 04.11.2016 / 21:58

1 resposta

2

sudo redefine seu ambiente por padrão, por isso não pesquisará seu $PATH . Por isso, pode estar tentando executar uma versão padrão do sistema de ruby em vez da listada. Em particular, o $PATH visto por sudo é dado no seu arquivo sudoers :

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

Tente usar sudo -E para preservar seu ambiente ou use o nome de caminho totalmente qualificado para ruby ou adicione os caminhos para secure_path antes dos dados fornecidos.

    
por 04.11.2016 / 22:16