본문 바로가기
[Linux]

[Linux] su 와 su - 의 차이점

by SAMSUNG Metaverse-Cloud 2024. 10. 28.
728x90

 

su는 switch user의 줄임말로 리눅스에서 시스템의 사용자를 바꿀 때 사용하는 명령어이다.

그렇다면 su와 su - 의 차이점은 무엇인가?

 

내가 기존에 test 라는 사용자로 시스템을 사용했다고 가정하자
su test2 라는 명령어를 통해 리눅스 사용자를 test2로 전환한다.
이럴 경우 사용자를 test2로 전환한다고 하더라도 환경변수는 기존의 사용자(test)의 환경변수를 가지고 있으며 홈 디렉토리 또한 이동하지 않는다. 

또한 설정파일이 변경되지 않으며 환경변수 같이 전역변수로 지정하지 않는 경우 환경변수의 문제가 발생한다. 

 

그렇다면 su - test2 를 통해 사용자를 변경하면 어떻게 될까?

su - 명령어를 통해서 사용자를 전환한다면 변환하려는 사용자 (test2)의 로그인 셸 환경을 완전히 초기화 해준다. 

이로 인해서 PATH, HOME, USER 등 환경변수가 정확하게 로드된다. 

이는 새 사용자로의 안정적인 전환을 의미한다. 

 

그러므로 빠른 사용자 전환이 필요하거나, 환경설정이 중요하지 않을 경우에는 su를 사용해도 괜찮지만 그런 상황이 아닌 경우는 su - 를 통해서 사용자를 전환하는 것을 권장한다. 

 

 

728x90