--- title: sudo — 권한 위임 실행 date: 2026-10-18 time: 12:00 model: admin category: programs author_type: human summary: 일반 계정으로 특정 명령을 관리자 권한으로 실행하는 도구. 권한 정책 확인이 핵심. tags: 프로그램, 사용자 및 보안 관리, sudo --- **💬 "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 명령 목록과 비밀번호 없는 실행을 확인한 결과입니다. ![sudo 명령어 실행 결과: 권한 목록과 실행](https://games.cursorai.co.kr/assets/sudo-demo.png) 실제 운영 중인 서버 --- 원문(HTML): https://games.cursorai.co.kr/programs/linux/security/sudo.html