Я следовал руководству на https://www.digitalocean.com/community/tutorials/how-to-install-wordpress-on-centos-7 (вместе со всеми предыдущими учебниками), чтобы настроить WordPress на моем новом CentOS7. сервер. До этого момента все работало нормально

sudo chown -R apache:apache /var/www/html/*

Я понимаю, что приведенная выше команда назначает владельца для пользователя и группы apache. Однако обычно я подключаюсь через putty и Filezilla, используя свою собственную учетную запись myuser , и хочу включить разрешения для этой учетной записи.

Поэтому, в дополнение к вышеупомянутой команде, я также добавил myuser в группу apache а также вышел из системы и снова вошел в систему, однако я все еще получаю сообщения об ошибках отказа в доступе при попытке выполнить операции CRUD в папке html. Однако, если я поднимаю команды с помощью sudo они работают, поэтому я немного озадачен тем, как разрешить учетной записи myuser выполнять файловые операции. Есть идеи?

1 ответ1

2

Вы захотите проверить владение, разрешения и контексты selinux

Собственность - Похоже, вы поняли это правильно. Владелец: Группа на CentOS7 должна быть apache: apache. Для вашего пользователя вам нужно будет добавить apache в качестве дополнительной группы. Вы можете проверить это с помощью id myuser Если apache не отображается в списке групп, выполните usermod -a -G apache myuser .

Разрешения - они перечислены как rwxrwxrwx. средний набор rwx является важной частью, так как он контролирует доступ через группу (так что важно для myuser). Вероятно, вам понадобятся только разрешения на чтение / запись, поэтому, вероятно, будет достаточно имени chmod -R 664 directoryname (чтение / запись для пользователя и группы apache, только для чтения для всех остальных). Вы можете проверить разрешения с помощью ls -l .

Примечание: WordPress обычно содержит скрытый файл .htaccess, вам нужно вручную применить к нему chmod и любой другой скрытый файл, так как рекурсивный chmod / chown пропустит их.

Контексты SELinux - это вы можете проверить с помощью ls -Z . Чтобы отключить принудительное применение SELinux, вы можете запустить setenforce 0 - это хорошо для отладки, является ли SELinux виновником или нет, однако вы должны включить его, когда закончите тестирование с использованием setenforce 1 . Если проблема в SELinux, то, скорее всего, вам нужно изменить контекст файлов с помощью чего-то вроде chcon -R -t httpd_sys_rw_content_t directoryname

Примечание: рекурсивный chcon также пропускает скрытые файлы (любой файл, начинающийся с '.«)

Примечание: если вы используете символические ссылки, вы должны убедиться, что и связанный каталог, и сама символическая ссылка имеют соответствующие права доступа / права доступа. Чтобы нацелить символическую ссылку с помощью chmod / chown, используйте флаг -h и, при нацеливании на каталог, убедитесь, что завершающий слеш отсутствует (например, /var/www/html/linked_dir а не /var/www/html/linked_dir/ - будьте осторожны при использовании табуляции, так как она автоматически добавит косую черту)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .