Linux

리눅스 sudo(superuser do) 와 su(substitute user) 명령어

jhyngu 2025. 1. 21. 18:02
리눅스 관리에서 중요한 명령어인 sudo와 su는 각각 특정 명령 실행과 사용자 전환을 목적으로 사용된다.
이 글에서는 두 명령의 특징과 사용법을 정리했다.

sudo 명령어

sudo란? 

  • "superuser do"의 약자로, 현재 사용자 비밀번호를 입력하여 관리자 권한으로 특정 명령을 실행한다.
  • 보안성을 유지하면서 필요한 작업만 관리자 권한으로 실행할 수 있게 설계되었다.

sudo의 주요 특징

  1. 권한 제한 : 특정 명령만 관리자 권한으로 실행 가능.
  2. 안전성 : 관리자 비밀번호 대신 사용자 비밀번호를 사용하며 로그로 기록됨.
  3. 시간 제한 : 인증 후 기본 5분 동안 추가 인증 없이 사용 가능 (설정 변경 가능).
  4. 로그 기록 : 실행 기록은 /var/log/auth.log 또는 /var/log/secure 에 저장

sudo 사용법

1. 명령어 실행

sudo 명령어
  • 예시 : 시스템 업데이트
sudo apt update

 

2. 특정 사용자 권한으로 실행

sudo -u 사용자이름 명령어

 

  • 예시 : hong 사용자로 /home/hong 디렉토리 확인
sudo -u hong ls /home/hong

 

3. 루트 사용자 권한으로 셸 실행

sudo -i

 

4. 환경 변수 유지

sudo -E 명령어
  • 현재 사용자의 환경 변수를 유지하며 실행.

sudo 주요 옵션

옵션 설명
-u 특정 사용자로 명령 실행. 기본값은 root.
-i 로그인 셸로 전환(루트 환경 변수 적용).
-E 현재 사용자의 환경 변수 유지.
-k 인증 기록 삭제(다시 비밀번호 입력 필요).
-b 명령을 백그라운드에서 실행.
-l 실행 가능한 명령 목록 출력.

sudo와 sudoers 파일

1. sudoers 파일 수정

  • / etc/sudoers 파일은 sudo 권한을 제어하며, 반드시 visudo 명령을 통해 수정해야 한다.
sudo visudo

 

2. sudoers 파일 예시

사용자  ALL=(ALL:ALL) 명령
  • ALL=(ALL:ALL): 모든 사용자와 그룹에 대해 권한 적용.
  • 예시 : 
// 특정 사용자에게 모든 명령 허용
hong  ALL=(ALL:ALL) ALL
// 비밀번호 없이 실행 허용
hong  ALL=(ALL:ALL) NOPASSWD: ALL

sudo 사용 사례

1.  파일 복사

sudo cp myfile /etc/myconfig/

2. 패키지 설치

sudo apt install vim

3. 서비스 관리

sudo systemctl start apache2

4. 사용자 계정 추가

sudo useradd -m -s /bin/bash newuser

su 명령어

su란?

  • "substitute user" 또는 "switch user"의 약자로, 사용자 계정 전환이나 권한 승격을 목적으로 사용됩니다.
  • 주로 관리자(root) 계정으로 전환하거나 특정 사용자 권한으로 작업할 때 사용합니다.

su 기본 사용법

1. 사용자 전환

su [사용자이름]
  • 예시 : hong 사용자로 전환
su hong

2. 루트 계정으로 전환

su

3. 환경 설정 유지하며 전환

su - [사용자이름]

4. 특정 명령 실행

su -c "명령어" [사용자이름]
  • 예시 : 
su -c "ls /root" root

su 주요 옵션

옵션 설명
- 전환된 사용자의 환경 변수와 홈 디렉토리 적용.
-l -와 동일.
-c 특정 명령 실행 후 종료.
-s 특정 셸 실행.

su 사용 시 주의사항

1. su 접근 제한

  • 특정 사용자만 su를 실행하도록 설정하려면 wheel 그룹을 활용한다.
sudo usermod -aG wheel 사용자이름

2. 로그 기록 확인

  • /var/log/auth.log에 기록된 su 사용 내역 확인 :
sudo cat /var/log/auth.log | grep 'su'

3. 루트 계정 비밀번호 관리

  • su로 루트 계정 접근 시 비밀번호가 필요하므로, 정기적으로 변경하는 것이 중요하다.
sudo passwd root

sudo와 su의 차이점

구분 sudo su
목적 특정 명령만 관리자 권한으로 실행 사용자 계정 전환 및 전체 권한 획득
비밀번호 현재 사용자 비밀번호 전환할 사용자의 비밀번호
권한 제어 sudoers 파일로 세부 설정 가능 특정 사용자 제한이 어려움
로그 기록 명령 로그 기록 가능 기본적으로 활동 기록 없음
사용 범위 명령 실행 시에만 권한 부여 셸 전체에서 권한 유지

sudo와 su 사용 흐름

현재 사용자
 
su
 
다른 사용자
 
권한 획득 후 작업 수행
 
exit
 
현재 사용자

보안 팁

1. 최소 권한 원칙 적용

  • /etc/sudoers를 활용해 최소한의 명령만 sudo로 실행 가능하도록 설정.

2. 비밀번호 없이 실행 제한

  • 비밀번호 입력을 요구해 보안을 강화

3. 로그 모니터링

  • /var/log/auth.log를 주기적으로 확인하여 비정상적인 활동 탐지.