사용자가 비밀번호를 입력하지 않고 시스템을 종료하거나 다시 시작할 수 있도록 sudoer를 올바르게 설정하려고 합니다. 나는 여러 시스템에서 이 작업을 수행했지만 어떤 이유로 Debian 10 Buster에서는 작동하지 않습니다.
생각할 수 있는 모든 것을 시도했습니다: NOPASSWD를 기본 %sudo 그룹에 넣고, 이를 내 사용자에게 직접 넣고, 별칭으로 만들고, 심지어 restart, power off 및 shutdown 명령에 대한 여러 경로를 넣기도 했습니다. 효과가 없습니다.
더 이상 고민하지 않고 이 점을 설명하기 위해 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:/sbin:/bin"
# Host alias specification
# User alias specification
# Cmnd alias specification
Cmnd_Alias SHUTDOWN=/sbin/poweroff, /sbin/reboot, /sbin/shutdown, /usr/sbin/reboot, /usr/sbin/poweroff, /usr/sbin/shutdown
# User privilege specification
root ALL=(ALL:ALL) ALL
aren ALL=NOPASSWD: SHUTDOWN
# 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
참고: 저는 이 파일을 편집하기 위해 visudo를 사용했으며 편집기를 직접 사용하지는 않았습니다. visudo는 구성 오류나 구문 오류 또는 visudo가 항상 말하는 것에 대해 불평하지 않습니다.
어떤 아이디어가 있나요? 뭔가 잘못되었다고 생각하시나요? 매우 감사합니다.
답변1
업데이트: @KamilMaciorowski 덕분에 문제를 해결하고 한 줄 솔루션을 찾았으므로 한 줄로 수행하려는 사람들은 다음과 같습니다.
%sudo ALL=(ALL) PASSWD: ALL, NOPASSWD: </path/to/commands here>
바꾸다: %sudo ALL=(ALL) NOPASSWD: </path/to/commands here>, PASSWD: ALL
왜냐하면 마지막에 놓은 것이 무엇이든 "우선순위"를 정하기 때문입니다.