[Linux] sudo 권한 부여 및 제한하기

리눅스에서 sudo는 일반 사용자에게 일시적으로 루트(root) 권한을 부여하는 중요한 명령어입니다.
하지만 무분별하게 sudo 권한을 주면 보안 문제가 생기기 쉬워요.

 

  • 일반 사용자에게 sudo 권한을 부여하는 방법
  • 특정 명령어만 허용하는 방법
  • sudoers 설정 파일 관리 요령

 


1. sudo 권한 부여 – 사용자 추가

- Ubuntu 계열

sudo usermod -aG sudo username

sudo 그룹에 사용자를 추가하면 자동으로 sudo 권한을 얻게 됩니다.
로그아웃 후 다시 로그인해야 적용돼요.

- CentOS, RHEL 계열

sudo usermod -aG wheel username

CentOS나 RHEL에서는 wheel 그룹이 sudo 역할을 합니다.

 

2. sudoers 파일 편집하기

더 세부적으로 권한을 설정하고 싶다면 sudoers 파일을 편집합니다.
직접 수정하는 것보다 visudo 명령을 사용하는 것이 안전해요.

sudo visudo

이 명령은 편집 후 문법 오류가 있는지 검사해 주기 때문에 추천됩니다.

예: 특정 사용자에게 모든 명령 허용

username ALL=(ALL) ALL

예: 특정 명령만 허용

username ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart nginx

이 설정은 해당 사용자가 sudo systemctl restart nginx만 실행할 수 있도록 제한합니다.
NOPASSWD:를 붙이면 비밀번호 입력 없이 실행 가능합니다.

 

3. 사용자별 sudo 권한 테스트

sudo -l -U username

지정한 사용자가 어떤 sudo 명령을 사용할 수 있는지 확인할 수 있어요.

 

4. sudo 사용 이력 확인

grep 'sudo:' /var/log/auth.log

Ubuntu 기준으로 sudo 사용 내역은 /var/log/auth.log에 기록됩니다.
운영 중인 서버라면 누가 언제 어떤 명령을 실행했는지 확인할 수 있습니다.

 

 

sudo 권한은 신중하게 부여해야 합니다

sudo는 강력한 권한을 일시적으로 부여하는 도구인 만큼,
최소 권한 원칙에 따라 꼭 필요한 사용자에게만 필요한 범위로 부여하는 것이 중요합니다.

 

요약:

  • usermod -aG sudo username : 간편하게 sudo 권한 부여
  • visudo/etc/sudoers 파일 안전하게 편집
  • 특정 명령만 허용하는 방식으로 보안 강화 가능