Linux

[ Linux ] su, su -, sudo 차이점 정리 (운영 서버 기준)

soyali 2026. 1. 28. 14:53

팀장님께서 su와 su -의 차이점을 아느냐고 물어보셔서 정리한 내용입니다.

리눅스 서버에서 su, su -, sudo는 모두 권한 상승과 관련된 명령어지만, 목적과 동작 방식이 달라 운영 서버에서는 추적성 / 최소 권한 / 보안 정책 관점에서 접근해야 합니다.

 

 

1. su (Switch User) 명령어

su는 다른 사용자 계정으로 세션을 전환하는 명령어입니다.
기본값은 root이며, 해당 계정의 비밀번호를 입력해야 전환이 됩니다.

동작

  • 전환 대상 계정의 비밀번호 입력 필요
  • 전환 후 shell이 전환된 계정 세션으로 유지됨
  • exit으로 다시 원래 계정으로 돌아감

실무 특징

  • root로 완전히 로그인한 상태가 되므로 연속 명령 실행이 쉬움
  • 하지만 전체 세션이 권한 상승 상태이기 때문에 실수로 시스템에 영향 줄 위험이 큽니다
  • 어떤 명령을 했는지 세부 추적이 어려움

 

 

 

2. su - ( su with login ) 명령어

su -는 단순 계정 전환이 아니라 로그인한 것과 동일한 환경으로 전환합니다.

동작

  • root의 환경 변수, PATH, 홈 디렉토리 등이 적용
  • 쉘은 root 로그인 세션과 동일하게 동작
  • 기본 디렉토리가 /root로 변경

su 와 su - 차이

옵션 환경 반영 홈 디렉토리
su 기존 사용자 환경 유지 변경 없음
su - root 환경 완전 반영 /root

실무 포인트

  • 스크립트 실행/환경 변수가 명확히 필요한 경우 **su -**가 더 정확한 결과를 보장
  • 다만 root 직접 세션 유지이므로 보안 리스크는 여전

 

 

 

3. sudo (Superuser Do) 명령어

sudo는 명령어 단위로 권한 상승을 수행합니다.
shell 전환 없이 지정한 명령만 root 권한으로 실행됩니다.

동작

  • 본인 계정 비밀번호 입력
  • /etc/sudoers에서 실행 권한 여부 확인
  • 명령 실행 후 일반 권한 상태로 돌아감

실무 특징 

  • 명령 단위 권한 적용 → 최소 권한 원칙
  • 각 명령 실행 시 로그가 남아 추적/감사 가능
  • 운영 서버에서는 표준 권한 상승 방식으로 간주됨
  •  

 

 

 

4. su / su - / sudo 차이점

구분 su su - sudo
실행 방식 사용자 전환 root 로그인 환경처럼 전환 특정 명령 실행
비밀번호 전환 대상 계정 전환 대상 계정 본인 계정
환경 반영 본인 환경 유지 root 환경 완전 반영 본인 환경 유지
명령 로그 제한적 제한적 명령 단위로 남음
운영 권장 X X O

 

 

 

5. 실무 적용 기준

 

  1. 기본 원칙
    작업은 sudo 사용으로 수행 → 각 명령이 추적/로그 기록되어야 함
  2. root 직접 로그인
    보안 정책 상 차단 권장 (root 비밀번호 공유 리스크가 큼)
  3. su / su - 활용 케이스
    • 테스트/개발 환경에서 빠른 전환이 필요할 때
    • 복구/비상 상황에서 전체 환경 점검이 필요할 때


운영 서버에서 중요한 건 “편한 권한 획득”이 아니라 “누가 무엇을 실행했는지 추적 가능한가?” 입니다.

 

 

 

마무리

  • su | 전체 세션 root 권한 상승 (환경 유지)
  • su - | root 로그인 환경으로 전체 반영
  • sudo | 단일 명령만 권한 상승 → 로그 + 제어 가능

운영에서는 sudo 기반 권한 관리표준입니다.