gpt4 book ai didi

c++ - 保护/etc/passwd 和/etc/shadow 不被并发访问

转载 作者:IT王子 更新时间:2023-10-29 00:32:35 29 4
gpt4 key购买 nike

如何保护/etc/passwd 和/etc/shadow 不被并发访问?我在 pwd.h 中没有看到任何锁定机制。我看到 pwd_mkdb 的手册提到获取锁,但它只是锁定文件以进行独占访问吗?

如果我要编写一个实用程序来直接或通过 get/set/endpwent 函数系列修改这些文件,是否有锁定这些文件的约定?

最佳答案

我想现在大多数应用程序都使用 PAM,不是吗? http://www.kernel.org/pub/linux/libs/pam/Linux-PAM-html/Linux-PAM_ADG.html .也就是说,您可以查看“pam_unix.so”的源代码以了解他们是如何做到的。我看了pam_unix_passwd.c然后跟着这个:

/* update the password database(s) -- race conditions..? */

retval = unix_update_db(pamh, ctrl, user, pass_old, pass_new);

收件人here它有很多以“pwdb”为前缀的函数。谷歌搜索再次显示this我认为这是 passwd 的来源.

因此,我认为编辑这些文件是由 libpwdb 处理的。当然,我看到包括:

#include <pwdb/pwdb_public.h>
#include <pwdb/pwdb_shadow.h>

但是 找到 . -name "*pwdb*"2>/dev/null 目前在我的系统上没有任何发现。

关于c++ - 保护/etc/passwd 和/etc/shadow 不被并发访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2338794/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com