🎯 실습 목표
- sudo 명령어를 통해 일반 사용자에게 루트 권한 일부를 위임하는 방법을 익힌다.
- visudo 명령어를 사용하여 /etc/sudoers 파일을 안전하게 수정한다.
- wheel 그룹을 활용한 권한 부여, 특정 명령만 허용하는 제한 설정도 실습한다.
🖥️ 실습 환경
- 운영체제: Rocky Linux 9.5 CLI
- 실습 계정: root, user01
- 주요 파일: /etc/sudoers, /etc/group
- 명령어: usermod -aG wheel, visudo, sudo, whoami
🧠 사전 개념 정리
용어설명
| sudo | 일반 사용자가 제한된 루트 권한을 사용하는 명령 |
| visudo | /etc/sudoers 파일을 검증하고 열 수 있는 안전한 편집기 |
| wheel 그룹 | sudo 사용 권한이 부여된 기본 그룹 (RHEL 계열) |
⚙️ 실습 과정
1. sudo 권한 없는 상태 확인
user01 계정에서 다음 명령어 실행:
bash
복사편집
sudo whoami → user01 is not in the sudoers file. This incident will be reported.
→ 현재는 sudo 사용 권한 없음
2. user01을 wheel 그룹에 추가
nginx
복사편집
usermod -aG wheel user01
→ wheel 그룹은 기본적으로 /etc/sudoers에서 sudo 허용됨
변경 적용 위해 로그아웃 → 재로그인 필요
3. sudo 권한 정상 동작 확인
user01 로그인 후:
bash
복사편집
sudo whoami → root
→ sudo 사용 성공
4. sudoers 파일 직접 수정 실습 – visudo
nginx
복사편집
visudo
→ /etc/sudoers 파일이 열리며, 구문 오류 방지를 위해 전용 에디터 사용
기본 설정 예:
sql
복사편집
%wheel ALL=(ALL) ALL
→ wheel 그룹 사용자는 모든 명령어를 sudo로 실행 가능
5. 특정 사용자에게 특정 명령만 허용
visudo 마지막 줄에 다음 항목 추가:
pgsql
복사편집
user01 ALL=(ALL) NOPASSWD: /usr/sbin/systemctl restart httpd
→ user01은 비밀번호 입력 없이 Apache 재시작만 가능
테스트:
pgsql
복사편집
sudo /usr/sbin/systemctl restart httpd → 성공 sudo reboot → user01 is not allowed to execute this command
6. sudo 사용 기록 확인
nginx
복사편집
journalctl _COMM=sudo
→ sudo 사용 내역 로그 확인 가능
또는:
bash
복사편집
cat /var/log/secure | grep sudo
→ 모든 sudo 명령 기록 남음
✅ 결과 요약
작업명령어/설정설명
| 그룹 부여 | usermod -aG wheel user01 | wheel 그룹에 추가 |
| sudo 권한 확인 | sudo whoami | 루트 권한 테스트 |
| sudoers 편집 | visudo | 안전한 설정 변경 |
| 명령 제한 | NOPASSWD: 명령 | 특정 명령만 허용 |
| 로그 확인 | journalctl, /var/log/secure | sudo 기록 확인 |
🔐 실무 시사점
- 실무에선 모든 사용자가 root를 사용하는 것이 금지되어 있으며,
sudo는 통제된 루트 권한 위임을 위한 표준 방식이다. - visudo를 사용하지 않고 sudoers 파일을 직접 수정할 경우,
오타 하나로도 sudo 기능이 완전히 마비될 수 있다. - NOPASSWD 설정은 자동화 목적 외에는 남용을 피해야 하며,
명령 단위 허용 정책을 잘 설계해야 보안성을 유지할 수 있다. - 실무에서는 sudo 로그 분석을 통해 권한 남용 여부를 감시하는 것도 중요하다.
🔜 앞으로의 목표
- sudo 사용 이력을 기반으로 자동 감사 스크립트 구성 실습
- Ansible, shell script 자동화 시 NOPASSWD 조건부 적용 실습
- /etc/sudoers.d/ 디렉터리를 활용한 사용자별 설정 분리 실습 예정
💬 느낀 점
단순히 sudo가 루트 명령어를 허용하는 도구라고 생각했는데,
실제로는 권한을 나누고 통제하며 기록까지 남기는 중요한 보안 체계라는 걸 알게 됐다.
특히 실습 중에 허용되지 않은 명령을 실행해 보며,
“정책이 존재한다는 것”이 얼마나 큰 보안 방패가 되는지 체감할 수 있었다.
'02. 클라우드 보안 공부 > 실습로그' 카테고리의 다른 글
| ✅ [실습로그] 특수 권한 설정 실습 (SUID, SGID, Sticky Bit) (0) | 2025.05.05 |
|---|---|
| ✅ [실습로그] ACL 설정 실습 (setfacl, getfacl) (0) | 2025.05.05 |
| ✅ [실습로그] 계정 잠금 및 만료 설정 실습 (chage, passwd -l) (0) | 2025.05.04 |
| ✅ [실습로그] 서비스 계정 분리 및 디렉터리 권한 제한 실습 (0) | 2025.05.04 |
| ✅ [실습로그] 디렉터리 및 파일 권한 설정 실습 (chmod, chown, umask) (0) | 2025.05.04 |