sudo — 권한 위임 실행
Linux / 사용자 및 보안 관리 / sudo.html
💬 "sudo 명령어"
sudo는 필요한 명령만 관리자 권한으로 실행하게 합니다. root 직접 로그인을 줄이는 표준 방식입니다.
정책은 /etc/sudoers와 /etc/sudoers.d에서 관리하며 visudo로 편집합니다.
- 개념: 허용된 명령을 다른 사용자(기본 root) 권한으로 실행합니다.
- -l: 현재 계정이 실행 가능한 명령 목록을 봅니다.
- -u: 실행할 사용자를 지정합니다.
- 정책: /etc/sudoers.d/ 파일로 관리합니다.
자주 쓰는 옵션
| 옵션 | 설명 |
|---|---|
sudo -l | 허용된 명령 목록 확인 |
sudo -u <사용자> <명령> | 다른 사용자 권한으로 실행 |
visudo -c | sudoers 문법 검사 |
sudo -n | 비밀번호 없이 실행(자동화용) |
필수 명령어 조합 3가지
sudo -l— 내가 쓸 수 있는 관리자 명령 확인sudo -n systemctl status nginx— 비밀번호 없이 상태 확인 가능한지 점검visudo -c— sudoers 파일 문법 검사
💬 "리소스 절약하며 쓰는 방법 하나 알려줘"
실제 운영 중인 서버에서 자주 만나는 상황을 순서대로 정리했습니다.
1단계 · 권한 확인
무엇을 sudo로 할 수 있는지 봅니다.
sudo -l
2단계 · 실행
필요한 명령만 관리자 권한으로 실행합니다.
sudo systemctl restart nginx
3단계 · 감사
sudo 사용 기록을 확인합니다.
journalctl -t sudo -n 20 --no-pager
실무에서는 이렇게 씁니다
1. 배포 자동화 권한
상황 — CI가 서비스 재시작만 sudo로 해야 합니다.
grep -r ci-deploy /etc/sudoers.d/ && sudo -n systemctl restart myapp
결과 — 허용된 명령만 비밀번호 없이 실행됩니다.
포인트 — 전체 ALL 권한 대신 필요한 명령만 허용하는 것이 안전합니다.
2. sudo 감사
상황 — 누가 관리자 명령을 실행했는지 확인합니다.
journalctl -t sudo --since today --no-pager | tail -20
결과 — 사용자·명령·시각이 기록되어 감사에 활용됩니다.
포인트 — 자동화 계정의 sudo 사용도 함께 점검합니다.
주의할 점
- NOPASSWD ALL은 사실상 root와 같습니다. 명령을 최소로 제한합니다.
- sudoers를 직접 편집하면 문법 오류로 sudo 자체가 막힐 수 있어 꼭 visudo를 씁니다.
- 운영 영향 명령은 승인 절차 후 실행합니다.
실제 실행 화면
허용된 sudo 명령 목록과 비밀번호 없는 실행을 확인한 결과입니다.

실제 운영 중인 서버
이 문서는 화면 표시용 가상 디렉터리의 항목입니다. 실제 서버 파일시스템과 연결되지 않으며, 파일 실행이나 시스템 명령을 수행하지 않습니다.