visudo의 NOPASSWD가 Linux Mint 18에서 작동하지 않는 이유

visudo의 NOPASSWD가 Linux Mint 18에서 작동하지 않는 이유

이것은 내가 가지고 있는 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규칙은 중요하지 않습니다 . NOPASSWDNOPASSWD규칙은 이 규칙 뒤에 와야 합니다. 이것이 바로 파일을 사용하는 것이 /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

관련 정보