su 命令
su 命令可以切換成不同的用戶身份,命令格式如下:
[root@localhost ~]# su [選項] 用戶名
選項:
-:選項只使用"-"代表連帶用戶的環境變量一起切換;
-c 命令:僅執行一次命令,而不切換用戶身份
"-"不能省略,它代表切換用戶身份時,用戶的環境變量也要切換成新用戶的環境變量。大家知道環境變量是用來定義用戶的操作環境的,如果環境變量沒有隨用戶身份切換,那么很多操作將無法正確執行。
例如,普通用戶 lamp 切換成超級用戶 root,但是沒有加入"-",那么雖然是 root 用戶,但是 $PATH 環境變量還是 lamp 用戶的,不包含 /sbin、/usr/sbin 等超級用戶命令保存路徑,所以無法使用管理員命令;而且 root 用戶在接收郵件時,還會發現收到的是 lamp 用戶的郵件,因為環境變量 $MAIL 沒有切換過來。
【例 1】
[lamp@localhost ~]$ whoami
[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通過該例我們已經注意到,切換用戶時如果沒有加入"-",那么切換是不完全的。要想完整切換,可以使用如下命令:
【例 2】
[lamp@localhost ~]$ su -root 密碼: #"-"代表連帶環境變量一起切換,不能省略有些系統命令只有 root 可以執行,比如添加用戶的命令 useradd,所以我們需要使用 root 身份執行。但是我們只想執行一次,而不想切換身份,可以做到嗎?當然可以,命令如下:
【例3】
[lamp@localhost ~]$ whoami
總之,切換用戶時 “-” 代表連帶環境變量一起切換,不能省略,否則用戶身份切換不完全。
總結
- 上一篇: 利用mic visual studio
- 下一篇: pagefile.sys从C盘移到其他盘