我有一个用Python编写的安装脚本(在Linux中),以root身份运行并需要检查某些文件是否可被非root用户读取。
因此,我不能使用os.path.exists()或open(filename)(并捕获任何异常)。
目前,我考虑检查每个文件的权限位,但唯一的问题是还必须检查路径上到达文件名的权限位(目录需要设置r+x位),如果我有成千上万个文件,则可能会非常慢。
我的解决方案是最好的吗?还是有更好的选择?
编辑:不幸的是,经过检查文件后,我将需要以root身份运行脚本,因此放弃root权限不是一个选项。
因此,我不能使用os.path.exists()或open(filename)(并捕获任何异常)。
目前,我考虑检查每个文件的权限位,但唯一的问题是还必须检查路径上到达文件名的权限位(目录需要设置r+x位),如果我有成千上万个文件,则可能会非常慢。
我的解决方案是最好的吗?还是有更好的选择?
编辑:不幸的是,经过检查文件后,我将需要以root身份运行脚本,因此放弃root权限不是一个选项。
os.seteuid(0)
将有效用户重置为 root。 - unutbuos.setuid(0)
会引发OSError
异常)。 - unutbu