gpt4 book ai didi

c - 在 Unix 上的 C 中,进程如何在不打开文件的情况下知道它对文件具有哪些权限?

转载 作者:太空宇宙 更新时间:2023-11-04 00:19:49 39 4
gpt4 key购买 nike

我可以使用 stat() 来确定所有者、组或其他人拥有哪些权限,我可以使用 geteuid() 和 getpwuid() 来获取进程的用户名。我不太确定如何在没有系统调用的情况下获取用户所属的组。

即使知道如何获取组,集成所有这些信息似乎也需要大量工作。有没有更简单的方法?

最佳答案

access() POSIX function无需打开即可查看权限。但是,它需要一个系统调用。

The access() function shall check the file named by the pathname pointed to by the path argument for accessibility according to the bit pattern contained in amode, using the real user ID in place of the effective user ID and the real group ID in place of the effective group ID.

例如:

access("/etc/passwd",W_OK)

检查您是否具有对密码文件的写入权限。使用 R_OK,检查读取权限。

eaccess() function (euidaccess 是同义词)使用有效的用户和组 ID。虽然 eaccess 似乎得到了广泛支持,但据我所知,它并不是 POSIX 标准的一部分。

关于c - 在 Unix 上的 C 中,进程如何在不打开文件的情况下知道它对文件具有哪些权限?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1138508/

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