본문 바로가기
OS/Linux

su와 su-의 차이

by 나비와꽃기린 2016. 12. 7.
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.




리눅스에서 사용자 계정으로 로그인 한 이후, 시스템 설정 파일을 수정하거나 파일 권한을 변경하거나 등의 관리자 권한이 필요할 때가 있다.

이때 root 계정으로 변경할 때 사용하는 명령어가 바로 su이다.

 

susubstitute user의 줄임말로서 사용하고 있던 사용자 계정을 로그아웃 하지 않고, 다른 사용자의 권한을 얻을 때 사용한다. 단일 사용자 계정으로 사용시 사용자 권한으로 변경시 자주 사용되도 한다. 아래 사진이 su 권한으로 변경할때의 방법이다.

 

보통


su 변경하고자하는ID 


를 입력한다.

ID를 입력하지 않으면 su root로 동작하게 된다.





위 사진처럼 일반계정일 경우 쉘 명령줄에 $가 보이는데

root 계정으로 변경된 후에는 관리자 계정 쉘인 #으로 바뀐 것을 볼 수 있다.

 

그렇다면 susu- 차이는 무엇일까?

 

예전 Weblogic 장애 중 charset이 깨져 나온다는 장애가 있었는데

그 이유는 su 로 들어가서 root 계정이 해당 user의 환경 설정정보를 가져가지 못했기 때문이었다.

>> 그 당시 root에는 LANG=C로만 잡혀져 있었기 때문에 user에 셋팅해 놓은 한글 charset profile를 가져가지 못했기 때문..

 

따라서 정리해보면 다음과 같다.

 

-를 붙이면 내 자신의 환경정보를 포함하여 가져가는 것 ( 기존 사용자 환경에서 사용하던 환경변수를 모두 유지한다)

-를 안 붙이면 only root 계정만 가져가는 것 ( 기존 사용자 환경에서 사용하던 환경변수를 모두 지워버린다)

이 되는 것이다.