a.out
是一个简单的 C 程序,打印“hello world”并拥有权限 600:
-rw------- 1 jim jim 16K Jan 9 12:23 a.out
因此,可以理解的是,当我尝试运行它时./a.out
,我得到了bash: ./a.out: Permission denied
。
然而,当我尝试从 Python 脚本运行相同的文件时,a.out
该文件会在不请求任何权限的情况下执行。我的Python脚本是:
#!/usr/bin/env python3
from subprocess import run
run("a.out")
#run("a.out", shell=True) #this works just as well
为什么会这样呢?这是一个安全风险吗?我该如何缓解它?
PS 我使用 Ubuntu Desktop 22.04 LTS。