Проблема с файловым доступом апаческого юзера

E
На сайте с 25.01.2007
Offline
72
922

Всем привет.

Стоит Ubuntu server 10.04.2 LST, Apache/2.2.14, nginx/0.7.65. Фронтом нжинкс (статика), беком апач (динамика).

Установлен drupal 6.20, настроено расписание бекапа базы(модуль), прописан cron.hourly на выполнение друпаловского крона.

Прописаны доступы на выполнение файла в cron.hourly (root 0755)

друпаловский cron.php (root/user 0755)

Прописан доступ к папке бекапа (www-data/root/user 0777)

При срабатывании крона в логах пишет

Oct 21 11:21:12 user drupal: http://*******/drupal|1319181672|backup_migrate||http://*******/cron.php?cron.php||0||Could not run backup because the file could not be saved to the destination.

Но если запустить друпаловский крон в ручную, он легко и не принужденно запускает скрипт и сохраняет бекап в туже самую папку. Т.е. при ручном запуске апаческий юзер имеет доступ и права на запись. А когда cron заставляет www-data выполнить скрипт, тот пишет что нет доступа.

Крон срабатывает, проверяет наличие обновлений.

В чем может быть проблема? заранее спасибо)

Andreyka
На сайте с 19.02.2005
Offline
822
#1

А разве можно от www-data пускать cron?

Я думаю что для него закрыт, ибо это дыра.

Не стоит плодить сущности без необходимости
E
На сайте с 25.01.2007
Offline
72
#2

прошелся по логам, запускает крон он все таки от рута

Oct 28 12:21:01 superubuntuserver2 CRON[4921]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)

но, друпаловский крон должен запускаться от апача ведь?

cron -> cron.hourly file (root) -> drupal/cron.php (???)

R
На сайте с 10.03.2011
Offline
56
#3

Возможно, имеет смысл сделать владельцем папки backup

Прописан доступ к папке бекапа (www-data/root/user 0777)

пользователя drupal

Oct 21 11:21:12 user drupal: http://******

А так же:

1. Нужно посмотреть в каком режиме работает апач (php, suphp, cgi)

2. Какие папки прописаны в base_dir и включена ли эта директива

3. Кто является владельцем всех перечисленных папок?

4. Почему крон запускается от имени рута, а не от имени пользователя, которому принадлежит каталог с друпалом?

Решения два: резервировать шелл-скриптом от рута на уровне системы, а не веб-сервера или запускать cron.php от имени того пользователя, которому принадлежит папка с друпалом. Этому пользователю должны быть предоставлены права на запись в папку для хранения бэкапа.

cityads.ru обманывает вэбмастеров.
vlad11
На сайте с 11.01.2011
Offline
73
#4

Согласен с предыдущим оратором.

Администрирование Linux и FreeBSD. Настройка BGP. (/ru/forum/744772)
E
На сайте с 25.01.2007
Offline
72
#5
robertkein:
Возможно, имеет смысл сделать владельцем папки backup
пользователя drupal

А так же:
1. Нужно посмотреть в каком режиме работает апач (php, suphp, cgi)
2. Какие папки прописаны в base_dir и включена ли эта директива
3. Кто является владельцем всех перечисленных папок?
4. Почему крон запускается от имени рута, а не от имени пользователя, которому принадлежит каталог с друпалом?

Решения два: резервировать шелл-скриптом от рута на уровне системы, а не веб-сервера или запускать cron.php от имени того пользователя, которому принадлежит папка с друпалом. Этому пользователю должны быть предоставлены права на запись в папку для хранения бэкапа.

И так, по порядку:

Проверил список юзеров # vim /etc/passwd юзера drupal там нет

1. апач работает в php режиме

2. open_basedir без значения

3. папка scheduled (владелец root); файлы созданы www-data

4. в cron.hourly/drupal владелец root, может стоит его поменять на www-data?

Himiko
На сайте с 28.08.2008
Offline
560
#6

Может стоит установить apache mpm-itk или php cgi/fastcgi ?

Тогда и файлы будут создаваться от имени юзера и доступ он к нему получить сможет.

А в крон добавлять так:

crontab -e -u ЮЗЕР

а не пихать всё в cron.hourly

Профессиональное администрирование серверов (https://systemintegra.ru). Круглосуточно. Отзывы (/ru/forum/834230) Лицензии (http://clck.ru/Qhf5) ISPManager,VDSManager,Billmanager e.t.c. по низким ценам.

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