限制Python文件读写权限。

3

我想限制对Python文件的写入和读取访问。假设我有以下代码:

with open('test.py', 'w+') as file:
    file.write('''
open("document.txt", "w+").write("Hello, World!")
open("document.txt", "r+").read()
''')

通过执行此代码,将创建一个新文件,该文件中有两行代码用于编写和读取另一个文件。 我希望通过执行此代码创建的文件(test.py)在运行时遇到PermissionError并且无法创建新文件或读取它; 此外,该文件仅可执行,正常命令可以在其中工作,但不能访问其他文件。

2个回答

1
如果我理解正确,这不是一个关于python的问题,而是一个关于环境的问题。我将问题理解为“如何防止python代码执行任意读写操作?”有一个简单的解决方案(修改生成的test.py文件以使其抛出错误),但可能并不是你想要的。
让python遇到PermissionError最简单的方法是确保它没有权限。因此,请以具有极限权限(特别是无法在任何地方进行写入)的用户身份运行代码,或者可能根本没有默认权限,并使用类似于facls的东西从更高级别的哨兵进程明确授予读取特定文件的权限。(这假设您正在运行Linux,但在不同的操作系统中可能有其他方法)。
或者,研究各种沙盒技术,以提供一个python解释器,其中相关模块被替换为抛出错误的模块,或者创建一个外部修改不可能的环境。

如果你能更清楚地解释为什么这很重要,以及为什么你要使用另一个Python脚本编写Python脚本(这只是恶意行为的例子吗?),那将会很有帮助。


0

你可以在尝试访问的文件系统上技术上更改文件本身的权限。

查看有关更改权限的先前线程

os.chmod(path, <permission value>)

其中000是禁止除root以外的任何人在Linux上进行编辑。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接