현재 계정을 로그아웃 하지 않고 다른 계정으로 전환하는 명령어
su [옵션] [사용자]
[root@Linux ~]# su - admin
[admin@Linux ~]$ env
...
PATH=/home/admin/.local/bin:/home/admin/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin
...
[admin@Linux ~]$ exit
[root@Linux ~]# su admin
[admin@Linux root]$ env
...
PATH=/home/admin/.local/bin:/home/admin/bin:/root/.local/bin:/root/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin
...
-를 붙이지 않으면 기존의 환경변수를 그대로 사용한다.
-를 붙이면 로그인한 사용자의 홈디렉토리로 이동하지만, -를 붙이지 않으면 기존 경로에서 이동하지 않는다.
[admin@Linux ~]$ su -
Password:
[root@Linux ~]$ env
...
PATH=/root/.local/bin:/root/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
[root@Linux ~]# exit
exit
[admin@Linux ~]$ su
Password:
[admin@Linux admin]$ env
...
PATH=/root/.local/bin:/root/bin:/home/admin/.local/bin:/home/admin/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin
...
[admin@Linux ~]$ cat /etc/shadow
cat: /etc/shadow: Permission denied
[admin@Linux ~]$ su -c "cat /etc/shadow"
Password:
root:$6$Xa1k0e.8DpAijxaE$sGGudPYrtO87QYmgxuBFJuHJhsPrttwfsPJH3TlWtF1pUaE2QGR3m::0:99999:7:::
...
[root@Linux ~]# su - admin -s /bin/zsh
[admin@Linux]~% env
SHELL=/bin/zsh
...
다른 사용자로 로그인시 암호를 입력해야한다. 단, root계정은 암호를 입력하지 않아도 된다.
다른 사용자에서 로그아웃시 logout 혹은 exit 명령어로 계정을 종료할 수 있다.