Cron, wa-cache и права доступа

Всем добрый день!

Помогите пожалуйста с проблемой с правами доступа. Я уже ничего не могу придумать (

Скрипты магазина пишут файлы в папку wa-cache от юзера www-data. В ispmanager при установке магазина был создан пользователь www-root и, соответственно, в его папку был установлен магазин. Крон можно запустить как от его имени, так и от имени root. 

Проблема в следующем - есть ежечасные задания крон, которые выполняются от www-root. Соответственно, при их выполнении в папку wa-cache идет запись файлов от него же. При этом магазин ничего уже в эту же папку записать не может, поэтому какие-то товары становятся недоступны, какие-то уведомления не формируются и не отправляются и т.д. 

Я добавила еще одну задачу cron, которая каждый час в 1ую минуту меняет владельца папки wa-cache на пользователя www-data. Часть проблем (с открытием каких-то страниц) ушла, но вот уведомления клиентам, которые формируются как раз после запуска cron, так отправляться и не хотят (т.к. они формируются в первую минуту, до срабатывания задания по изменении прав папки). Поставить крон на первые секунды часа нет возможности, т.к. в настройках можно указать только минуты.

Можно ли как-нибудь еще победить эти права?

15 ответов

  • 1

    Создайте (скопируйте) задания cron от пользователя www-data и очистите все задачи связанные с www-root.

    • +1

      Подскажите, а как это сделать? В панели ispmanager могу только войти как root и создать задания от него, либо войти от www-root и аналогично создать от него.

      • +1

        root может вообще редактировать любые crontab, хоть свои, хоть чужие. В консоли во всяком случае, не знаю, как в ispmanager

        • +1

          Так, у меня наконец появилась надежда ) Если я удалю все cron-ы в панели и создам их минуя ее, через консоль, то смогу указать пользователя, от которого они должны выполняться?

          • +2

            Да, отредактировать команды cron для пользователя www-data можно в консоли из под root командой

            crontab -e -u www-data

            • +1

              Отключила все кроны в панели, добавила все те же задания для www-data через консоль и похоже, что все работает! 

              По крайней мере по одному заказу вижу, что задание сработало и кеш очистился без танцев с бубном. Завтра проверю по остальным заказам, но на данный момент, очень Вам благодарна! )

  • 2

    Попробуйте зайти в Учётные записи -> Пользователи. Далее выбрать пользователя www-data и выше нажать на пиктограмму "Войти". Должны будете зайти под пользователем www-data. 

    Далее слева зайдите в Главное -> Планировщик и там настройте крон. 

    Естественно, в www-root задания крон удалите. Только не все, а те, которые вызывают проблемы с движком из-за пользователя.

    Отпишитесь, если это решит проблему.

    • +1

      Спасибо, только у меня фактически нет в панели пользователя www-data, в том-то и дело. Поэтому войти в него не могу. А для пользователя www-root так и настраивала.

      Если создавать нового пользователя с таким именем, то панель выдает ошибку, что такой пользователь уже существует, хотя в списке пользователей его нет, только www-root.

  • 1
    Руслан 24 октября 2019 16:33 #

    Спасибо ребята! Нам тоже помогло )

Добавить ответ

Чтобы добавить комментарий, зарегистрируйтесь или войдите