su 명령어는 다들 아시다시피 로그온 후에 계정을 전환할 사용합니다.

흔히는 사용할 중간에 - (하이픈) 붙이기도 하고 붙이기도 하는데, 차이를 모르시는 분들도 계시더라구요.

 

su <계정명> vs su - <계정명>

su <계정명> 처럼 - 없이 사용하면 로그인한 계정의 환경 변수 값을 그대로 가지고, 변경된 계정의 권한만을 가집니다.

하지만 su - <계정명> 같이 - 붙이면 사용자가 실제 로그인한 것처럼 이용

 

아래 예시를 보시죠.

 

먼저 테스트를 위해 export root 계정의 환경변수를 설정합니다.

[root@testehp6 ~]# export VAR1='ChallengeIT'

 

설정한 VAR1 환경변수의 값을 확인해보시죠.

[root@testehp6 ~]# echo $VAR1

ChallengeIT

 

, 이제 - 없이 su 명령어로 계정을 변경합니다.

[root@testehp6 ~]# su te6adm

 

다음 앞에서 root 계정에 설정한 환경변수를 확인하면, 환경변수 값이 그대로 보입니다. 원래 계정의 환경변수 값을 그대로 가져오기 때문이예요.

testehp6:te6adm 8> echo $VAR1

ChallengeIT

 

그럼 테스트를 위해 exit으로 본래 계정으로 돌아갑니다.

testehp6:te6adm 9> exit

Exit

 

이번에는 - 추가해서 사용해볼까요?

[root@testehp6 ~]# su - te6adm

Last login: Tue Aug 20 14:22:08 KST 2019 on pts/0

 

그럼 이번에는 그런 환경변수가 설정되지 않았다고 나오네요.

testehp6:te6adm 8> echo $VAR1

VAR1: Undefined variable.

 

이렇게 - 넣고 넣고의 차이가 있습니다.

 

만약 root 전환하려는 경우에는 root 권한의 쉘을 이용하기 위해 반드시 - 옵션을 붙여야 합니다.

'Linux' 카테고리의 다른 글

NFS란? NFS 설정 및 주요 옵션  (0) 2020.08.11
Virtual Memory(SWAP)  (0) 2020.07.22
수세 리눅스 zypper 설치 시 Please insert medium…. 오류 해결방법  (0) 2020.07.09
init 프로세스  (0) 2020.07.07
리눅스 런레벨(Runlevel)  (0) 2020.03.18

+ Recent posts