반응형
sudoers 파일은 Linux 시스템에서 sudo 명령어의 권한을 관리하는 핵심 설정 파일입니다. 이 파일을 통해 어떤 사용자가 어떤 명령어를 실행할 수 있는지 상세하게 제어할 수 있습니다.
sudoers 파일 위치와 기본 구조
# sudoers 파일 위치
/etc/sudoers
# 안전하게 편집하기
sudo visudo
기본 문법 구조
# 사용자 권한 설정
user HOST=(USER:GROUP) COMMANDS
# 예시
john ALL=(ALL:ALL) ALL
mary ALL=(root) /usr/bin/apt-get
주요 설정 예시
# root 사용자 설정
root ALL=(ALL:ALL) ALL
# sudo 그룹 설정
%sudo ALL=(ALL:ALL) ALL
# 특정 사용자에게 비밀번호 없이 실행 권한 부여
james ALL=(ALL) NOPASSWD: ALL
# 특정 명령어만 실행 가능하도록 제한
peter ALL=(root) /bin/systemctl restart nginx
# 여러 명령어 그룹화
Cmnd_Alias SERVICES = /bin/systemctl restart nginx, /bin/systemctl restart mysql
admin ALL=(root) SERVICES
고급 설정 예시
# 특정 디렉토리의 모든 명령어 허용
john ALL=(root) /usr/local/bin/*
# 특정 명령어 제외
jane ALL=(ALL) ALL,!/bin/su,!/bin/bash
# 로깅 설정
Defaults log_output
Defaults logfile=/var/log/sudo.log
# 환경 변수 유지
Defaults env_keep += "HOME PATH"
# 비밀번호 시도 제한
Defaults passwd_tries=3
보안 강화 설정
# sudo 사용시 터미널 필요
Defaults requiretty
# sudo 만료 시간 설정
Defaults timestamp_timeout=15
# 명령어 실행 전 경고 메시지
Defaults lecture=always
Defaults lecture_file=/etc/sudo_lecture
# 비밀번호 재시도 대기 시간
Defaults passwd_timeout=1
그룹별 권한 관리
# 개발자 그룹 설정
%developers ALL=(ALL) /usr/bin/docker*, /usr/local/bin/npm
# 운영팀 설정
%devops ALL=(ALL) /usr/bin/kubectl*, /usr/bin/helm
# 데이터베이스 관리자 설정
%dbadmin ALL=(ALL) /usr/bin/mysql*, /usr/bin/postgres*
실제 사용 사례
# 웹 서버 관리자 설정
Cmnd_Alias WEB = /bin/systemctl restart nginx, /bin/systemctl restart apache2
Cmnd_Alias LOGS = /bin/tail -f /var/log/nginx/*, /bin/grep * /var/log/apache2/*
%webadmin ALL=(root) WEB, LOGS
# 백업 관리자 설정
Cmnd_Alias BACKUP = /usr/bin/rsync, /usr/bin/tar
backup_user ALL=(root) BACKUP
주의사항
파일 권한
# sudoers 파일의 권한은 반드시 0440이어야 함
chmod 0440 /etc/sudoers
문법 검증
# visudo 사용시 자동으로 문법 검사
sudo visudo -c
백업 관리
# 수정 전 백업
sudo cp /etc/sudoers /etc/sudoers.bak
sudoers 파일을 잘못 설정하면 시스템 관리에 심각한 문제가 발생할 수 있으므로, 수정할 때는 반드시 visudo
명령어를 사용하고 신중하게 작업해야 합니다. 특히 권한을 부여할 때는 최소 권한의 원칙을 따르는 것이 보안상 중요합니다.
이러한 설정들을 통해 시스템의 보안을 강화하고 효율적인 권한 관리가 가능해집니다. 각 조직의 요구사항과 보안 정책에 맞게 적절히 조정하여 사용하시기 바랍니다.
'Linux' 카테고리의 다른 글
리눅스에서 3시간마다 인터넷 속도 자동 측정 시스템 구축하기 (0) | 2025.03.20 |
---|---|
PM2로 Node.js 애플리케이션 관리하기 (0) | 2025.02.18 |
nohup : 백그라운드 프로세스 실행 (1) | 2025.02.03 |