创建无密码用户的最佳方法

创建无密码用户的最佳方法

创建没有密码的用户的好方法是什么?没有密码,我的意思是一个只能由使用 su/sudo 命令的 root 帐户使用的帐户(例如 Apache 或 Nginx 使用的“nobody”用户)。

我读到过在 /etc/shadow 文件的密码字段中放置 * 是可行的,但我想知道是否有办法使用 useradd 命令来做到这一点。

我想到这样做:

useradd my_new_user -s /sbin/nologin -p '*'

但我不确定 useradd 命令是否可以这样使用。我还没有找到有关它的任何参考资料。

答案1

这按照您描述的方式工作(当然您可以指定您想要的任何 shell 来代替/bin/bash):

root# useradd temp_test1 -s /bin/bash -p '*'
root# su temp_test1
temp_test1#

执行上述命令后,我的文件useradd中出现以下条目:/etc/shadow

temp_test1:*:15842:0:99999:7:::

使用时约翰·史密斯(可选)的答案,下面的方法可以工作:

root# useradd temp_test2 -s /sbin/nologin
root# su -s /bin/bash temp_test2
temp_test2#

编辑: 我想指出的是,区别在于,除非您在发出命令时指定可用的 shell su,否则您无法进入指定了 shell 的帐户:/sbin/nologinsu

root# useradd temp_test3 -s /sbin/nologin
root# su temp_test3
This account is currently not available.
root#

(在 CentOS 6.4 中测试 - 应该可以在各种发行版中运行)。

答案2

useradd my_new_user -s /sbin/nologin

如果未指定密码,则不会创建密码/禁用帐户。

相关内容