Pythonのsubprocess.run()が権限600でファイルを実行できるのはなぜですか? [閉鎖]

Pythonのsubprocess.run()が権限600でファイルを実行できるのはなぜですか? [閉鎖]

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を使用しています。

ベストアンサー1

おすすめ記事