1 분 소요

리눅스 시스템에서 관리자 권한이 필요한 작업을 수행할 때 사용하는 두 가지 주요 도구가 있습니다. 바로 sudosu입니다. 이 두 도구는 비슷해 보이지만 사용 목적과 보안 측면에서 중요한 차이가 있습니다.

su (Switch User)

su 명령어는 다른 사용자 계정으로 전환할 때 사용합니다. 주로 일반 사용자에서 root 계정으로 전환하는 데 사용됩니다.

# root로 전환 (root 암호 필요)
su -

# 특정 사용자로 전환
su - username

사용자 전환

su 명령어를 통한 사용자 전환

su의 특징

  • root 암호가 필요함
  • 전체 로그인 세션이 전환됨
  • 환경 변수가 완전히 바뀜
  • 모든 권한을 얻게 됨

sudo (Superuser Do)

sudo는 현재 사용자 계정을 유지한 채로 특정 명령어만 관리자 권한으로 실행합니다.

# 파일 편집
sudo vi /etc/nginx/nginx.conf

# 서비스 재시작
sudo systemctl restart nginx

# sudo 권한을 가진 사용자 확인
sudo -l

sudo의 장점

  1. 세분화된 권한 제어
    • /etc/sudoers 파일을 통해 사용자별로 실행 가능한 명령어를 제한할 수 있습니다.
    • 특정 디렉토리나 명령어에 대한 접근만 허용 가능합니다.
  2. 보안성
    • root 암호를 공유할 필요가 없습니다.
    • 사용자 본인의 암호를 사용합니다.
    • 명령어 실행 기록이 남습니다.

권장 사용법

sudo 사용이 권장되는 경우

  • 특정 관리 작업만 수행할 때
  • 여러 관리자가 시스템을 관리할 때
  • 명령어 실행 기록을 남겨야 할 때

su 사용이 필요한 경우

  • 전체 root 세션이 필요한 경우
  • 복잡한 관리 작업을 연속해서 수행할 때
  • 다른 사용자의 환경에서 문제를 해결해야 할 때

보안 설정 예시

/etc/sudoers 설정

# 사용자에게 특정 명령어만 허용
user1 ALL=(ALL) /usr/bin/apt update, /usr/bin/apt upgrade

# 그룹에 sudo 권한 부여
%admin ALL=(ALL) ALL

# 암호 없이 특정 명령어 실행 허용
user2 ALL=(ALL) NOPASSWD: /usr/sbin/apache2ctl

적절한 권한 관리는 시스템 보안의 기본입니다. sudo를 기본으로 사용하고, 꼭 필요한 경우에만 su를 사용하는 것이 좋은 관리 방법입니다.

댓글남기기