разрешению python отказано в записи вывода в файл

Я хочу выполнить файл Python в /var/www/html:

sudo python myFile.py

, который отлично работает.

Теперь я хочу записать вывод в log.txt.

Итак, я набираю:

sudo python myFile.py >> log.txt

Однако я получаю следующую ошибку:

-bash: log.txt: В доступе отказано

Хотя я изменил права доступа к log.txt:

sudo chmod u+x log.txt

И ls -l log.txt возвращает:

-rwxr - r-- 1 www-data www- data 0 Feb 3 16:04 log.txt

Как это можно исправить?

0
задан 3 February 2017 в 21:27

2 ответа

Две опции я могу думать:

  1. sudo bash -c "python myFile.py >> log.txt", или

  2. sudo chmod u+x myFile.py, затем sudo ./myFile.py >> log.txt

0
ответ дан 4 February 2017 в 07:27
  • 1
    Обновите ответ согласно той ссылке, которой поделились! – George Udosen 13 December 2018 в 22:24

Проблема здесь sudo python myFile.py >> log.txt состоит в том, что Вы работаете sudo python myFile.py как корень, но Ваша оболочка все еще работает как Ваш обычный пользователь, что означает >>, перенаправление не будет работать, если у Вас не будет разрешения записать в log.txt

Как George, правильно отмеченный, необходимо сделать sudo bash -c "python myFile.py >> log.txt". С другой стороны, если Ваш myFile.py не требует полномочий пользователя root, можно сделать python myFile.py | sudo tee log.txt

0
ответ дан 4 February 2017 в 07:27
  • 1
    Это - действительно ответ только для ссылки и если ссылка мертва, ответ становится недопустимым. Добавьте соответствующую часть в самом ответе. – Sourav Ghosh 13 December 2018 в 22:18

Другие вопросы по тегам:

Похожие вопросы: