Я пытаюсь узнать о полномочиях на веб-сервере Linux с апачем.
Некоторые ключи к разгадке системы:
Сервер, с которым я должен играть вокруг, является базирующимся Fedora. Apache работает как apache:apache. Для обеспечения, например, php для записи в файл, файл должен быть chmod 777. 755 не достаточно.
То, что я задаюсь вопросом, в основном, как настроенные полномочия как они должны идти, например, "общий веб-хост".
Моя основная проблема состоит в том, что, если я установил разрешение так, чтобы один пользователь не мог получить доступ к anothers домашняя папка, затем апач не может читать из public_html папки также.
Для не допускания пользователей, я должен установить chmod 700. Но позволять апачу для чтения я должен иметь, по крайней мере, выполняются на мире, таким образом, 701 в основном работают, но не впустят некоторых пользователей.
Таким образом, я действительно застреваю на том, что сделать. Полагали, что добавление апачского пользователя к frous grours ниже избегает необходимости добавлять, что мир выполняет флаг, но это - плохая вещь? Это должно быть наоборот, пользователи в группах ниже должны также быть в апачской группе?
Я стремился иметь 4 группы:
1. веб-приложение
то же как dev_int, но единственный, который может войти в папку веб-приложения / живую папку к, например, сделать обновление от repo.
2. dev_int
может читать, записать и выполнить все в "веб-корне", включая два ниже, но ничто за пределами веб-корня
3. dev_ext
может считать запись и выполниться во всех клиентских папках, но ни к чему не может получить доступ за пределами корня веб-приложения
4. клиенты
Основные учетные записи ftp. Имеет домашнюю папку с public_html, но не может получить доступ ни к каким другим домашним папкам
Пример структуры папок:
При использовании вкусной установки апачских 2 затем, можно поместить файлы веб-страницы где угодно. Я использую /var/www/html/DomainName.com
сохранить каждого виртуальные файлы доменов. Я сохраняю информацию о доменах в отдельном файле вместо httpd.conf, таким образом, я не должен проходить целый файл, если я должен отредактировать его.
Последняя строка моих httpd.conf файлов:
Include /etc/httpd/conf/domains.conf
Вот часть сценария, который я использую для создания новых доменов.
DOMAIN=$1
USERNAME=$2
mkdir /var/www/html/$DOMAIN
useradd -g apache $USERNAME
chown $USERNAME: /var/www/html/$DOMAIN
cd /home/$USERNAME
ln -s /var/www/html/$DOMAIN www
echo "Adding httpd entry"
echo " " >> /etc/httpd/conf/domains.conf
echo "<VirtualHost *:80>" >> /etc/httpd/conf/domains.conf
echo " ServerAdmin webmaster@$DOMAIN" >> /etc/httpd/conf/domains.conf
echo " DocumentRoot /var/www/html/$DOMAIN" >> /etc/httpd/conf/domains.conf
echo " ServerName $DOMAIN" >> /etc/httpd/conf/domains.conf
echo " ServerAlias www.$DOMAIN" >> /etc/httpd/conf/domains.conf
echo " ErrorLog logs/$DOMAIN-error_log" >> /etc/httpd/conf/domains.conf
echo " CustomLog logs/$DOMAIN-access_log common" >> /etc/httpd/conf/domains.conf
echo "</VirtualHost>" >> /etc/httpd/conf/domains.conf
Надеюсь, это поможет.