首頁 > 運維 > linux運維 > 主體

linux su密碼是什麼意思

青灯夜游
發布: 2023-03-20 10:26:16
原創
7011 人瀏覽過

su的密碼就是root根使用者的密碼;安裝Linux或是Unix作業系統的時候,會有提示讓使用者輸入root的密碼,這也是執行「sudo su」指令以後出現讓使用者輸入的密碼。 su全名為“switch user”,可讓使用者暫時變更登入的身份,除root外變更時須輸入所要變更的使用者帳號與密碼。

linux su密碼是什麼意思

本教學操作環境: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
密码:
<-输入root密码
#切换到root,但是没有切换环境变量。注意:普通用户切换到root需要密码
[root@localhost ~]# env | grep lamp
#查看环境变量,提取包含lamp的行
USER=lamp
#用户名还是lamp,而不是root
PATH=/usr/lib/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/lamp/bin
#命令査找的路径不包含超级用户路径
MAIL=/var/spool/mail/lamp
PWD=/home/lamp
LOGNAME=lamp
#邮箱、主目录、目前用户名还是lamp
登入後複製
可以看到,在不使用su - 的情況下,雖然用戶身份成功切換,但環境變數依舊用的是原用戶的,切換並不完整。

相關推薦:《

Linux影片教學

以上是linux su密碼是什麼意思的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!