是否有命令行命令禁止从python程序访问系统中的所有文件和文件夹?如果程序试图访问任何文件,它应该给出错误。例如,在命令行中:
$ python filename.py <some_command>
或类似的东西。
它不应该允许程序中的open('filename.txt')
等函数。
编辑:sudo允许运行具有管理员权限的程序。我们可以创建像sudo这样的命令来限制对其他文件和文件夹的访问吗?
谢谢。
答案 0 :(得分:1)
从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语句中包含每个open,read等。优点是您可以准确指定要允许的内容。然后输出看起来像:
$ python 36477901.py -bIO
Traceback (most recent call last):
File "36477901.py", line 19, in <module>
raise blockIOError("Error -- input/output not allowed")
__main__.blockIOError: Error -- input/output not allowed