Пользователь CentOS7 не наследует групповые разрешения

Пользователь CentOS7 не наследует групповые разрешения

Я следовал руководству на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

Вам нужно будет проверить как владельца, так и разрешения и контексты 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/- будьте осторожны при использовании автодополнения по табуляции, так как он автоматически добавит завершающий слеш)

Связанный контент