linux系統(centos)下su和sudo命令的區別
區別
我們在日常使用程序中,這2個命令很多時候能達到相同的效果,對細節區別十分模糊,這里進行簡單的解釋和區分,希望大家能夠正確使用這2個命令,使用程序中,也知其原因,
- su命令:用于切換當前用戶身份到其他用戶身份,變更時須輸入所要變更的用戶帳號與密碼,
- sudo命令:臨時用來以其他用戶的身份來執行命令,普通用戶需要在/etc/sudoer檔案里面配置才能使用sudo命令,
su命令基本使用
基本引數:
-c<指令>或--command=<指令>:執行完指定的指令后,即恢復原來的身份;
-f或——fast:適用于csh與tsch,使shell不用去讀取啟動檔案;
-l或——login:改變身份時,也同時變更作業目錄,以及HOME,SHELL,USER,logname,此外,也會變更PATH變數;
-m,-p或--preserve-environment:變更身份時,不要變更環境變數;
-s<shell>或--shell=<shell>:指定要執行的shell;
--help:顯示幫助;
--version;顯示版本資訊,
常見的使用場景:
-
切換用戶,普通用戶登錄后,不加任何引數,默認是切換到root用戶,
su #默認切換到其他用戶,需要輸入其他用戶的密碼, su zdsoft #切換到zdsoft用戶,不會加載zdsoft用戶的個人環境組態檔,不會進入zdsoft用戶的home目錄, #root用戶切換到其他用戶不需要輸入密碼 su - zdsoft #切換到zdsoft用戶,加載zdsoft用戶個人環境組態檔,并進入到zdsoft的home目錄, -
臨時切換,執行某命令后,立馬退出來,
su root -c 'ls -l' #切換到root命令,執行ls -l命令后退回來
sudo命令基本使用
備注:sudo明確臨時切換身份來執行命令,可以在/etc/sudoer檔案里面配置免密,在生產環境中,系統管理員管理系統時,建議不要使用root命令直接ssh遠程登錄,也不要直接使用root作業系統變更,而是使用一個運維專用的普通賬號,絕大情況下使用這個普通賬號進行系統管理(部署服務,上線應用,查看日志等等),特殊情況下需要root用戶,那就應該為這個普通賬號配置sudo權限,
/etc/sudoer檔案里面,也可以配置,限制某用戶用sudo時,只能執行特定的幾個命令,
基本引數:
-b:在后臺執行指令;
-h:顯示幫助;
-H:將HOME環境變數設為新身份的HOME環境變數;
-k:結束密碼的有效期限,也就是下次再執行sudo時便需要輸入密碼;,
-l:列出目前用戶可執行與無法執行的指令;
-p:改變詢問密碼的提示符號;
-s<shell>:執行指定的shell;
-u<用戶>:以指定的用戶作為新的身份,若不加上此引數,則預設以root作為新的身份;
-v:延長密碼有效期限5分鐘;
-V :顯示版本資訊,
常用使用場景:
-
使用某用戶的名義執行命令,
sudo -u zdsoft touch test.txt #使用zdsoft用戶身份執行touch命令, #若不加上此引數,則預設以root作為新的身份; -
永久切換到root下面,這種情況就和su很像,
sudo -i #切換root用戶,并不退出來, #-i就是登錄的引數 -
提權
sudo su #該命令和sudo -i能達到一樣的效果,但是sudo su需要當前登錄用戶有sudo權限,輸入的密碼為當前用戶密碼,
sudo -i #
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/329968.html
標籤:其他
