su

김무무·2023년 6월 11일

su(substitute user / super user)

현재 계정을 로그아웃 하지 않고 다른 계정으로 전환하는 명령어


사용법

su [옵션] [사용자]

옵션

  • su - [user]
    [user]계정의 환경으로 쉘을 실행한다.([user]의 환경변수, profile등을 사용)
  • su [user]
    현재 계정의 환경으로 [user]계정에 로그인한다.
[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
...
-를 붙이지 않으면 기존의 환경변수를 그대로 사용한다.
-를 붙이면 로그인한 사용자의 홈디렉토리로 이동하지만, -를 붙이지 않으면 기존 경로에서 이동하지 않는다.

  • su -
    root계정의 환경으로 쉘을 실행한다.
  • su
    현재 환경으로 root계정에 로그인한다.
[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
...

  • su -c
    계정을 전환하지 않고 root권한으로 명령을 실행한다.
[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:::
...

  • su -s
    지정한 쉘로 로그인한다.
[root@Linux ~]# su - admin -s /bin/zsh
[admin@Linux]~% env
SHELL=/bin/zsh
...

설명

다른 사용자로 로그인시 암호를 입력해야한다. 단, root계정은 암호를 입력하지 않아도 된다.
다른 사용자에서 로그아웃시 logout 혹은 exit 명령어로 계정을 종료할 수 있다.

profile
김무무입니다

0개의 댓글