![Python의 subprocess.run()이 권한 600으로 파일을 실행할 수 있는 이유는 무엇입니까? [폐쇄]](https://linux55.com/image/215414/Python%EC%9D%98%20subprocess.run()%EC%9D%B4%20%EA%B6%8C%ED%95%9C%20600%EC%9C%BC%EB%A1%9C%20%ED%8C%8C%EC%9D%BC%EC%9D%84%20%EC%8B%A4%ED%96%89%ED%95%A0%20%EC%88%98%20%EC%9E%88%EB%8A%94%20%EC%9D%B4%EC%9C%A0%EB%8A%94%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F%20%5B%ED%8F%90%EC%87%84%5D.png)
a.out
"hello world"를 인쇄하고 권한 600을 갖는 간단한 C 프로그램입니다.
-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를 사용합니다.