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