IT
리눅스 sudo
1. sudo 개요
-
sudo는 일반 사용자 계정이 루트 권한(root privilege) 또는 다른 사용자 권한으로 명령을 실행할 수 있게 하는 프로그램입니다.
-
전통적으로 루트 권한이 필요한 작업은 su로 root 계정으로 직접 전환해야 했지만, sudo는 특정 명령만 루트 권한으로 수행할 수 있도록 허용하여 보안성과 편의성을 동시에 제공합니다.
2. 기본 사용법
sudo [옵션] 명령어 [인자...]
예시:
sudo apt update
sudo systemctl restart nginx
sudo cp file /etc/
-
기본적으로 sudo를 입력하면 현재 사용자의 비밀번호를 묻습니다. (root 비밀번호가 아님)
-
인증 성공 후 일정 시간 동안(timestamp_timeout, 보통 5분) 재입력 없이 사용할 수 있습니다.
3.
sudo
의 동작 원리
-
사용자가 sudo를 입력 → /etc/sudoers 설정 확인.
-
해당 사용자가 지정된 명령을 실행할 권한이 있는지 확인.
-
권한이 있으면 명령을 root(혹은 다른 지정 사용자) 권한으로 실행.
-
실행 기록이 /var/log/auth.log 또는 journalctl 같은 로그에 남음.
4. 주요 옵션
-
-u USER : 특정 사용자 권한으로 실행
sudo -u postgres psql
-
-
-i : 지정 사용자 환경 초기화 후 로그인 셸 실행
sudo -i
-
-
-s : 지정 사용자 셸 실행 (환경 유지)
-
-k : 캐시된 인증 무효화(다음 명령 시 비밀번호 재요구)
-
-l : 자신이 어떤 명령을 sudo로 실행할 수 있는지 확인
5.
/etc/sudoers
설정
sudo 권한은 /etc/sudoers 파일 또는 /etc/sudoers.d/ 디렉토리에 정의됩니다.
편집은 visudo 명령으로 해야 구문 오류를 방지할 수 있습니다.
기본 구조
user host = (runas) command
예시:
# root 모든 권한
root ALL=(ALL:ALL) ALL
# user1은 모든 호스트에서 모든 명령 가능
user1 ALL=(ALL) ALL
# devuser는 /bin/systemctl restart nginx만 실행 가능
devuser ALL=(ALL) /bin/systemctl restart nginx
6.
sudo
그룹
대부분의 배포판은 특정 그룹(예: sudo, wheel)에 속한 사용자에게 루트 권한을 부여합니다.
-
Debian/Ubuntu 계열: sudo 그룹
-
Red Hat/CentOS 계열: wheel 그룹
사용자를 그룹에 추가:
sudo usermod -aG sudo user1 # Ubuntu
sudo usermod -aG wheel user1 # CentOS
7. 보안 특징
-
최소 권한 원칙: root 계정 직접 로그인 대신 필요한 명령만 허용.
-
감사(Audit) 가능: 모든 sudo 사용 내역이 로그에 기록.
-
비밀번호 보호: root 비밀번호 대신 사용자 자신의 비밀번호 사용.
-
시간 제한 인증: 비밀번호 입력 후 일정 시간만 유효.
8. 위험과 주의사항
-
sudo su 또는 sudo -i로 root 셸을 띄우면 전체 권한을 계속 유지 → 실수 위험 증가.
-
잘못된 sudoers 설정은 보안 구멍으로 이어질 수 있음(예: NOPASSWD:ALL).
-
스크립트에서 sudo 사용 시 입력 대기 문제 발생 가능 → 자동화에서는 sudoers 설정을 통해 특정 명령을 비밀번호 없이 허용하는 경우도 있음.
9. 유용한 활용 예시
-
로그 보기 (보안 감사)
sudo journalctl -u ssh
-
-
특정 사용자 권한으로 실행
sudo -u www-data whoami
-
-
비밀번호 묻지 않고 특정 명령 실행 (sudoers)
deploy ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart myapp
10. 요약
-
sudo는 루트 계정 직접 사용을 대체하는 보안 도구.
-
/etc/sudoers로 권한을 세밀하게 제어 가능.
-
로그가 남아 추적 가능.
-
권한을 최소화하는 방향으로 설정하는 것이 보안적으로 안전.
댓글
아직 댓글이 없습니다.
로그인 후 댓글을 남길 수 있습니다.