Cron, wa-cache и права доступа
Всем добрый день!
Помогите пожалуйста с проблемой с правами доступа. Я уже ничего не могу придумать (
Скрипты магазина пишут файлы в папку wa-cache от юзера www-data. В ispmanager при установке магазина был создан пользователь www-root и, соответственно, в его папку был установлен магазин. Крон можно запустить как от его имени, так и от имени root.
Проблема в следующем - есть ежечасные задания крон, которые выполняются от www-root. Соответственно, при их выполнении в папку wa-cache идет запись файлов от него же. При этом магазин ничего уже в эту же папку записать не может, поэтому какие-то товары становятся недоступны, какие-то уведомления не формируются и не отправляются и т.д.
Я добавила еще одну задачу cron, которая каждый час в 1ую минуту меняет владельца папки wa-cache на пользователя www-data. Часть проблем (с открытием каких-то страниц) ушла, но вот уведомления клиентам, которые формируются как раз после запуска cron, так отправляться и не хотят (т.к. они формируются в первую минуту, до срабатывания задания по изменении прав папки). Поставить крон на первые секунды часа нет возможности, т.к. в настройках можно указать только минуты.
Можно ли как-нибудь еще победить эти права?
15 ответов
Создайте (скопируйте) задания cron от пользователя www-data и очистите все задачи связанные с www-root.
Подскажите, а как это сделать? В панели ispmanager могу только войти как root и создать задания от него, либо войти от www-root и аналогично создать от него.
root может вообще редактировать любые crontab, хоть свои, хоть чужие. В консоли во всяком случае, не знаю, как в ispmanager
Так, у меня наконец появилась надежда ) Если я удалю все cron-ы в панели и создам их минуя ее, через консоль, то смогу указать пользователя, от которого они должны выполняться?
Да, отредактировать команды cron для пользователя www-data можно в консоли из под root командой
Отключила все кроны в панели, добавила все те же задания для www-data через консоль и похоже, что все работает!
По крайней мере по одному заказу вижу, что задание сработало и кеш очистился без танцев с бубном. Завтра проверю по остальным заказам, но на данный момент, очень Вам благодарна! )
Попробуйте зайти в Учётные записи -> Пользователи. Далее выбрать пользователя www-data и выше нажать на пиктограмму "Войти". Должны будете зайти под пользователем www-data.
Далее слева зайдите в Главное -> Планировщик и там настройте крон.
Естественно, в www-root задания крон удалите. Только не все, а те, которые вызывают проблемы с движком из-за пользователя.
Отпишитесь, если это решит проблему.
Спасибо, только у меня фактически нет в панели пользователя www-data, в том-то и дело. Поэтому войти в него не могу. А для пользователя www-root так и настраивала.
Если создавать нового пользователя с таким именем, то панель выдает ошибку, что такой пользователь уже существует, хотя в списке пользователей его нет, только www-root.
И в разделе Администраторы нет?
https://prnt.sc/lqooti
Нет, там только root, там уже тоже пыталась создать www-data и тоже не дал из-за того, что он якобы существует..
Может Вам наоборот нужно сменить пользователя и группу у всех файлов движка на www-root?
Делается при помощи команды:
Только необходимо сначала зайти в директорию, где расположен каталог сайта.
Так если я сменю пользователя, то webasyst все равно будет записывать данные под www-data, только у него это теперь не получится..
Решил аналогичную задачу способом из первого ответа.
Создайте (скопируйте) задания cron от пользователя www-data и очистите все задачи связанные с www-root.
Только почему у Вас пользователь www-data. При установке isp 5 создались root и www-root
Соответсвенно все фаилы от www-root
Так в этом вся проблема - все файлы (система + те, что я загружаю по ftp для сайта) от www-root, а все, что так или иначе связано с webasyst (все папки wa- и все файлы в них) - www-data.
Спасибо ребята! Нам тоже помогло )