Как правильно настроить корневой каталог документов Apache с точки зрения привилегий?
Я только что установил серверную версию Ubuntu 9.10 на свою машину и хочу запустить свой собственный локальный сервер с другими пользователями в той же локальной сети.
Во-первых, мне было интересно, какая структура каталогов папок лучше всего подходит для корневого веб-каталога?
Должен ли я просто использовать:
/var/www/
и начать бросать туда веб-документы, или я должен создать папку в другом месте (может быть, домашний каталог)?
Во-вторых, в
/var/www/
В этом каталоге только пользователь root может создавать документы, однако я бы хотел, чтобы другие пользователи могли создавать файлы в корневом каталоге документов и загружать их через FTP. Должен ли я изменить разрешения или www/
папка? Или еще раз, я должен создать корень документа в другом месте с другими разрешениями? Какой самый безопасный способ сделать это?
2 ответа
Я не согласен с Warner здесь, для использования одного сайта /var/www
, но для чего-то более сложного я создаю подкаталоги в /srv/www
Исходя из вашего вопроса, грубое руководство:
aptitude install apache2
chmod g+w /var/www
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. Тем не менее, это не будет идеальным подходом почти во всех ситуациях.