IT/Infrastructure

[Linux] su / su - / sudo 명령어, 차이

바다, 2021. 5. 2. 17:56
반응형

리눅스에서 root 권한이 필요한 이유

리눅스(Linux) 환경에서는

시스템 설정 변경, 패키지 설치, 서비스 제어 등
시스템 전체에 영향을 주는 작업을 수행할 때

root 권한이 필요합니다.

이러한 작업을 위해 리눅스에서는
su, su -, sudo 명령어를 사용합니다.


1. su (Switch User)

su는 현재 계정을 로그아웃하지 않고 다른 사용자 계정으로 전환하는 명령어입니다.

 
su root
  • root 계정으로 전환
  • root 비밀번호를 입력해야 함
  • 현재 사용자의 환경 변수 유지

2. su - (su --login)

 
su - root
  • root 계정으로 로그인 세션처럼 전환
  • root의 환경 변수 적용
  • 기본 디렉토리가 /root로 변경

✅ 시스템 관리 작업 시에는 su - 사용이 권장됩니다.


3. su 옵션 정리

 

옵션 설명
-c 쉘 실행 없이 명령만 수행
-s 지정한 쉘로 로그인
- / -l 로그인 쉘로 전환 (환경 변수 적용)

4. sudo (SuperUser DO)

sudo는 계정 전환 없이 특정 명령만 root 권한으로 실행하는 명령어입니다.

 
sudo yum install httpd
  • 현재 사용자 비밀번호 입력
  • 단일 명령에 대해서만 root 권한 부여
  • sudoers 설정에 따라 사용 가능

✅ 운영 환경에서는 sudo가 표준


5. su 와 sudo 차이점 정리

 

구분 su sudo
계정 전환 O X
권한 범위 전체 세션 단일 명령
비밀번호 root 사용자
권장

6. whoami

 
whoami
  • 현재 로그인된 사용자 계정 확인
  • su, sudo 사용 후 계정 확인에 유용

7. logout / exit

  • logout : 로그인 쉘 종료
  • exit : 현재 쉘 종료

su로 전환한 계정에서 이전 계정으로 돌아갈 때 사용

 

한 줄 정리

“운영 환경에서는 su 대신 sudo를 사용하여

최소 권한 원칙을 지키는 것이 보안상 안전합니다.”

반응형