/etc/sudoers.d의 파일을 특정 순서로 읽습니까?

/etc/sudoers.d의 파일을 특정 순서로 읽습니까?

/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 *가져오는 순서와 동일합니다 .CPOSIX

관련 정보