ここで何かを誤解していると思います。私は簡単にpythonテストファイルを作成し、パーミッションがpythonファイルの使用にどのように影響するかを確認しました。 64ビットubuntu 12.04 pythonは既存のpython file
内容を含むtest.pyファイルを作成しました
print 'I am working'
ls -al test.py
-rw-r--r-- 1 joey joey 25 Dec 24 11:11 test.py
python test.py
I am working
chmod +x test.py
をしなかったのにこのファイルを実行していますか?chmod 400 test.py
ls -al test.py
-r-------- 1 joey joey 25 Dec 24 11:11 test.py
python test.py
I am working
だからどうやらpythonはファイルを実行するために読み取り許可だけが必要ですか?
chmod 200 test.py
ls -al test.py
--w------- 1 joey joey 25 Dec 24 11:11 test.py
python test.py
python: can't open file 'testo.py': [Errno 13] Permission denied
書き込み権限は不十分です(また、記録については、実行可能権限のみが不十分です)。
はい、Pythonはファイルの内容を読み取るだけで済みます。 Pythonはインタープリター言語(PHP、Rubyなど)であり、実行するのではなく、そのファイルの内容を処理するだけであることを思い出してください。 python
は実行可能ファイルです!
適切な背景情報について。次の2つの方法でスクリプトを実行できることに注意してください。
ファイルを入力/引数としてインタープリターを呼び出すには、読み取り権限以外は必要ありません。例:
python myscript.py
Shebangdoesでスクリプトを実行するには、実行可能ビットの設定が必要です。
./myscript.py
Shebang(ファイルの最初の行)は次のようになります
#!/usr/bin/env python
ファイルの内容を読み取り、コードを処理するには、「pythonに必要なのは読み取り権限のみです」。
ユーザーはpythonを実行できます。 then pythonはファイルを読み取ることができます(400のため)。 "./testo.py"のようにファイルを直接実行する場合は、ファイルの実行権限が必要です。