標籤:iss jsb 主機 blog parse log check 文法 檢查
1,su命令(su為switch user,即切換使用者的簡寫)
格式:su -l USERNAME(-l為login,即登陸的簡寫,其中l可以省略)
如果不指定USERNAME(使用者名稱),預設即為root,所以切換到root的身份的命令即為:su -root或是直接 su -
使用su切換使用者時需知曉對應使用者的登陸密碼
2:su - 與su的區別
su - USERNAME切換使用者後,同時切換到新使用者的工作環境中
su USERNAME切換使用者後,不改變原使用者的工作目錄,及其他環境變數目錄
3,sudo命令
sudo是一種許可權管理機制,依賴於/etc/sudoers,其定義了授權給哪個使用者可以以管理員的身份能夠執行什麼樣的管理命令;
格式:sudo -u USERNAME COMMAND
當普通使用者通過sudo以root使用者執行命令時,sudo後面的 -uUSERNAME可省略,即sudo COMMAND 即意為sudo以root使用者執行
5,sudo與su的區別
使用su切換使用者時需知曉對應使用者的登陸密碼,即若切換成root使用者身份,需知道root使用者的登陸密碼。作為root使用者管理員,如何授權其他普通使用者,在不需要知曉root密碼的情況下,執行root許可權的命令操作?此時即可使用sudo。
4,sudoers檔案
sudo的設定檔為:/etc/sudoers。
sudoers檔案中允許指定使用者在不需要知道root使用者的登陸密碼的情況下,可以以root使用者身份運行各種命令。此檔案必須使用visudo命令編輯配置。(visudo命令可以提供basic sanitychecks和check for parse errors,即提供快速的正確性有效性檢查,以及語法檢查功能)
查看sudores檔案,其中有一行如,定義了允許root使用者從任何主機登陸,使用sudo可以切換成任何使用者的身份,執行所有命令。
查看sudoers檔案,其中有兩行如,定義了組可以使用sudo命令的配置。
另外一篇類似文章,二者可互補,可作參考:
1. Linux系統中使用者切換的命令為su,文法為:
su [-fmp] [-c command] [-s shell] [--help] [--version] [-] [USER [ARG]]
參數說明
-f , –fast:不必讀開機檔案(如 csh.cshrc 等),僅用於csh或tcsh兩種Shell。
-l , –login:加了這個參數之後,就好像是重新登陸一樣,大部分環境變數(例如HOME、SHELL和USER等)都是以該使用者(USER)為主,並
且工作目錄也會改變。如果沒有指定USER,預設情況是root。
-m, -p ,–preserve-environment:執行su時不改變環境變數。
-c command:變更帳號為USER的使用者,並執行指令(command)後再變回原來使用者。
–help 顯示說明檔案
–version 顯示版本資訊
USER:欲變更的使用者帳號,
ARG: 傳入新的Shell參數。
2. su [user] 和 su - [user]的區別:
su [user]切換到其他使用者,但是不切換環境變數,su - [user]則是完整的切換到新的使用者環境。
如:
[[email protected] ~]# pwd --目前的目錄
/root
[[email protected] ~]# su oracle --使用su [user]
[[email protected] root]$ pwd --目前的目錄沒有改變,還是之前的使用者目錄
/root
[[email protected] root]$ su - oracle --使用su - [user]
Password:
[[email protected] ~]$ pwd --目前的目錄變為目前使用者的家目錄
/home/oracle
[[email protected] ~]$
所以建議大家在切換使用者時,盡量用su - [user],否則可能會出現環境變數不對的問題。
Linux 系統中使用者切換(su user與 su - user 的區別)