/etc/sudoers.d의 파일을 특정 순서로 읽습니까? 그렇다면 이 정렬에 대한 규칙은 무엇입니까?
답변1
에서 man sudoers
다음 명령을 사용하여 정확한 위치를 찾으세요.
$ LESS='+/sudo will suspend processing' man sudoers
파일은 어휘 순서로 구문 분석됩니다. 즉,
/etc/sudoers.d/01_first
이전에 구문 분석됩니다/etc/sudoers.d/10_second
. 정렬은 숫자 정렬이 아닌 어휘 정렬이므로 파일 이름에 앞에 0을 일관되게/etc/sudoers.d/1_whoops
배치하면 이러한 문제를 피할 수 있습니다./etc/sudoers.d/10_second
제목 아래 내용은 다음과 같습니다.Including other files from within sudoers
$ LESS='+/Including other files from within sudoers' man sudoers
LC_COLLATE
어휘 순서는 "사전순"이라고도 하며 로케일 설정 시 환경 변수에서 정의한 값 C
(숫자순, 대문자순, 소문자순)으로 부여됩니다. 이것은 주어진 순서와 같습니다 LC_COLLATE=C ls /etc/sudoers.d/
.
포함된 파일 목록과 해당 파일이 로드되는 특정 순서는 다음을 통해 노출될 수 있습니다.
$ visudo -c
/etc/sudoers: parsed OK
/etc/sudoers.d/README: parsed OK
/etc/sudoers.d/me: parsed OK
/etc/dirtest/10-defaults: parsed OK
/etc/dirtest/1one: parsed OK
/etc/dirtest/2one: parsed OK
/etc/dirtest/30-alias: parsed OK
/etc/dirtest/50-users: parsed OK
/etc/dirtest/Aone: parsed OK
/etc/dirtest/Bone: parsed OK
/etc/dirtest/aone: parsed OK
/etc/dirtest/bone: parsed OK
/etc/dirtest/zone: parsed OK
/etc/dirtest/~one: parsed OK
/etc/dirtest/éone: parsed OK
/etc/dirtest/ÿone: parsed OK
순서는 UNICODE가 아니라 C입니다.
답변2
sudoers
매뉴얼 에서 ( #includedir
지시문에 대해):
#includedir /etc/sudoers.d
sudo
패키지 관리자나 편집기 임시/백업 파일에 문제가 발생하는 것을 방지하기 위해 문자/etc/sudoers.d
로 끝나~
거나 문자를 포함하는 파일 이름을 건너뛰고 의 각 파일을 읽습니다 ..
파일은 어휘 순서로 구문 분석됩니다. 즉,/etc/sudoers.d/01_first
이전에 구문 분석됩니다/etc/sudoers.d/10_second
. 정렬은 숫자 정렬이 아닌 어휘 정렬이므로 파일 이름에 일정한 수의 선행 0을 사용하면 이러한 문제를 피할 수 있습니다/etc/sudoers.d/1_whoops
./etc/sudoers.d/10_second
바라보다 man 5 sudoers
.
위에 언급된 단어의 순서는 또는 로케일의 ls
(또는 )에서 echo *
가져오는 순서와 동일합니다 .C
POSIX