이것은 내가 가지고 있는 sudoers 파일입니다.데비안 9서버와 그것일하다. /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
# 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
이는 이제 비밀번호를 입력하지 않고도 다음 명령을 실행할 수 있음을 의미합니다.
sudo teamviewer daemon disable
sudo teamviewer daemon enable
그러나 이것은비 작동sudoers 파일리눅스 민트 18어떤 의미에서는 여전히 내 비밀번호를 묻는 것 같습니다. /etc/sudoers
포함하다:
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
추가된 줄이 작동하지 않게 만드는 데비안과 민트 사이에는 몇 가지 차이점이 있는 것 같습니다.
이 페이지에서 다른 답변을 읽었습니다.
비밀번호를 묻지 않고 루트로 특정 프로그램을 어떻게 실행할 수 있나요?
하지만 나는 그것에 대해 똑똑하지 않습니다.
편집 1:
첫 번째 답변은 Linux Mint에서 이상한 오류를 발생시킵니다.
$ 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!).
나도 이것을 이해하지 못한다.
$ 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 "$@"
편집 2:
예를 들어 AskUbuntu의 경우 의견에서 제안한 대로 다음과 같습니다.
sudoers NOPASSWD 옵션이 작동하지 않는 이유는 무엇입니까?
다른 많은 곳에는 해결책이 있고 그들이 지배할 것입니다.뒤쪽에관리자 그룹 규칙. 시도해 보고 나중에 재부팅도 해봤지만 여전히 작동하지 않습니다.
답변1
# 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
첫 번째 주석은 귀하의 사용자가 그룹의 구성원임을 나타냅니다 sudo
. 이는 Linux Mint 사용자가 sudo
기본적으로 액세스 권한을 얻는 방법입니다. 그런 다음 그룹 의 규칙이 sudo
도입되었습니다.
# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL
이것마지막일치 규칙이 승리합니다. 이후 규칙도 적용되는 경우 이전 vlastimil
규칙은 중요하지 않습니다 . NOPASSWD
이 NOPASSWD
규칙은 이 규칙 뒤에 와야 합니다. 이것이 바로 파일을 사용하는 것이 /etc/sudoers.d
효과적인 이유입니다. 이 파일이 마지막으로 포함되기 때문입니다.
# See sudoers(5) for more information on "#include" directives:
#includedir /etc/sudoers.d
에 여러 파일을 추가하는 경우 sudoers.d
번호가 매겨진 파일 이름 규칙( XX-somefile
)을 사용하면 해당 파일이 안정적으로 정렬되고 규칙의 올바른 우선순위를 보장할 수 있습니다.
답변2
Ubuntu 16.04 기반 Linux Mint 18.2의 한 가지 솔루션은 visudo
다음을 사용하여 별도의 sudoers 파일을 만드는 것입니다.
sudo visudo -f /etc/sudoers.d/teamviewer
추가 줄을 추가하십시오.
vlastimil ALL = (root) NOPASSWD: /usr/bin/teamviewer
들어가세요. 아마도 가장 우아한 해결책일 수도 있지만 그것은 단지 의견의 문제일 뿐입니다.
답변3
이는 바이너리 파일에 대해 정의된 절대 경로입니다 teamviewer
.
vlastimil
사용자로서 다음을 시도해 보십시오.
$ sudo /usr/bin/teamviewer