编辑 /etc/passwd 以外的 passwd 文件

编辑 /etc/passwd 以外的 passwd 文件

UNIX 用户通常以众所周知的 passwd 文件格式进行管理。相应的文件通常位于/etc/passwd.

由于手动编辑此文件非常不方便(主要是因为加密的密码),因此有一些工具可以编辑它,例如useradd(及其包装器adduser)和passwd,这使得编辑这些文件变得非常容易。

事实上,这种格式非常实用,系统用户并不是唯一以这种格式保存的用户,而且其他服务(例如 dovecot)也提供了从此类文件中读取用户的功能。

您可能会认为这非常方便,因为您可以使用同一套工具来管理整个服务范围的用户。然而,上面提到的工具似乎是硬连线工作的/etc/passwdetc/shadow如果正在使用的话)。

现在,如果除了 之外没有方便的方法来编辑 passwd 文件,我会感到惊讶,/etc/passwd但我找不到任何方法。我怎样才能在 Debian Linux/GNU 系统上做到这一点?

我的具体问题是,我想根据记录的格式为 dovecot 创建一个密码文件这里。最有问题的就是将加密的密码放入其中。

答案1

实际上编辑passwd和shadow条目的官方程序是vipw。

网站密码文件有 htpasswd 文件,其格式简化。如果您正在考虑其他类型的密码文件的示例。

除此之外,我想到的唯一可能执行与您建议类似的操作的替代方案是 chroot / Jails / VServers /containers。或者使用不同的文件路径重新编译所需的实用程序。

归根结底,格式并不那么复杂,您可以为此编写脚本,尽管我确实建议事先在模拟文件中测试它们。搞砸的可能性很大,这些文件对于系统的完整性很重要。

至于你的最后一个问题,安装并使用命令 makepasswd:

makepasswd --crypt-md5 --chars=10

makepasswd 除了生成随机密码外,还可以从明文密码创建加密密码。

相关内容