1. 程式人生 > >linux su命令引數及用法詳解

linux su命令引數及用法詳解

linux su 命令

建議大家切換使用者的時候 使用 su - root 這樣,否則可能發現某些命令執行不了
關於su 、su - 及 sudo的區別 請往下看
1.命令作用
su的作用是變更為其它使用者的身份,超級使用者除外,需要鍵入該使用者的密碼。
2.使用方式
su [-fmp] [-c command] [-s shell] [–help] [–version] [-] [USER [ARG]]
3.引數說明
-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引數。

4.例子
su -c ls root 變更帳號為 root 並在執行 ls 指令後退出變回原使用者。
su [使用者名稱]
a>在root使用者下, 輸入 su 普通使用者. 則切換至普通使用者, 從root切換到變通使用者不需要密碼
b>在普通使用者下, 輸入 su [使用者名稱]
提示 password:
輸入使用者的PASSWORD, 則切換至該使用者
擴充套件閱讀一:Linux下 su命令與su - 命令有什麼區別?
su 是切換到其他使用者,但是不切換環境變數(比如說那些export命令檢視一下,就知道兩個命令的區別了)
su - 是完整的切換到一個使用者環境
所以建議大家切換使用者的時候,儘量使用 su - linuxso 這樣 否則可能發現某些命令執行不了
擴充套件閱讀二:su和sudo的區 別
由於su 對切換到超級許可權使用者root後,許可權的無限制性,所以su並不能擔任多個管理員所管理的系統。如果用su 來切換到超級使用者來管理系統,也不能明確哪些工作是由哪個管理員進行的操作。特別是對於伺服器的管理有多人蔘與管理時,最好是針對每個管理員的技術特長和 管理範圍,並且有針對性的下放給許可權,並且約定其使用哪些工具來完成與其相關的工作,這時我們就有必要用到 sudo。

通過sudo,我們能把某些超級許可權有針對性的下放,並且不需要普通使用者知道root密碼,所以sudo 相對於許可權無限制性的su來說,還是比較安全的,所以sudo 也能被稱為受限制的su ;另外sudo 是需要授權許可的,所以也被稱為授權許可的su;
sudo 執行命令的流程是當前使用者切換到root(或其它指定切換到的使用者),然後以root(或其它指定的切換到的使用者)身份執行命令,執行完成後,直接退回到當前使用者;而這些的前提是要通過sudo的配置檔案/etc/sudoers來進行授權;