root@debian:/home/debian8# cat /etc/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
# User privilege specification
root ALL=(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
27행에서는 # 문자 하나만 삭제되었으며, 원래 형식은 다음과 같습니다.
#includedir /etc/sudoers.d
# 문자만 제거했습니다.
root@debian:/home/debian8# ls /etc/sudoers.d
myRules README
root@debian:/home/debian8# cat /etc/sudoers.d/myRules
debian8 ALL=(ALL:ALL) NOPASSWD:ALL
어떻게 고치나요?
답변1
#includedir /etc/sudoers.d
코멘트가 아니라 #includedir
지시입니다. 해시 기호가 그 일부입니다. 다시 추가하면 됩니다.
답변2
man sudoers
무엇을 사용해야 하는지 에 따르면 @includedir
:
sudoers에 다른 파일 포함 @include 및 @includedir 지시문을 사용하여 현재 구문 분석 중인 sudoers 파일 내에 다른 sudoers 파일을 포함할 수 있습니다. 1.9.1 이전의 sudo 버전과의 호환성을 위해 #include 및 #includedir도 허용됩니다.
@includedir 지시문을 사용하면 시스템 패키지 관리자가 패키지 설치의 일부로 sudoers 파일 규칙을 배치할 수 있는 sudoers.d 디렉터리를 만들 수 있습니다. 예를 들어, 다음과 같습니다.
@includedir /etc/sudoers.d
sudo는 현재 파일의 처리를 일시 중지하고 /etc/sudoers.d의 각 파일을 읽으며 "~"로 끝나거나 "."를 포함하는 파일 이름은 건너뜁니다. 패키지 관리자나 편집기 임시/백업 파일에 문제가 발생하지 않도록 문자를 사용하세요. 파일은 어휘 순서로 구문 분석됩니다. 즉, /etc/sudoers.d/01_first는 /etc/sudoers.d/10_second보다 먼저 해결됩니다. 정렬은 숫자가 아닌 어휘이므로 /etc/sudoers.d/1_whoops는 /etc/sudoers.d/10_second 다음에 로드됩니다. 파일 이름에 앞에 0을 일관되게 사용하면 이러한 문제를 피할 수 있습니다. 디렉터리의 파일을 구문 분석한 후 @includedir 지시문이 포함된 파일로 제어권이 반환됩니다.
@include를 통해 포함된 파일과 달리 visudo는 구문 오류가 없는 한 @includedir 디렉터리의 파일을 편집하지 않습니다. -f 플래그와 함께 visudo를 실행하여 파일을 직접 편집할 수는 있지만 다른 파일에도 존재하는 별칭의 재정의를 포착할 수는 없습니다.