@karpo518

Как в панели vestacp создать cron-задание от имени пользователя www-data?

Дано: web-сервер Ubuntu 18.04 + Vestacp + Nginx + php-fmp

Суть проблемы: Все файлы сайта принадлежат пользователю user1. Они лежат в его директории /home/user1/... php выполняется от пользователя www-data. В php-коде сайта создаются директории. По cron запускается php в режиме cli и записывает файлы в созданные директории. Помимо прямой записи из php запускаются команды Linux через shell_exec, которые тоже пишут в созданные директории. Я создаю cron-задание в панели Vestacp на выполнение php-скрипта в cli-режиме, и оно запускается от имени user1. В результате cron-скрипт и запускаемые им bash-команды не имеют прав на запись в созданные директории. Пользователь user1 добавлен в группу www-data. Но это не помогает. Хоть я и создаю папки вызовом функции mkdir('/path/to/folder',0775, true), но права игнорируются. Папка создаётся с правами 0755. Как vestacp создать cron задание от имени пользователя www-data, я не знаю.

Решения, которые не хотелось бы использовать:

1. Задать пользователем nginx user1. Раньше всегда так делал и не было никаких проблем. Сейчас хочу настроить сервер иначе.
2. Использовать curl или wget для запуска php-скрипта. Этого делать тоже не хотелось бы во избежание проблем с безопасностью и прочих костылей.

Что посоветуете?

P.S. Свою проблему я решил следующим способом:

// было 
$status = mkdir($dir, $rules, $recursive);
// стало
$oldmask = umask(0);
$status = mkdir($dir, $rules, $recursive);
umask($oldmask);


Всё же хотелось бы понять, позволяет ли vestacp запускать задание от имени пользователя web-сервера
  • Вопрос задан
  • 197 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
от 40 000 до 60 000 ₽
Искра Екатеринбург
от 80 000 до 100 000 ₽
Art gorka Санкт-Петербург
от 60 000 ₽
19 апр. 2024, в 23:00
5000 руб./за проект
19 апр. 2024, в 20:43
20000 руб./за проект