Запустите crontab как www-data, чтобы создать файл с www-data в качестве владельца
Я хочу запускать команду crontab каждые 5 минут, которая выполняет скрипт py. Сценарий py inturn создает файл журнала с ротацией в полночь в /var/www/logs/. Директория logs имеет разрешение 777.
У файла журнала есть ротация в полночь, и когда создается новый файл, он создается как владелец root. Как гарантировать, что право владения остается как www-данные, так как некоторые другие сценарии также записывают в тот же файл, а наличие владельца root вызывает проблемы с разрешениями для других сценариев.
Один из способов - ввести команду,
crontab -u www-data -e
Это работает нормально, но я хочу сохранить все мои команды cron под пользователем root.
Я попытался сделать то же самое с sudo, но он создает с правами root как владелец, что не то, что я хочу.
2 ответа
Наконец-то нашел хорошее решение этой проблемы.
Теперь я использую FACL в Linux, чтобы установить разрешения по умолчанию для всех файлов, созданных в каталоге logs. Таким образом, я могу запустить все свои cron в root. вот больше на facl в Linux
Также, как упоминалось в вопросе, запуск crons под www-данными вызвал несколько других проблем, связанных с журналированием.
Я использовал команду ниже, чтобы установить facl.
setfacl -m default:u:www-data:rw logs