出于好奇。我一直在思考在 *nix 和基于 Windows NT 的系统中常见的不同访问模型。
是否有任何命令或 api 来检查文件对于与登录用户不同的用户是否可读、可执行等。例如: http://www.php.net/manual/en/function.is-executable.php 或者 Checking File Permissions in Linux with Python 但对于执行用户有权查看的任何用户。
有什么理由找不到这样的函数吗?
最佳答案
在 *nix 中,用户对文件的权限是否可以由 2 个属性确定:文件的世界和组权限。如果为 r、w 或 x 设置了世界权限,那么当然任何用户都将拥有该文件的这些权限。类似地,如果用户是指定为文件组所有者的组的成员,并且这些权限是在组级别设置的,那么用户将再次对文件拥有该权限。当然你需要确定用户对文件绝对路径中所有目录的适当权限。而且,当然,无论权限或所有权如何,root 都可以访问任何文件。
因此,对于任何特定文件,通过查看文件权限和用户的组成员身份,可以相对容易地确定特定用户是否对该文件具有权限。
关于php - 检查用户是否对 *nix 中的文件有权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4010618/