-
1. 기능
다른 사용자 계정으로 서브 쉘을 생성한다. 일시적으로 다른 사용자 계정으로 작업할 필요가 있을 때 사용한다.2. 문법
# su [ - ] [ 사용자ID ][인수]3. 옵션
-, -l, --login : 쉘을 실제적인 로그인 쉘로 동작시킨다.
-c, --commmand=COMMAND : 해당 유저로 로그인 하는 과정 없이, 현재의 쉘 프롬프트에서 하나의 명령만 실행하고자 할 때 사용된다.
4. 사용방법 및 정보
- : 하이픈 (-)을 사용하면 새로운 쉘로 로그인할 때 자신의 로그인 과정을 수행한다. 옵션이 주어지지 않으면 새로운 쉘은 단순히 쉘 역할을 수행할 뿐이다.
아무런 인수없이 su를 사용하면, 이것은 root 계정으로 로그인하기를 원하는 것으로 간주된다. 그래서 많은 사람들이 su가 ‘super user'를 의미하는 말로 생각하지만, 사실 ’substitute user'를 의미하는 말이다. 물론 슈퍼 유저의 패스워드를 알고 있어야만 한다.
su의 인수로 원하는 사용자의 ID를 주면 그 사용자의 패스워드를 물어오고, 입력한 패스워드가 일치한다면 새롭게 생성된 쉘을 볼 수 있다. 그렇게 다른 계정으로 작업한 후에 exit이나 ctrl+D등으로 쉘을 종료하면 다시 이전에 작업하던 쉘로 돌아갈 수 있다.
[lebowski@sense ~]$ whoami
lebowski
[lebowski@sense ~]$ echo $PATH
/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/home/lebowski/bin
[lebowski@sense ~]$ su
Password:
[root@sense lebowski]# whoami
root
[root@sense lebowski]# echo $PATH
/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/home/lebowski/bin
[root@sense lebowski]# exit
exit 명령을 통해 로그인 한 쉘에서 빠져나올 수 있다.
[lebowski@sense ~]$ su -
Password:
[root@sense ~]# whoami
root
[root@sense ~]# echo $PATH
/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/
root/bin:/usr/local/mysql/bin:/usr/local/apache/bin