Por que / etc / sudoers falhou quando não usa caminho absoluto?

1

Eu quero dar à minha conta nova sudo privilegiledge então eu adiciono este configure em / etc / sudoers

Defaults:nova !requiretty

nova ALL = (root) NOPASSWD: /openstack/bin/nova-rootwrap 
/etc/nova/rootwrap.conf *
nova ALL = (root) NOPASSWD: /usr/bin/privsep-helper *

Então eu mudo para a nova:

su - nova

Aqui está a pergunta: Quando executo sudo /openstack/bin/nova-rootwrap , funciona, mas quando executo sudo nova-rootwrap , o sistema me pergunta a senha. Parece que o NOPASSWD não funciona.

Já adicionei /openstack/bin ao meu caminho de env. O sistema é o CentOS7.4.

Por que isso acontece? Como posso executá-lo sem uma senha?

    
por Don_Chen 08.08.2018 / 11:52

3 respostas

2

A primeira coisa que me vem à mente é que alguém pode mudar de caminho e fazer com que o nova-rootwrap seja preenchido com algum código malicioso.

Existe uma discussão realmente boa sobre este tópico - > link

    
por 08.08.2018 / 12:48
1

Seu comando para trocar de usuário não está atualizando o ambiente, preservando o ambiente do usuário anterior. Usar um shell de login em vez de usar apenas "-" conseguirá isso mais completamente.

Isto é, se você quer um ambiente completamente novo, você deve estar fazendo isso:

su --login nova

Isso também funciona:

sudo -i nova

    
por 10.08.2018 / 16:56
0

É um motivo de segurança, porque é muito ruim dar sudo sem caminho completo ou dar sudo ao script que é próprio do usuário não privilegiado, porque você concede a ele privilégio de root naquele momento.

    
por 10.08.2018 / 16:29