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 라는 일반계정으로 로그인하였기 때문에 일반 유저의 명령어만 사용할 수 있도록 환경변수가 설정되어 있다.
[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 | - su 명령을 이용해 root 유저로 로그인을 하였지만, - 옵션을 사용하지 않아 환경변수는 lebowski 라는 계정에 대한 설정 내용 그대로이다.
[root@sense lebowski]# exit | - 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 | - 옵션을 통해 root 유저로 로그인한 후 환경변수를 봤더니, 실제 root 계정으로 로그인 한 것과 같은 환경변수 정보를 볼 수 있다. 이제 슈퍼유저의 권한으로만 실행할 수 있는 명령어도 사용할 수 있다.
|