На этот вопрос уже есть ответ здесь:
У меня есть файлы на моем сайте, которые мне нужны для доступа к файлам на моем сервере, и они также должны иметь возможность редактирования веб-сервером. Теперь с моей текущей настройкой я не могу этого сделать.
Если владельцем/группой является imran:imran, то у меня есть полный доступ к этому файлу, но мой веб-сервер не может открыть/редактировать этот файл. Теперь мне сказали, что я должен сопоставить владельца/группу файлов с теми, которые использует веб-сервер, я посмотрел на файлы, которые создал веб-сервер, и они были nobody:nobody. Поэтому я изменил владельца/группу всего public_html на nobody:nobody, потому что у меня просто было слишком много файлов в папке, которые должны были редактироваться веб-сервером, и смена владельца одного за другим заняла бы слишком много времени. После смены владельца веб-сервер смог отредактировать папку, но потом я кое-что понял... теперь я даже не могу просмотреть папку public_html.
Кто-нибудь знает, как правильно установить владельцев, чтобы у меня был доступ, как и у веб-сервера?
(Это на сервере с WHM/cPanel)
Следующие команды:
chown imran:nobody public_html
chmod 0775 public_html
chown imran:nobody -R public_html/*
find public_html/ -type f -exec chmod 0664 '{}' \;
find public_html/ -type d -exec chmod 2775 '{}' \;
# In your .bash_profile / .bashrc set:
umask 002
Это должно заботиться о Ваших проблемах. Это дает nobody
разрешению группы записать в public_html каталог и подпапки, но 'мир' не позволяют записать в те файлы (например, chmod 777). Вы, как владелец, также имеют полные полномочия по тем файлам. Установка setgid обдумала каталоги, удостоверяется, что полномочия остаются этот путь и umask средства модификации, Вы создадите файлы с другим набором полномочий по умолчанию.
Иногда, никто пользователь не является частью своей собственной группы, так для фиксации того использования
gpasswd -a nobody nobody
Удостоверьтесь, что Вы добавляете, что +x обдумал что-либо, что Вы должны быть выполнены веб-сервером, сценарии CGI и т.д.