SSH Изменить владельца public_html

Владельцем по умолчанию для public_html было myusername:nobody.

drwxr-xr--. 18 myusername nobody       4096 Jun  1 16:06 public_html/

Я изменил это на myusername:myusername, так как мне нужно получить доступ к файлу внутри public_html с помощью следующей команды

# chown myusername:myusername public_html

Это сработало, и собственник сменился.

Теперь я не могу вернуть право собственности на myusername:nobody. я использую эту команду

chown livegiftcard:nobody public_html

и это дает мне ошибку

chown: смена владельца «public_html»: операция не разрешена

Я также проверил это с sudo, а также chgrp, но не повезло.

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

Запрещенный

У вас нет прав доступа к / на этом сервере. Сервер не может прочитать файл htaccess, запрещая доступ в целях безопасности

Кроме того, при попытке использовать ErrorDocument для обработки запроса возникла ошибка 403 Forbidden.


person saiid    schedule 02.06.2016    source источник


Ответы (1)


Проблема: у apache/nginx есть пользователь, которому нужно прочитать файлы в Docroot. Пользователь и группа по умолчанию: www-data:www-data. Я не пользователь, если это правильно в вашем случае.

Теперь файлы принадлежат myusername:myusername, а пользователь apache/nginx, вероятно, не входит в группу «myusername». Итак, если у вас есть какие-то знания о системе разрешений Linux, пользователь веб-сервера имеет только те права, которые есть у всех (третий столбец). Когда для группы было установлено значение «никто», файлы не принадлежали какой-либо группе, и каждый пользователь мог действовать в соответствии с разрешениями группы. В вашем случае я думаю, что группа может читать все файлы, а все остальные - нет.

Что вы можете сделать: дать всем остальным право читать файлы с

chmod -R o+r public_html

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

Другое дело — добавить пользователя веб-сервера в группу «myusername», чтобы пользователь веб-сервера также мог использовать групповые разрешения.

Третья и последняя возможность, которая пришла мне в голову, состоит в том, чтобы изменить группу на «nogroup» вместо «nobody», потому что никто не является пользователем, а nogroup — группой.

person Dentastic    schedule 02.06.2016