Я создал файл 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
здесь исполняемый файл!
Для правильной справочной информации; обратите внимание, что вы можете запускать сценарии двумя способами:
Для вызова интерпретатора с файлом в качестве ввода / аргумента не требуются права доступа, кроме прав чтения, например:
python myscript.py
Запустить сценарий по его шебангу . Требуется ли установить исполняемый бит.
./myscript.py
Шебанг (первая строка в файле) выглядит примерно как
#!/usr/bin/env python
«python нужно только разрешение на чтение», чтобы прочитать содержимое вашего файла и обработать код.
ваш пользователь может выполнять Python. тогда python может читать файл (из-за 400). Если вы хотите выполнить файл напрямую, например, «./testo.py», вам нужны права на выполнение вашего файла.