pw
我有一个通过FreeBSD 上的实用程序创建的用户。我使用的完整命令是:
pw add user example -s /usr/local/scripts/example.sh -w none
用户可以作为示例登录,无需密码,这将运行示例脚本。脚本运行完成后,用户将自动注销。
我想复制该用户,但我正在寻找一种无需实用程序即可完成此操作的方法。例如,我考虑修改该/etc/passwd
文件,但看起来不起作用。我说它不起作用的原因是因为它提示我输入密码,当然我没有为我尝试添加的该用户设置密码。
我所追求的可能吗?我绝对必须使用诸如 之类的实用程序吗pw
?
只需快速编辑即可。也许我唯一缺少的就是将用户设置为不需要密码。我的编辑/etc/passwd
可能是正确的,我所需要的只是以某种方式将这个新用户设置为不需要密码。
答案1
您编辑了错误的文件,并且实际上没有修改系统帐户数据库,这就是为什么您没有看到任何修改。
这不是Linux。大师源文件帐户数据库是/etc/master.passwd
. /etc/passwd
是版本 7 Unix 兼容文件,从源生成的从属文件。想要查找内容的应用程序所查询的实际系统帐户数据库是一对 Berkeley DB 文件,也是由pwd_mkdb
.
vipw
自动运行pwd_mkdb
。如果您手动编辑/etc/master.passwd
,则必须(小心)pwd_mkdb
自己运行。
如果您手动编辑,/etc/passwd
您的更改将在下次运行时丢失pwd_mkdb
,并且无论如何都不会被应用程序看到。
答案2
如果您想编辑密码(5)文件,使用贵宾(8)。该文件/etc/passwd
只是一个影子文件。
要将密码设置为空,只需删除第二个参数(两个:
字符之间)即可。例如,如果root
密码为空,vipw
则会显示如下内容:
root::0:0::0:0:Charlie &:/root:/bin/csh
这真实的用户名和密码数据库位于/etc/pwd.db。看密码_mkdb(8)更多细节。