NZBGet(Python)スクリプトを実行しようとすると、次のコマンドで手動で実行しようとしました。
/mnt/local/ext001/MEDIA/NZBGet/scripts/videosort/VideoSort.py
しかし、これは次の結果になります:
bash: /mnt/local/ext001/MEDIA/NZBGet/scripts/videosort/VideoSort.py: Permission denied
これをSudo
およびSU
として実行してみましたが、権限は777
現在、同じメッセージが表示されます。許可を拒否するにはどうすればよいですか?
編集:以下を使用しているにもかかわらず、パーティションがnoexecでマウントされているようです:
/mnt/local/ext001 ext4 auto,rw,exec,async,user,suid,noatime,nodiratime,relatime 0 2
Execオプションを受け入れない理由はありますか?
ここでは、マウントオプションの順序が重要であることは間違いありません。 manページから:
users Allow every user to mount and unmount the filesystem. This option implies the options noexec, nosuid, and nodev (unless overridden by subsequent options, as in the option line users,exec,dev,suid).
exec
オプションはusers
オプションの前ではなく後にあるため、users
オプションはそれを上書きし、ボリュームをnoexec
に設定します。
pythonが実行可能で、パーティションを再マウントしたくない(またはできない)場合は、次のように実行できます。
python /mnt/local/ext001/MEDIA/NZBGet/scripts/videosort/VideoSort.py
実行権限なしでelf(linuxバイナリ実行可能ファイル)ファイルを実行する場合は、次のことができます。
/lib/ld-linux.so.*/path/to/elf/file
ファイルを実行可能にする必要があります。
chmod +x /mnt/local/ext001/MEDIA/NZBGet/scripts/videosort/VideoSort.py
または
chmod 555 /mnt/local/ext001/MEDIA/NZBGet/scripts/videosort/VideoSort.py
その後、それを実行できます:
./mnt/local/ext001/MEDIA/NZBGet/scripts/videosort/VideoSort.py.
vsCode
などの一部のコンパイラでは、これを克服するために「python3」ではなく「python」と入力する必要があります。
例-:
python manage.py startapp chat