su 轉換用戶身份。
sudo 不需要 root 的密碼,卻可執行 root 的工具。
visudo 編輯 /etc/sudoers。
[root@linux ~]# su [-lcm] [username]
參數:
- :變換身份為 root,取得一個新的 shell,使用 root 的環境設定參數檔
,如 /root/.bash_profile 等。
-l username :變換身份為 username,且使用 username 的所有相關環境設定檔。
-m,-p :使用目前的環境設定,而不重新讀取新使用者的設定檔。
-c command :僅進行一次指令 command。
[dywang@dywOffice ~]$ su
Password:
[root@dywOffice dywang]#
# su 與 su - 之差別
[dywang@dywHome2 ~]$ echo $SHLVL
4
[dywang@dywHome2 ~]$ su
Password:
[root@dywHome2 dywang]# pwd
/home/dywang
[root@dywHome2 dywang]# echo $SHLVL
5
[root@dywHome2 dywang]# exit
exit
[dywang@dywHome2 ~]$ echo $SHLVL
4
[dywang@dywHome2 ~]$ su -
Password:
[root@dywHome2 ~]# pwd
/root
[root@dywHome2 ~]# echo $SHLVL
1
# 一般使用者變換至一般使用者
[dywang@dywHome2 ~]$ su ddyw
Password:
[ddyw@dywHome2 dywang]$ pwd
/home/dywang
[ddyw@dywHome2 dywang]$ echo $SHLVL
5
[ddyw@dywHome2 dywang]$ exit
exit
[dywang@dywHome2 ~]$ su -l ddyw
Password:
[ddyw@dywHome2 ~]$ pwd
/home/ddyw
[ddyw@dywHome2 ~]$ echo $SHLVL
1
[ddyw@dywHome2 ~]$ exit
[dywang@dywHome2 ~]$ su -m ddyw
Password:
* Warning: SSH_AUTH_SOCK in environment is invalid; ignoring it
* Warning: GPG_AGENT_INFO in environment is invalid; ignoring it
* Warning: removing empty lock file
rm: cannot remove `/home/dywang/.keychain/dywHome2-lockf': Permission denied
* Warning: removing empty lock file
以下省略
[dywang@dywHome2 ~]$ su -m root
Password:
[root@dywHome2 ~]#
# root 變換至一般使用者
[root@dywHome2 tmp]# su ddyw
[ddyw@dywHome2 tmp]$ echo $SHLVL
2
[ddyw@dywHome2 tmp]$ su - ddyw
Password:
[ddyw@dywHome2 ~]$ echo $SHLVL
1
[root@dywHome2 tmp]# echo $SHLVL
1
[root@dywHome2 tmp]# su -m ddyw
bash: /root/.bashrc: Permission denied
[ddyw@dywHome2 tmp]$ echo $SHLVL
2
[ddyw@dywHome2 tmp]$ exit
exit
[root@linux ~]# sudo [-u [username|#uid]] command
參數:
-u :後面可以接使用者帳號名稱,或者是 UID。例如 UID 是 500 的身份。
例如:-u #500 來作為切換到 UID 為 500 的使用者來執行命令。
[dywang@dywOffice ~]$ sudo mkdir /root/testing
Password:
[dywang@dywOffice ~]$ ll /root/testing
ls: /root/testing: Permission denied
[dywang@dywOffice ~]$ su
Password:
[root@dywOffice dywang]# ll /root/
total 12
drwx------ 2 root root 4096 Jul 12 19:35 drakx/
drwxr-xr-x 2 root root 4096 Aug 7 12:14 testing/
drwx------ 4 root root 4096 Aug 7 10:33 tmp/
[root@dywOffice dywang]# exit
exit
[dywang@dywOffice ~]$ sudo rm -rf /root/testing
[root@dywH ~]# sudo -u dywang pwd
/root
[root@dywH ~]# sudo -u dywang ls
ls: cannot open directory .: Permission denied
[root@dywH ~]# sudo -i -u dywang pwd
/home/dywang
[root@dywH ~]# sudo -i -u dywang ls
0937466081_10105_receipt-3.pdf +Jg_Dhy86( !MNeV-temp-191339-10.png
0937466081_10105_receipt-3.ps
使用者帳號 登入的主機 = (可以變換的身份) 可以下達的指令
[root@dywOffice dywang]# visudo
# User privilege specification
root ALL=(ALL) ALL
dywang ALL=(ALL) ALL
dywang ALL = (www) ALL
%grpcsie ALL = (ALL) ALL
## 『使用者帳號』的欄位前面加上『%』表示群組。
%csie ALL = (ALL) NOPASSWD: ALL
練習題
su -
或 su
%grpcsie ALL = (ALL) ALL
%grpcsie ALL = (ALL) NOPASSWD: ALL
Next: 群組管理指令
Up: 帳號與身份管理
Previous: 使用者管理指令
Contents
2015-04-13