FreeBSD 创建用户没有实用程序?

qui*_*lur 0 freebsd users passwd

我有一个通过 FreeBSD 上的实用程序创建的用户pw。我使用的完整命令是:

pw add user example -s /usr/local/scripts/example.sh -w none
Run Code Online (Sandbox Code Playgroud)

用户可以作为示例登录,无需密码,这将运行示例脚本。脚本运行完成后,用户将自动注销。

我想复制该用户,但我正在寻找一种无需实用程序即可完成此操作的方法。例如,我考虑修改该/etc/passwd文件,但看起来不起作用。我说它不起作用的原因是因为它提示我输入密码,当然我没有为我尝试添加的该用户设置密码。

我所追求的可能吗?我绝对必须使用诸如 之类的实用程序吗pw

只需快速编辑即可。也许我唯一缺少的就是将用户设置为不需要密码。我的编辑/etc/passwd可能是正确的,我所需要的只是以某种方式将这个新用户设置为不需要密码。

Jde*_*eBP 5

您编辑了错误的文件,并且实际上没有修改系统帐户数据库,这就是为什么您没有看到任何修改。

这不是Linux。帐户数据库的主源文件/etc/master.passwd是. /etc/passwd是版本 7 Unix 兼容文件,从源生成的从属文件。想要查找内容的应用程序所查询的实际系统帐户数据库是一对 Berkeley DB 文件,也是由pwd_mkdb.

vipw自动运行pwd_mkdb。如果你手动编辑/etc/master.passwd,你必须(小心)pwd_mkdb自己运行。

如果您手动编辑,/etc/passwd您的更改将在下次运行时丢失pwd_mkdb,并且无论如何都不会被应用程序看到。