Полномочия файла/папки и группы на Linux с Apache

Я пытаюсь узнать о полномочиях на веб-сервере 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, но не может получить доступ ни к каким другим домашним папкам

Пример структуры папок:

  • webroot  никакие пользователи в вышеупомянутых группах может выйти на улицу из здесь
    • some_project  : dev_int только
    • веб-приложение
      • живой  : веб-приложение только
      • подготовка  : dev_int и: dev_ext
      • клиенты  : dev_int и: dev_ext
        • client_1  : dev_int: dev_ext и client1:clients
          • public_html
    • dev
      • developer_1  developer_1:dev_int ИЛИ: dev_ext
        • public_html
1
задан 26.06.2010, 03:09

1 ответ

При использовании вкусной установки апачских 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 

Надеюсь, это поможет.

0
ответ дан 17.12.2019, 00:39

Теги

Похожие вопросы