
Я работаю над скриптом Python, я создал файл в папке /var/log/ с правами доступа 664.
Скрипт Python не может записывать логи в созданный файл. Не знаю почему... поскольку владельцем файла является Ubuntu (пользователь aws по умолчанию).
Я очень осторожно дал разрешение на чтение и запись для файла
Запланированный crontab не смог запустить приложение из-за проблемы с отказом в доступе. Есть идеи?
i) команда, которую вы использовали для настройки crontab - crontab -e
ii) строка crontab, которая запускает скрипт python - */30 * * * * python3 /home/ubuntu/message_initiator.py
iii) точное сообщение об ошибке -Permission denied: '/var/log/ice-message-initiator.log'
решение1
Если вы бежите
ll -d /var/log
Затем вы увидите, что он принадлежит root
(возможно, syslog
как группа) и имеет разрешения 755 или 775, что означает, что в то время как другие могут читать и перемещаться по каталогу, только root
(и, возможно syslog
, ) может изменять его. ice-message-initiator.log
находится в /var/log
и в то время как ubuntu
является его владельцем, ubuntu
не имеет разрешений на изменение, /var/log
что означает, что он не может изменять его содержимое, будь то файлы или каталоги. Ошибка возникает не потому, что ubuntu
пользователь не может прочитать файл, а потому, что он не может записать в файл из-за отсутствия разрешений на изменение его родительского каталога, /var/log
.
Чтобы задание cron работало, вам нужно либо запустить его как , root
либо заставить его записать файл журнала в подкаталог, например , /var/log/ice
и предоставить ubuntu
ему права на изменение.