UNIX 用户通常以众所周知的 passwd 文件格式进行管理。相应的文件通常位于/etc/passwd
.
由于手动编辑此文件非常不方便(主要是因为加密的密码),因此有一些工具可以编辑它,例如useradd
(及其包装器adduser
)和passwd
,这使得编辑这些文件变得非常容易。
事实上,这种格式非常实用,系统用户并不是唯一以这种格式保存的用户,而且其他服务(例如 dovecot)也提供了从此类文件中读取用户的功能。
您可能会认为这非常方便,因为您可以使用同一套工具来管理整个服务范围的用户。然而,上面提到的工具似乎是硬连线工作的/etc/passwd
(etc/shadow
如果正在使用的话)。
现在,如果除了 之外没有方便的方法来编辑 passwd 文件,我会感到惊讶,/etc/passwd
但我找不到任何方法。我怎样才能在 Debian Linux/GNU 系统上做到这一点?
我的具体问题是,我想根据记录的格式为 dovecot 创建一个密码文件这里。最有问题的就是将加密的密码放入其中。
答案1
实际上编辑passwd和shadow条目的官方程序是vipw。
网站密码文件有 htpasswd 文件,其格式简化。如果您正在考虑其他类型的密码文件的示例。
除此之外,我想到的唯一可能执行与您建议类似的操作的替代方案是 chroot / Jails / VServers /containers。或者使用不同的文件路径重新编译所需的实用程序。
归根结底,格式并不那么复杂,您可以为此编写脚本,尽管我确实建议事先在模拟文件中测试它们。搞砸的可能性很大,这些文件对于系统的完整性很重要。
至于你的最后一个问题,安装并使用命令 makepasswd:
makepasswd --crypt-md5 --chars=10
makepasswd 除了生成随机密码外,还可以从明文密码创建加密密码。