我看到我可以在 centos 的目錄下找到一些用戶,/home
但看不到其餘的用戶。
目錄下列出的用戶/home
,我可以使用命令以這些用戶身份登入
su username
要找到其餘用戶,我必須使用以下命令:
cut -d: -f1 /etc/passwd
要以其餘用戶之一的身份登錄,我需要使用命令
sudo -u username
有什麼不同?
答案1
如果您執行與您類似的命令:
$ cut -d: -f1,6,7 /etc/passwd
root:/root:/bin/bash
bin:/bin:/sbin/nologin
daemon:/sbin:/sbin/nologin
adm:/var/adm:/sbin/nologin
lp:/var/spool/lpd:/sbin/nologin
sync:/sbin:/bin/sync
shutdown:/sbin:/sbin/shutdown
halt:/sbin:/sbin/halt
mail:/var/spool/mail:/sbin/nologin
operator:/root:/sbin/nologin
games:/usr/games:/sbin/nologin
...
gareth:/home/gareth:/bin/bash
...
您會注意到,唯一具有/home
目錄的帳戶是以下帳戶:a) 上面的第二列具有 中目錄的路徑/home
,b) 第三列 ( ) 具有 shell /bin/bash
。
所有其他用戶都無法登錄,因為他們要么擁有 的 shell(/sbin/nologin
顧名思義,不允許登錄),要么擁有屬於特定命令的 shell,例如/sbin/halt
。
您可以以其他使用者身分執行命令,甚至執行 shell:
$ sudo -u daemon whoami
daemon
$ sudo -u daemon bash
$ whoami
daemon
$ echo $HOME
/
但你不會有主目錄/home
。
更重要的是,您無法在登入提示字元下或使用這些帳戶登錄,su
因為ssh
shell/sbin/nologin
及其密碼將被停用(在 的第二列中尋找 a!!
或 a )。*
sudo less /etc/shadow
這些帳號都是系統電子郵件或 dhcp 等服務使用的帳戶或用於關閉系統的帳戶。
當這些用戶使用sudo
.