Sudoers Xubuntu visudo editar não funciona

1

Eu tenho tentado especificar um script que gostaria de executar sem ser solicitada uma senha. Depois de várias buscas no google e stack e várias alterações de sintaxe diferentes, ainda não consigo fazê-lo funcionar. Uma coisa peculiar é que ao digitar sudo visudo nano é aberto para editar o arquivo. Eu nunca especifiquei nano como editor, mas eu posso ter editado o arquivo com o nano. Isso tornaria o nano o editor padrão? Se assim for, isso poderia causar problemas. Obrigado pela ajuda.

Aqui está o meu arquivo sudoers.

#
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults        env_reset
Defaults        mail_badpass
Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/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

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL) ALL
pat     ALL=NOPASSWD: /home/pat/test.sh

# See sudoers(5) for more information on "#include" directives:

#includedir /etc/sudoers.d
    
por Pat Herrod 11.01.2014 / 20:23

2 respostas

1

Com base nos seus comentários:

Realize que su, a menos que seja executado como root, exige que você forneça a senha do usuário para su. A razão pela qual o sudo ./test.sh funciona é que você está executando test.sh como root! (O sudo assume como padrão root, se você não der um switch -u.

Então, se você quiser que o script seja capaz de su para outro usuário, ele deve ser executado como root (não faça isso).

Por que não usar apenas "sudo -u pat" no script, em vez de "su pat -c"?

    
por VTC 15.01.2014 / 21:43
0

O editor padrão do visudo é nano, sem problemas.

1) Você precisará fazer algumas alterações na sua linha

pat     ALL=NOPASSWD: /home/pat/test.sh

Deve conter o nome do computador e um espaço antes e depois do "=":

username computername = NOPASSWD: /path/to/script

Algo parecido com isto:

pat patcomputer = NOPASSWD: /home/pat/test.sh

2) O script deve ser de propriedade de root. Execute isso no terminal:

sudo chown root:root /home/pat/test.sh  

3) Defina as permissões certas:

sudo chmod 705 /home/pat/test.sh  

4) Divirta-se!

    
por desgua 13.01.2014 / 20:52