gpt4 book ai didi

c - 如何检查用户是否具有执行权限?

转载 作者:太空狗 更新时间:2023-10-29 11:20:01 26 4
gpt4 key购买 nike

我想知道如何检查“用户”(除了谁在运行这个程序)对文件有执行权限? [C 接口(interface)]

我看过“访问”,它提供了有关调用者的信息。

我正在寻找类似的东西:-

"<cmd> <user_name> <file_name>"

这里我试图得到 if <user_name>具有 <file_name> 的执行权限?

我正在寻找 C api?

可能的解决方案:- 我正在使用以下算法来获取此信息

boolean_t
is_user_has_execute_permissions(char *run_as_user)
{
/* Check world execute permission */
if ((cmd_stat.st_mode & S_IXOTH) == S_IXOTH) {
return (TRUE);
}

/* group id for run_as_user */
getpwnam_r(run_as_user, &pw, buf, passwd_len);

/* Check group execute permission */
if ((cmd_stat.st_mode & S_IXGRP) == S_IXGRP) {
if (pw->pw_gid == cmd_stat.st_gid)
return (TRUE);
}

return (FALSE);
}

有人看到这个有什么错误吗?

最佳答案

您需要调用 stat(2),它返回文件所有者、所有者组和其他人的权限位。比您必须找出您感兴趣的用户的 ID 及其组的 ID:请参阅 getpwent(3) 和 getgrouplist(3)。第一个匹配的将授予结果权限。

关于c - 如何检查用户是否具有执行权限?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11375738/

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