Adventure Time - Lady Rainicorn [Linux] su, su - 의 차이
본문 바로가기
💻공부/Linux

[Linux] su, su - 의 차이

by 강켄트 2023. 3. 21.

리눅스에서 사용자 계정으로 로그인한 후에도 root 권한이 필요한 경우가 있다. 

사용자가 root 권한을 사용하기 위해서는 su 명령어를 사용하면 된다. 

 

su

su는 switch user의 줄임말로 현재 사용자 계정을 로그아웃하지 않고, 다른 계정으로 전환하는 명령어이다.

su 뒤에 변경하고자 하는 사용자를 입력하지 않으면 su root와 같은 의미의 명령어가 된다.

ex)

su : root 사용자로 변경 

su kent : kent 사용자로 변경 

su [변경하고자 하는 사용자]

 

su - 

su 명령어와 마찬가지로 현재 사용자 계정을 로그아웃하지 않고, 다른 계정으로 전환하는 명령어이다.

차이점은 환경변수와 워킹디렉토리에 영향을 준다는 데에 있다.  

su 뒤에 '-'는 '--login'을 의미하고, su - 는 su --login root 와 같은 의미의 명령어가 된다.

su -

 

환경변수에 영향

ex)

현재 kent 계정에 접속해있고 변수 값을 name = kent 을 한 후,

su를 입력하면  name = kent라는 환경변수 값이 변하지 않지만

su -를 입력하면 환경변수가 정리되기 때문에 name을 호출해도 kent가 나오지 않는다.

 

워킹디렉토리에 영향 

su는 워킹디렉토리에 영향 X 

su - 는 워킹디렉토리에 영향 O

ex)

현재 kent 계정에 접속해있고 /usr 디렉토리에 있다고 할 때

su를 입력하면 여전히 위치는 /usr 이지만

su -를 입력하면 /root로 이동하게 된다.  

 

 

ps

두 명령어의 제일 큰 차이점은 환경변수에 영향을 미친다는 건데

환경변수는 빌드에 영향을 줄 수 있는 부분이니

이 점을 잘 알아뒀다가 상황에 맞게 사용하는 게 중요할 것 같다!

 

 

 

 

 

 

 

 

댓글