У нас есть внутренний сервер, на котором мы работаем с 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 писал в них.