前言
在linux系統中,由於root的權限過大,一般情況都不使用它。只有在一些特殊情況下才采用登錄root執行管理任務,一般情況下臨時使用root權限多采用su和sudo命令。
在工作中,普通用戶可能不會擁有root權限,這時需要執行以下root 其它用戶下的文件讀寫操作都會 報無權限。
這時我們可以使用方便的操作,su 命令,讓你短暫的有root權限,用完后 再切換回本來用戶。
sudo
sudo是一種權限管理機制,依賴於/etc/sudoers,其定義了授權給哪個用戶可以以管理員的身份能夠執行什么樣的管理命令;
格式:sudo -u USERNAME COMMAND
默認情況下,系統只有root用戶可以執行sudo命令。需要root用戶通過使用visudo命令編輯sudo的配置文件/etc/sudoers,才可以授權其他普通用戶執行sudo命令。
su
su為switch user,即切換用戶的簡寫。
格式為兩種:
su -l USERNAME(-l為login,即登陸的簡寫)
su USERNAME
如果不指定USERNAME(用戶名),默認即為root,所以切換到root的身份的命令即為:su -root或su -,su root 或su。
su USERNAME,與su - USERNAME的不同之處如下:
su - USERNAME切換用戶后,同時切換到新用戶的工作環境中。
su USERNAME切換用戶后,不改變原用戶的工作目錄,及其他環境變量目錄。
su -
su -,su -l或su --login 命令改變身份時,也同時變更工作目錄,以及HOME,SHELL,USER,LOGNAME。此外,也會變更PATH變量。用su -命令則默認轉換成成root用戶了。
而不帶參數的“su命令”不會改變當前工作目錄以及HOME,SHELL,USER,LOGNAME。只是擁有了root的權限而已。
注意:su -使用root的密碼,而sudo su使用用戶密碼