su

su

 

su 명령어는 "super user"의 약자이고 다른 사용자로 전환하는 데 사용됩니다. 그래서 종종 'switch-user' 라고 불리기도 합니다.
su 명령어가 사용자 이름 없이 단독으로 실행되면 root 사용자로 로그인됩니다. 

 

su 와 su - 차이

$ su aingface

 

대체 무슨 차이일까요? 보통 다른 유저로 전환하기 위해서 위 명령어처럼 입력하면 비밀번호를 묻는 메세지가 출력됩니다.

 

 

[dodoria@aingface ~ ]$ su aingface
Password:
[aingface@aingface dodoria]$
[aingface@aingface dodoria]$ ls
ls: cannot open directory .: Permission denied 
[aingface@aingface dodoria]$
[aingface@aingface dodoria]$ cd
[aingface@aingface ~]ls  
bin lost 
[aingface@aingface ~ ]$

 

❗️ [사용자이름@호스트이름]은 사용자에게 현재 작업 중인 시스템의 상태 및 위치를 보여주는 CLI에서 중요한 요소입니다.

 

위 코드를 확인해보겠습니다. 사용자 ainface가 사용자 dodoria의 원래 로그인 세션으로부터 환경을 유지하고, 현재 작업 디렉토리 및 실행 파일로의 경로 또한 동일하게 유지된다는 점에 유의해야 합니다.

이때 사용자 ainface가 작업 디렉토리(아직 사용자 dodoria의 작업 디렉토리)를 나열하려고 하면 "ls: not open directory .: permission deny" 라는 오류가 표시됩니다. 하지만 마지막에 사용자 ainface는 아무런 옵션 없이 cd 명령을 실행한 후 자신의 홈 디렉토리를 나열할 수 있습니다.

-, 또는 -l 또는 -l(log in 플래그)으로 su를 호출하면 일반적으로 로그인할 때와 유사한 로그인 인터페이스를 제공합니다.

아래 코드의 모든 명령은 동일합니다.

$ su - aingface
OR
$ su -l aingface
OR
$ su --login aingface

 

 

 아래 코드의 경우 사용자 ainface 에게 실행 파일 경로를 포함하여 자신의 기본 로그인 환경이 제공됩니다. 이를 통해 사용자 자신의 기본 홈 디렉토리에 접속하게 됩니다.

[dodoria@aingface ~]$ su - aingface
Password:
Last login: Tue Mar 31 22:03:07 EAT 2024 on pts/0 
[aingface@aingface ~ ]$
[aingface@aingface ~ ]$ 1s bin lost 
[aingface@aingface ~ ]$

 

참고

https://www.tecmint.com/difference-between-su-and-su-commands-in-linux/

+ Recent posts