如何创建没有密码的用户?

如何创建没有密码的用户?

在 os X 中,可以有没有密码的用户。如果您检查它们,dscl其密码显示为*.这用于系统用户,例如 等数据库的用户mysqlpgsql这样做的好处是这些用户不会显示在登录屏幕上,并且如果没有等,您就无法以他们的身份登录sudo

删除这样的用户后尝试了一些事情,我想重新创建它,但不能。我可以设法获得一个密码为空的用户,并且可以将密码设置为*。但没有一个具有与上面相同的效果,因为用户出现在我的登录屏幕上。

如何创建这样的用户?

答案1

您可以passwd --delete <username>在创建用户后运行adduser。之后,您无需输入密码即可登录。

答案2

您可以使用,这将使用 an而不是 来usermod禁用密码。!*

usermod -L <username>

从 usermod 的手册页中:

-L, --lock Lock a user's password. This puts a '!' in front of the encrypted password, effectively disabling the password.

答案3

例如, /etc/passwd 中主目录为 /dev/null 且 shell 为 /sbin/nologin 的用户可用于 sudo 命令,但实际上无法登录;

从我的/etc/passwd

tcpdump:x:104:441:added by portage for tcpdump:/dev/null:/sbin/nologin

我记得这也会使它从 XDM 登录屏幕上消失,但我不再使用 XDM,所以这是一个猜测:-)

答案4

我不能确定 OSX,但在 FreeBSD 上你可以使用:

pw add user mymuser -g mygroup -s /nonexistent -h -

-传递给该-h选项的值告诉pw将 master.passwd 中的密码字段设置为*,从而创建一个无登录帐户。设置 shell 并不是绝对必要的,但可以避免从 /etc/pw.conf 进行 shell 检查。

相关内容