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, отказывая в доступе для обеспечения безопасности

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

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 группа.

Другие вопросы по тегам