从lin命令禁用对python程序的文件访问

2024-04-26 00:27:41 发布

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

有没有命令行命令可以禁止从python程序访问系统中的所有文件和文件夹?如果程序试图访问任何文件,它应该给出一个错误。例如,在命令行中:

$ python filename.py <some_command>

或者类似的东西。在

它不应该允许在程序中使用open('filename.txt')之类的函数。在

编辑:sudo允许以管理员权限运行程序。我们可以创建sudo这样的命令来限制对其他文件和文件夹的访问吗?在

谢谢。在


Tags: 文件函数命令行py命令程序txt文件夹
1条回答
网友
1楼 · 发布于 2024-04-26 00:27:41

从python的命令行选项列表中似乎没有这个选项(防止IO的沙盒似乎不是too effective)。例如,您可以创建自己的命令参数来获得此功能

import argparse

class blockIOError(Exception):
    pass

parser = argparse.ArgumentParser(description='Block IO operations')
parser.add_argument('-bIO','-blockIO', 
                   action='store_true',
                   help='Flag to prevent input/output (default: False)')

args = parser.parse_args()

blockIO = args.bIO

if not blockIO:
    with open('filename.txt') as f:
        print(f.read())
else:
    raise blockIOError("Error   input/output not allowed")

缺点是你需要在if语句中包装每个打开的、读取的等等。这样做的好处是,您可以确切地指定您想要允许的内容。然后输出如下:

^{pr2}$

相关问题 更多 >

    热门问题