使用Python检查Linux目录权限

2024-05-20 22:55:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个有趣的场景,我想得到一些关于实现的专家建议。我有一个运行在Linux上的Python应用程序,它需要根据组权限返回一个目录。在

例如,Linux文件系统如下所示:

/Directory/Apple
/Directory/Beta
/Directory/Carotene

在/etc/group中有一组代表苹果、β和胡萝卜素。这些组权限分配给每个目录(Apple目录只有Apple组的成员才能查看/执行)。一个登录的用户只能是一个组(Apple/Beta/carbonote)的成员,我需要能够在不引发异常的情况下确定用户可以访问哪个目录。我不能在Python内部使用组成员身份调用,因为上面的目录结构是一个远程安装的文件系统。在

因此,为了简化这一点:如果用户是Beta组的成员,我需要统计/Directory中的每个子目录,然后只返回一个路径(在本例中是/Directory/Beta,因为用户是组目录的成员)。在

我在想操作系统统计这是一个很好的方法,但是如果可能的话,我希望看到一些其他的实现。在

提前谢谢!在


Tags: 用户苹果目录应用程序权限applelinux场景
2条回答

要确定特定目录是否可访问,请使用os.access。在

os.access('/Directory/Apple', os.R_OK)

要检查/Directory的所有立即子目录,请尝试以下循环:

^{pr2}$

请求原谅比请求允许更容易。检查目录是否可访问:

import os
def accessible(dir):
    try:
        os.listdir(dir)
    except OSError:
        return False
    return True
print(accessible('/root'))

要检查是否允许目录的所有子目录,请在for循环中应用此函数。在

相关问题 更多 >