Апачский процесс, скорее всего, работает как другой пользователь и мог бы брать другой системный путь к Вашему собственному пользователю.
Возможно, принятие Вашего апачского пользователя является www-данными, выполнение следующей команды подтвердит это:
sudo su www-data python -V
Хорошо, это оказалось проблемой, связанной с SELinux. Для записи: /var/log/audit/audit.log
можно проверить, чтобы получить события, связанные с SELinux, auditd
должен быть запущен, чтобы включить этот журнал. Есть два возможных решения: отключить SELinux (не рекомендуется) или создать собственную политику SELinux, которая разрешает доступ к этому файлу. Возможно, файл просто не имеет надлежащего контекста безопасности, связанного с ним, тогда настраиваемая политика не нужна.
Вопросник добавляет: Используя ls -Z
, теперь я вижу, что файл имеет контекст user_u: object_r: tmp_t
. Я предполагаю, что шеф-повар копирует файл с сервера шеф-повара и получает контекст tmp_t
. Тем не мение, файлу необходим контекст по умолчанию для / etc
, который равен etc_t
. У Chef есть кулинарная книга selinux, в которой, похоже, есть соответствующие функции для управления этим.