Назад | Перейти на главную страницу

Как установить право собственности на веб-сервере

У нас есть внутренний сервер, на котором мы работаем с 3 пользователями. Он работает под управлением ubuntu с apache mysql proftpd

У нас часто бывают ошибки разрешений. Иногда мы не можем перезаписать файлы, но можем удалить их и т. Д. Что было бы хорошим способом настроить это. Кто должен быть владельцем файлов? (в настоящее время www-data: www-data).

Три пользователя должны иметь возможность удалять, записывать и читать файлы из веб-папок. Apache должен иметь все права для запуска Joomla.

Кто должен быть владельцем файлов?

НЕ ВЕБ-СЕРВЕР !!!!

Веб-серверу требуется доступ только для чтения к большинству файлов. В определенных каталогах могут быть обновляемые файлы, в зависимости от того, как настроена Joomla, но давайте не будем об этом сейчас беспокоиться.

Создайте группу для пользователей, которым нужен доступ для записи, скажем, webdev. Затем (как root):

 cd $WEBROOT
 find . -type d -exec chmod a+rx,o-w,g+ws {} \;
 find . -type f -exec chmod a+r-x,o+r-w,g+ws {} \;
 find . -exec chgrp webdev \;

Затем файлы могут быть прочитаны веб-сервером через «другое», записаны веб-разработчиком через разрешения «группы», а новые файлы / каталоги будут созданы веб-разработчиком.

Если вам нужно сделать определенные каталоги доступными для записи с помощью uid веб-сервера, тогда chmod o + w их (и добавьте файл .htaccess / измените конфигурацию веб-сервера, чтобы предотвратить прямой доступ веб-сервера, если они находятся внутри корня документа).

И, пожалуйста, прекратите использовать FTP. Это несчастный случай, ожидающий своего часа.

Вы можете создать группу и добавить в нее всех трех пользователей. Затем вы меняете владельца группы на эту новую группу и предоставляете группе полные разрешения. chmod g+rwx.

Для пользователя apache в большинстве случаев требуется только доступ на чтение к файлам и доступ на чтение + выполнение к папкам. Вы можете установить владельца на www-data:www-data для некоторых папок, таких как загружаемые, которые требуют, чтобы пользователь apache писал в них.