首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >限制Python文件的读写权限

限制Python文件的读写权限
EN

Stack Overflow用户
提问于 2021-09-27 14:08:49
回答 2查看 62关注 0票数 3

我正在尝试限制对Python文件的写和读访问。假设我有以下代码:

代码语言:javascript
复制
with open('test.py', 'w+') as file:
    file.write('''
open("document.txt", "w+").write("Hello, World!")
open("document.txt", "r+").read()
''')

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

EN

回答 2

Stack Overflow用户

发布于 2021-09-27 14:20:24

如果我没看错的话,这不是python的问题,而是环境问题。我把这个问题理解为“如何防止python代码执行任意读写?”。可能会有一个简单的解决方案(修改生成的test.py以抛出错误),但想必这不是您想要的。

让python命中PermissionError的最简单方法是...就是确保它没有权限。因此,以权限极其有限的用户身份运行您的代码-特别是在任何地方都没有写权限-或者可能根本没有默认权限,并使用诸如facls之类的东西来授予从更有权限的前哨进程显式读取特定文件的权限。(这假设您运行的是Linux,但在不同的OS中可能还有其他方法来实现这一点)。

或者,研究各种沙箱技术,为您提供一个python解释器,将相关模块替换为抛出错误的模块,或者是一个不可能进行外部修改的环境。

如果你更清楚为什么这很重要,为什么你要用另一个python脚本编写python脚本(这只是一个恶意行为的例子吗?),这将会有所帮助。

票数 1
EN

Stack Overflow用户

发布于 2021-09-27 14:29:31

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

Check the previous thread about changing permissions

代码语言:javascript
复制
os.chmod(path, <permission value>)

其中000表示禁止root用户以外的任何人在linux上进行编辑。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69348117

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档