我正在通过 python 模块创建目录。某些类型的目录需要设置某些限制性访问权限。该模块将通过脚本使用;并且脚本可以由用户或服务器(以 root 身份)运行。
我想避免创建目录、尝试更改其权限并捕获 OSError 异常的情况,因为我没有足够的权限。与其在混乱发生后尝试清理混乱,不如让我的应用程序更健壮地从一开始就防止出现问题。我希望有一些方法可以在实际尝试使用之前确定运行脚本的用户是否具有组权限。
对于“普通”用户,我可以这样做:
导入操作系统 导入grp mygroups = [grp.getgrgid(x).gr_name for x in os.getgroups()]
然后,如果 mygroups 不包含我需要它包含的组,我可以优雅地退出。
但这不适用于 root 用户,他确实具有权限但可能不是相关组的成员。我不清楚除了root之外是否有任何异常,所以我犹豫是否简单地编写一个仅涵盖root用户id的异常。
python 2.x 中是否有一种可靠的方法来检查当前用户是否具有某些组权限(以更改目录的访问权限和所有权),而无需实际尝试使用这些权限(抛出 OSError)?