linux - 我调用什么 API 来在 Linux 上设置用户密码?

标签 linux passwords passwd

我知道 passwd(1)crypt(3)。我正在寻找的是要调用的 C API,它将在 passwd/shadow 文件中设置用户密码,而无需以编程方式遍历文件并覆盖相关用户的条目。应用程序以根用户身份运行。

是否存在这样的 API?

编辑:我猜我应该指定,密码在不同系统之间同步,所以我们不能简单地调用 system("passwd") 并允许用户在 passwd 提示时输入他们想要的任何密码。我们需要知道密码,以便我们可以使用相同的密码以编程方式更新其他系统。

最佳答案

正如 8jean 上面评论的那样,看起来/usr/sbin/chpasswd 可能是最简单的方法。否则我会接受 noha 的评论,即使用 fgetpwent() 或 fgetspent() 等函数来处理影子文件——遍历用户列表并修改我需要更改的记录。谢谢大家!

关于linux - 我调用什么 API 来在 Linux 上设置用户密码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/799325/

相关文章:

php - PHP 中的密码哈希 : Am I Doing This Right?

security - 我的 friend 使用 SHA512 算法对密码进行哈希处理,不加盐。我如何说服他需要加盐?

python - 如何使用Python获取自动运行程序

linux - 如何在linux中用最少的单词输出一个文件

node.js - 无法创建/dev/stdout : No such device or address

linux - 如何将动画 3D 场景渲染为 h.264 流?

正则表达式验证具有字符限制的密码

ubuntu - 在 Linux Snappy Ubuntu Core 上更改密码

linux - 使用管道将输入传递给 passwd

ubuntu - 在 Ubuntu 18.04 上启用 root 用户