Проблема с правами доступа при установке Moodle

Вопрос или проблема

Я пытаюсь установить Moodle на свой веб-сервер, но он не может создать каталог данных moodle, из-за отсутствия прав на запись:

Родительский каталог (/var/www) недоступен для записи. Каталог данных (/var/www/moodledata) не может быть создан установщиком.

Я пытался установить chmod 777 и 666 для каталога www, но это все равно не помогает…

Результат ls -al:

drwxrwsrwx+  4 apache apache   31 Дек  8 15:49 www

Правка:

Мои права для папки www полностью перепутаны, потому что я ничего не понимаю о правах, может кто-то помочь мне их исправить? Мне также нужно разрешить группе sftp_users доступ к файлам:

ls -al в www:

drwxrwsrwx+  5 apache sftp_users   48 Дек  8 19:35 www

ls -al внутри www:

drwxrwsrwx+  5 apache sftp_users   48 Дек  8 19:35 .
drwxr-xr-x. 22 root   root       4096 Дек  8 17:29 ..
drwxrwx---.  2 root   sftp_users    6 Авг 24 21:12 cgi-bin
drwxrws---+  3 root   sftp_users   35 Дек  8 19:36 html
drwxrwsr-x+  2 root   sftp_users    6 Дек  8 19:35 moodledata

Возможно, selinux блокирует доступ. Проверьте это с помощью команды getenforce. Если результат Enforce, то вам может понадобиться изменить его на Permissive, с помощью команды setenforce 0 или setenforce Permissive. Вы также можете отключить selinux, отредактировав /etc/selinux/config и установив SELINUX = disabled. В этом случае потребуется перезагрузка. Кроме того – является ли каталог ./moodledata каталогом www для moodle или это каталог для хранения файлов? Если во втором случае, лучше всего переместить его за пределы каталога www, в заданный каталог в /, например /moodledata, и затем установить права на этот каталог для apache (или поместить эту папку на отдельный диск или SAN-ресурс или NFS).

Ответ или решение

Установка Moodle может быть проблематичной, если не устранить вопросы, касающиеся разрешений на директории, особенно к моменту создания директории данных Moodle (moodledata). Описание вашей проблемы указывает на то, что веб-сервер (в данном случае Apache) не может создавать необходимые директории из-за отсутствующих разрешений на запись. Давайте разберем возможные шаги по устранению данной проблемы.

1. Проверка и исправление разрешений

Согласно вашему ls -al выводу, директория /var/www имеет достаточные разрешения (drwxrwsrwx+), что означает, что группы и пользователи имеют право на запись. Тем не менее, вам нужно убедиться, что корректные пользователи и группы имеют доступ. В вашем случае директорией управляет пользователь apache.

Шаги для изменения разрешений:

  1. Проверка владельца директории
    Убедитесь, что у вас правильные владельцы и группы:

    chown -R apache:sftp_users /var/www
  2. Обновите разрешения на директорию и файлы:
    Лучше всего установить разрешения на 775 для www:

    chmod -R 775 /var/www
  3. Полагайтесь на специальные разрешения setgid, чтобы новые файлы создавались с теми же разрешениями групп, что и родительская директория:

    chmod g+s /var/www

2. Проверка SELinux

Еще одной причиной, по которой может возникать ошибка доступа, может быть активированный SELinux. Проверьте его статус командой:

getenforce

Если результат Enforcing, это значит, что политика SELinux ограничивает доступ. В этом случае вы можете временно изменить режим на Permissive:

setenforce 0

Для окончательного изменения статуса вам нужно отредактировать конфигурационный файл /etc/selinux/config и установить SELINUX=disabled. Не забудьте перезагрузить сервер после изменения этого параметра.

3. Рекомендации по структуре директорий

Мудрым решением будет размещение директории moodledata вне публичного доступа, чтобы избежать воздействия на безопасность. Рекомендуется переместить её, например, в /opt/moodledata:

  1. Создайте директорию moodledata:
    mkdir /opt/moodledata
  2. Установите правильные разрешения:
    chown -R apache:sftp_users /opt/moodledata
    chmod -R 770 /opt/moodledata
  3. Убедитесь, что в настройках Moodle указывается правильный путь к директории данных.

4. Подведение итогов

Подводя итоги, убедитесь, что права доступа к директориям настроены корректно, SELinux не блокирует доступ, и директория moodledata расположена в безопасном месте. Следуя этим шагам, вы должны будет устранить основные проблемы с разрешениями при установке Moodle на ваш сервер.

Если возникнут дополнительные вопросы или потребуется помощь, не стесняйтесь обращаться!

Оцените материал
Добавить комментарий

Капча загружается...