我看到我可以在 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
.