Настройка разрешений для FTP и Apache

10

У меня есть веб-сервер (Apache2), к которому я обращаюсь с помощью FileZilla.

На моем веб-сервере у меня есть каталог / home / admin / www, который я связал с / var / www. Так что я могу получить к нему доступ по FTP. Это работает отлично!

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

Ontwikkelaar Bij Отладка
источник

Ответы:

13

Лучшее и более безопасное решение (мне непросто с интернетом, имеющим доступ к домашней папке администратора!) - создать папку webroot в /

Терминальное время!

cd /
sudo mkdir /webroot
sudo groupadd webdev
sudo usermod -a -G webdev yourusername 
sudo chown www-data:webdev /webroot/

Теперь укажите apache на ваш новый документ root / webroot в нижней части конфигурации apache. Это можно найти здесь: /etc/apache2/apache2.conf

sudo nano /etc/apache2/apache2.conf

CTRL-O для сохранения, CTRL-X для выхода в nano, если вы не знакомы с ним.

Просто заменить DocumentRoot /var/www/на/webroot/

Скопируйте ваши веб-файлы сейчас в webroot.

sudo /etc/init.d/apache2 reload

Теперь Apache должен был перезапуститься со всеми загруженными конфигурациями.

Это создало в корневом каталоге каталог с именем webroot, принадлежащий apache2, а владельцем группы является новая группа webdev, к которой теперь добавлен ваш пользователь (это не заменяет никаких групп!). Это позволит вам редактировать файлы на FTP!

Это очень простое решение для сервера Apache с одним веб-сайтом. Если вы планируете запускать несколько сайтов (например, создайте для них отдельные папки в webroot), вам потребуется больше работы.

Преимущества этого в том, что если кто-то обнаружит уязвимость, он будет заблокирован в папке webroot, а не в вашей домашней папке! Также, если вам когда-нибудь понадобится разрешить другим пользователям изменять сайт, вы можете добавить их в группу webdev с помощьюsudo usermod -a -G theirusername webdev

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

С уважением

Laice
источник
Не проблема :) Вы не возражаете, если я переименую название, чтобы лучше отразить ответ, который я дал?
Laice
конечно, нет :-)
Отладка в Ontwikkelaar Bij
По какой-то причине у меня не было такого пользователя webdev, когда я использовал вашу команду> sudo groupadd webdev Я попробовал это, и это, похоже, сработало. Хорошо добавили пользователя в файл / etc / group. Судо usermod -a -G wwwlogin WebDev
Ванеева
Это была моя ошибка, в своем ответе я случайно переключил пользователя и группу, это было исправлено Дэймоном, извлеченный урок!
Laice
@ Дэймон, я думаю, вам нужно установить соответствующие разрешения, чтобы владелец (www-data) и группа (webdev) имели те же разрешения, что и для каталога: это должны быть 775 (вместо 755 по умолчанию) и 664 (вместо 644). ) для файлов.
Эдуардо Б.