如何检查真实/有效的UID是否有权更改文件或目录

如何检查真实/有效的UID是否有权更改文件或目录

我可以获得当前用户真实有效的UID,那么,给定一些文件或目录,如何使用这些UID来检查rwx该特定用户访问/修改该文件或目录的权限?

答案1

感谢 roaima 的评论,我得出以下结论:

//snip...
#include <fcntl.h>
#include <unistd.h>
...
    bool bcanR, bcanW, bcanX;
    //'fullpath' is to file or directory..
    bcanR=(faccessat(0, fullpath, R_OK, AT_EACCESS)==0);
    bcanW=(faccessat(0, fullpath, W_OK, AT_EACCESS)==0);
    bcanX=(faccessat(0, fullpath, X_OK, AT_EACCESS)==0);
...
//snip

这满足了我的需求,因为它使用有效的 UID 来检查权限。

还基于这个答案需要记住改变权限(使用chmod)只能由所有者或 root 执行。

相关内容