su的密碼就是root根用戶的密碼;安裝linux或者Unix操作系統的時候,會有提示讓用戶輸入root的密碼,這也是執行“sudo su”命令以后出現讓用戶輸入的密碼。su全稱“switch user”,可讓用戶暫時變更登入的身份,除root外變更時須輸入所要變更的用戶帳號與密碼。
本教程操作環境:linux7.3系統、Dell G3電腦。
su密碼是什么意思
su的密碼就是root根用戶的密碼呢,安裝Linux或者Unix操作系統的時候,會有提示讓您輸入root的密碼的,這就是執行sudo su命令以后出現讓您輸入密碼的密碼,注意這個密碼是不會顯示星號或者其他符號的,一直是空白的,輸入完成以后直接回車就好。
su命令介紹
su(英文全拼:switch user)。在Linux中 su 命令可讓用戶暫時變更登入的身份,除 root 外變更時須輸入所要變更的用戶帳號與密碼。
使用權限:所有使用者。
功能:變更用戶身份,若不指定用戶帳號,則預設變更為root。
語法
su?[-fmp]?[-c?command]?[-s?shell]?[--help]?[--version]?[-]?[USER?[ARG]]
參數說明:
-
-f 或 –fast 不必讀啟動檔(如 csh.cshrc 等),僅用于 csh 或 tcsh
-
-m -p 或 –preserve-environment 執行 su 時不改變環境變數
-
-c command 或 –command=command 變更為帳號為 USER 的使用者并執行指令(command)后再變回原來使用者
-
-s shell 或 –shell=shell 指定要執行的 shell (bash csh tcsh 等),預設值為 /etc/passwd 內的該使用者(USER) shell
-
–help 顯示說明文件
-
–version 顯示版本資訊
-
– -l 或 –login 這個參數加了之后,就好像是重新 login 為該使用者一樣,大部份環境變數(HOME SHELL USER等等)都是以該使用者(USER)為主,并且工作目錄也會改變,如果沒有指定 USER ,內定是 root
-
USER 欲變更的使用者帳號
-
ARG 傳入新的 shell 參數
常用范例:
例一:變更帳號為 root 并在執行 ls 指令后退出變回原使用者
命令:su -c ls root
??變更帳號為 root 并在執行 ls 指令后退出變回原使用者。
[root@localhost?~]#?su?-c?ls?root 公共??視頻??文檔??音樂 anaconda-ks.cfg 模板??圖片??下載??桌面 initial-setup-ks.cfg
例二:切換用戶
命令: su root
??testuser切換成root,相當于用戶改成root但是操作的是testuser環境
??小權限切換大權限要求輸入密碼;大權限切換小權限不需要輸入密碼。
??切換用戶,只能獲得用戶的執行權限,不能獲得環境變量。
[testuser@localhost?~]$?whoami?//顯示當前用戶 testuser [testuser@localhost?~]$?pwd?//顯示當前目錄 /home/testuser [testuser@localhost?~]$?su?root?//切換到root用戶 密碼: [root@localhost?testuser]#?whoami root [root@localhost?testuser]#?pwd /home/testuser
例三:切換用戶,改變環境變量
命令:su – root
??testuser切換成root,相當于用戶改成root,操作的是root環境。即變更帳號為 root 并改變工作目錄至 root 的家目錄。
??切換到用戶并獲得該用戶的環境變量及執行權限。
[testuser@localhost?~]$?whoami testuser [testuser@localhost?~]$?pwd /home/testuser [testuser@localhost?~]$?su?-?root 密碼: [root@localhost?~]#?whoami root [root@localhost?~]#?pwd /root
su 和 su – 的區別
注意,使用 su 命令時,有 – 和沒有 – 是完全不同的,- 選項表示在切換用戶身份的同時,連當前使用的環境變量也切換成指定用戶的。我們知道,環境變量是用來定義操作系統環境的,因此如果系統環境沒有隨用戶身份切換,很多命令無法正確執行。
舉個例子,普通用戶 lamp 通過 su 命令切換成 root 用戶,但沒有使用 – 選項,這樣情況下,雖然看似是 root 用戶,但系統中的 $PATH 環境變量依然是 lamp 的(而不是 root 的),因此當前工作環境中,并不包含 /sbin、/usr/sbin等超級用戶命令的保存路徑,這就導致很多管理員命令根本無法使用。不僅如此,當 root 用戶接受郵件時,會發現收到的是 lamp 用戶的郵件,因為環境變量 $MAIL 也沒有切換。
初學者可以這樣理解它們之間的區別,即有 – 選項,切換用戶身份更徹底;反之,只切換了一部分,這會導致某些命令運行出現問題或錯誤(例如無法使用 service 命令)。
通過下面這個例子,可直觀的看到 su 和 su – 的區別:
[lamp@localhost?~]$?whoami lamp #查詢用戶身份,我是lamp [lamp@localhost?~]$?su?root 密碼: <p>可以看到,在不使用 su - 的情況下,雖然用戶身份成功切換,但環境變量依舊用的是原用戶的,切換并不完整。</p><p>相關推薦:《<a href="http://www.php.cn/course/list/33.html" target="_blank">Linux視頻教程</a>》<br></p>