我想知道如何检查“用户”(运行该程序的人除外)是否对文件具有执行权限?[C接口]
我查看了“访问”,它提供了有关呼叫者的信息。
我正在寻找类似的东西:-
"<cmd> <user_name> <file_name>"
在这里,我试图获取是否<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);
}
有没有人看到这个有任何错误?