主目录下列出的用户与未列出的用户之间的区别

主目录下列出的用户与未列出的用户之间的区别

我看到我可以在 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因为sshshell/sbin/nologin及其密码将被禁用(在 的第二列中查找 a!!或 a )。*sudo less /etc/shadow

这些账号都是系统电子邮件或 dhcp 等服务使用的帐户或用于关闭系统的帐户。

当这些用户使用sudo.

相关内容