一般我們都會建議不要直接使用root帳號登陸伺服器,建議使用普通帳號來登陸,等到必須使用root使用者來操作時,才進行身分切換。下面,就來講講兩個身分切換的指令su與sudo。
su
su指令用於從目前用戶切換到新的用戶,切換到新用戶身份時,需要輸入切換用戶的密碼。
一般用法:su - 用户名
-或-l:改變身分時,也同時變更工作目錄,以及HOME,SHELL,USER,logname。此外,也會變更PATH變數;
以下來示範該指令的用法:
$ id # 当前用户是admin uid=1005(admin) gid=1006(admin) groups=1006(admin) $ su - # 不输入用户名则表示切换到root用户 Password: <===输入root用户的密码
sudo
##使用su來切換用戶需要輸入新用戶的密碼,我們不可能把root密碼隨意給其他人。使用sudo可以來解決這個問題,下面我們來介紹sudo。 對比su需要知道新切換的使用者密碼(往往是root使用者密碼),sudo的執行只要輸入自己的密碼即可。甚至可以設定為不用密碼都行。想要用好sudo,那麼就需要掌握/etc/sudoers這個設定檔。但這個文件是不能用vim或來修改,他需要用指定的命令,visudo來修改。 下面展示sudo的用法:sudo [選項] 指令[root@bajiecxg tmp]# sudo -u gwx touch a.txt [root@bajiecxg tmp]# ll a.txt -rw-r--r-- 1 gwx gwx 0 10月 29 17:49 a.txt # 使用sh -c执行多条命令 [root@bajiecxg tmp]# sudo -u gwx sh -c "mkdir gwx;cd gwx;\ touch 1.txt" [root@bajiecxg tmp]# ll gwx/ 总用量 0 -rw-r--r-- 1 gwx gwx 0 10月 29 17:53 1.txt下面我們來看看/etc/sudoers這個文件,基本設定格式如下
root ALL=(ALL) ALL用戶帳號 登入者來源主機=可切換的使用者身分 可執行的命令
admin ALL=(ALL) ALL那如果我們有多個維運管理者,他們都需要能夠使用sudo來執行任意指令,那麼就需要增加多個設定。那有沒有簡單的方法呢?有的,只要我們把用戶加入到wheel這個群組就可以了。那為什麼加入到這個組就行了呢?看下/etc/sudoers,大概在99行:
%wheel ALL=(ALL) ALL我們還可以讓用戶使用sudo時候,不需要使用密碼即可執行命令
%wheel ALL=(ALL) NOPASSWD: ALL # 属于wheel这个组的用户执行sudo命令时,不需要输入密码
還可以賦予用戶有限的指令權限,讓使用者只能執行幾個指令
admin ALL=(ALL) /usr/bin/ls,/usr/bin/cd除此之外,sudo還有許多其他的用法,像是使用者別名、指令別名等等,有興趣的童鞋可以自行查閱相關資料。
以上是linux系統中su與sudo的用法的詳細內容。更多資訊請關注PHP中文網其他相關文章!