1、內容不同:
su命令:用來切換用戶,substitute英文含義「代替」的意思。
sudo命令:sudo為superuser do 的簡寫,即使用超級用戶來執行命令,一般是指root用戶。
2、用法不同:
su命令:不加用戶名默認是切換為root用戶,切當前目錄不改變,其他環境變數不變。
sudo命令: 查看當前用戶可以用sudo執行的命令都有哪些。
3、環境不同:
su命令:切換到root用戶,但是並沒有轉到root用戶家目錄下,即沒有改變用戶的環境。
sudo命令:是當前用戶切換到root,然後以root身份執行命令,執行完成後,直接退回到當前用戶,而這些的前提是要通過sudo的配置文件/etc/sudoers來進行授權。
su的參數:
-c<指令>或--command=<指令>:執行一個指令後就恢復原來的身份;
-f或--fast:使shell不用讀取啟動文件,適用於csh和tcsh;
-,-l,--login:切換用戶時,使環境變數(home,shell,user,logname,path等)和欲切換的用戶相同、不使用則取得用戶的臨時許可權;
-m,-p,:變更身份時,保留環境變數不變;
-s<shell>,--shell=<shell>:指定執行命令的shell;
--help:顯示幫助;
--version:顯示版本信息;
用戶賬戶:指定欲切換用戶,默認切換為root。
B. Linux su和sudo命令的區別,並獲得root許可權
su(superuser)
su表示切換用戶,如: 輸入:su命令後回車表示切換當前的用戶到root用戶,或者: 輸入:su - root(或者其他用戶名)這里加了"-"後表示也切換的當前的環境變數到新用戶的環境變數。
su root(或者其他用戶名)表示不切換環境變數到當前用戶下。
sudo 表示獲取臨時的root許可權命令,如: sudo gedit /etc/shadow,表示臨時使用root許可權來編輯/etc/shadow密碼文件,因為/etc/shadow密碼文件需要使用root許可權才能打開與編輯。所以這里使用了sudo命令臨時使用root許可權來做一些普通賬戶無法完成的工作。
sudo -i表示以root身份登錄,進程的實際用戶ID和有效用戶ID都變成了root,主目錄也切換為root的主目錄。
獲得root許可權:
1、sudo su(實質上就是su,而su默認是獲得root許可權)
2、su
3、su root
4、su -root
5、sudo -i
Linux su和sudo命令的區別,並獲得root許可權