Este é um arquivo sudoers que eu tenho em um servidor Debian 9 e funciona . /etc/sudoers
contém:
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
# the following line I've added for sudo to work on Debian, which by default does not
vlastimil ALL=(ALL:ALL) ALL
# and this line I've added just now, so I could enable / disable teamviewer daemon as I wish
vlastimil ALL = (root) NOPASSWD: /usr/bin/teamviewer
# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL
# See sudoers(5) for more information on "#include" directives:
#includedir /etc/sudoers.d
Significado Agora posso executar, por exemplo o seguinte sem digitar a senha:
sudo teamviewer daemon disable
sudo teamviewer daemon enable
Este, no entanto, é um arquivo sudoers não-funcional no Linux Mint 18 em certo sentido, ele ainda me pede senha. /etc/sudoers
contém:
Defaults env_reset
Defaults mail_badpass
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"
# Host alias specification
# User alias specification
# Cmnd alias specification
# User privilege specification
root ALL=(ALL:ALL) ALL
# this line I've added myself, because I felt it is needed, however user vlastimil has had sudo access all the time, added just now
vlastimil ALL=(ALL:ALL) ALL
# and this line I've added just now, so I could enable / disable teamviewer daemon as I wish, but it does not work
vlastimil ALL = (root) NOPASSWD: /usr/bin/teamviewer
# 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) ALL
# See sudoers(5) for more information on "#include" directives:
#includedir /etc/sudoers.d
Eu acho que há alguma diferença entre o Debian e o Mint, o que faz com que as linhas adicionadas não funcionem.
Eu li respostas diferentes, como nesta página:
Como executar um programa específico como root sem um prompt de senha?
Mas eu não sou inteligente disso.
EDIT1:
A primeira resposta dá ao Linux Mint um erro estranho:
$ sudo /usr/bin/teamviewer
Init...
*** TeamViewer can not be executed with sudo! ***
Either use your normal user account without sudo
or use a the real root account to log in to your desktop (not recommended!).
Eu também não entendo isso.
$ which teamviewer
/usr/bin/teamviewer
$ file /usr/bin/teamviewer
/usr/bin/teamviewer: symbolic link to /opt/teamviewer/tv_bin/script/teamviewer
$ file /opt/teamviewer/tv_bin/script/teamviewer
/opt/teamviewer/tv_bin/script/teamviewer: Bourne-Again shell script, ASCII text executable
$ cat /opt/teamviewer/tv_bin/script/teamviewer
#!/bin/bash
# If you see this message, you probably attempted to start TeamViewer.
# Please open a terminal (Konsole, gnome-terminal, xterm),
# navigate to this folder (type 'cd /path/to/teamviewer' [Enter])
# then execute TeamViewer (type './teamviewer' [Enter])
TV_SCRIPT_DIR="$(dirname "$(readlink -e "$0")")"
source "$TV_SCRIPT_DIR/tvw_main"
Main "$@"
EDIT2:
Por exemplo, no AskUbuntu, como sugerido nos comentários:
Por que a opção NOPASSWD dos sudoers não funciona?
e em muitos outros lugares, há uma solução em que eles colocam a regra de regra de administrador após . Eu tentei, até reinicializei depois, mas ainda não está funcionando.