Как правильно настроить корневой каталог документов Apache с точки зрения привилегий?

Я только что установил серверную версию Ubuntu 9.10 на свою машину и хочу запустить свой собственный локальный сервер с другими пользователями в той же локальной сети.

Во-первых, мне было интересно, какая структура каталогов папок лучше всего подходит для корневого веб-каталога?

Должен ли я просто использовать:

/var/www/ 

и начать бросать туда веб-документы, или я должен создать папку в другом месте (может быть, домашний каталог)?

Во-вторых, в

/var/www/

В этом каталоге только пользователь root может создавать документы, однако я бы хотел, чтобы другие пользователи могли создавать файлы в корневом каталоге документов и загружать их через FTP. Должен ли я изменить разрешения или www/ папка? Или еще раз, я должен создать корень документа в другом месте с другими разрешениями? Какой самый безопасный способ сделать это?

2 ответа

Решение

Я не согласен с Warner здесь, для использования одного сайта /var/www, но для чего-то более сложного я создаю подкаталоги в /srv/www

Исходя из вашего вопроса, грубое руководство:

  1. aptitude install apache2
  2. chmod g+w /var/www
  3. adduser USER www-data (Для каждого пользователя)

Затем попросите пользователей использовать SCP (пожалуйста, не используйте FTP) для загрузки файлов. Если им нужен клиент с графическим интерфейсом, посмотрите на FileZilla.

Обычно для серверов, обслуживающих только несколько крупных сайтов, выделенных в роли, например, в профессиональной ИТ-среде, они будут содержаться в /var/www,

Я бы создал подкаталоги для каждого отдельного сайта. Например:

/var/www/example.com
/var/www/testing.com
/var/www/anotherexample.com

То, что вы описываете, звучит больше похоже на среду общего хостинга. С общим сервером я обычно настраивал веб-сайты каждого пользователя в своих домашних каталогах в public_html. Если бы у них было несколько доменов, я бы следовал тому же соглашению, что и выше, но в этом каталоге. Я бы также отделил ErrorLog а также CustomLog в их домашнем каталоге, но за пределами веб-дерева.

Также рекомендуется использовать SuExec и и mod_suphp, чтобы предотвратить передачу данных пользователей другим пользователям в системе и ограничить область уязвимости веб-сайтов любых пользователей.

Если у пользователей не было доменов, вы можете использовать субдомены в основном домене или mod_userdir.

Если вы не хотите использовать более организованный подход, я бы предложил использовать подкаталоги, группы и бит SGID в /var/www. Тем не менее, это не будет идеальным подходом почти во всех ситуациях.

Другие вопросы по тегам