sudo configuration
sudoers 정책의 기본 구조와 안전한 작성·검증 흐름을 설명한다.
File locations
/etc/sudoers: 기본 정책 파일/etc/sudoers.d/: 역할이나 애플리케이션별 include 정책/etc/sudo.conf: sudo frontend와 plugin 설정. sudoers 정책 파일과 용도가 다르다.
Syntax
기본 user specification은 다음 요소로 구성된다.
USER HOST=(RUNAS_USER:RUNAS_GROUP) TAGS: COMMANDS
%operations ALL=(root) /usr/bin/systemctl status sshd deploy ALL=(www-data) /usr/bin/id
%GROUP: Unix groupALL: 해당 위치에서 모든 값. 각 위치의 의미가 다르므로 최소 범위로 제한- command는 가능하면 절대 경로로 지정
- alias와
Defaults는 반복 정책을 구조화할 때 사용
Safe authoring
sudo visudo sudo visudo -f /etc/sudoers.d/operations sudo visudo -cf /etc/sudoers.d/operations sudo -l -U alice
NOPASSWD: ALL, unrestricted shell/editor/interpreter, 사용자가 수정 가능한 script나 directory를 privileged command로 허용하지 않는다. wildcard와 command argument matching은 sudoers 버전의 정확한 규칙을 공식 manual에서 확인한다.
Precedence and includes
sudoers는 선언 순서, alias, Defaults scope, include 순서가 결과에 영향을 줄 수 있다. 파일 이름 규칙과 include 처리는 배포판 설정을 확인하고 전체 정책을 visudo -c로 검사한다.
Validation
sudo visudo -c sudo -l sudo -l -U alice
See Also
History
- codex:: 2026-08-10 Added a dedicated sudoers authoring, precedence, and validation guide.