Как мне предоставить себе доступ к / var / www для создания и редактирования файлов и папок в нем без sudo? [дубликат]

На этот вопрос уже есть ответ здесь:

У меня есть папка на моем веб-сервере / var / www . Мне нужно добавить файлы в папку, но система не позволит мне это сделать, если я не использую sudo .

Можно ли предоставить себе доступ для изменения папки и ее содержимого, чтобы мне не требовалось sudo для создания файлов, и поэтому я могу использовать FTP-клиент для загрузки файлов на веб-сервер напрямую?

Веб-сервер - это Apache2, если это имеет значение.

5
задан 24 March 2016 в 16:43

1 ответ

/var/www/ папка затронута системой и не только пользователями/администраторами, таким образом, Вы не должны смешивать с этими настройками на основе /var/www каталог, если Вы не знаете то, что Вы делаете. Как правило, с тем, как я выполняю вещи, я делаю сайт-специфичные каталоги внутри /var/www/, и затем дайте мне полномочия там, который решает проблему системы, перезаписывающей данные сайта случайно (это обычно не будет смешивать с подпапками там Вашего собственного создания).

Поэтому можно вместо этого хотеть настроить папку в /var/www/ и измените свои настройки DocumentRoot сайта Apache для указания, веб-сайт к той подпапке (скажите, /var/www/mysite/), и затем команды выполнения управляют, чтобы дать себе доступ для записи и доступ для чтения веб-сервера, при блокировании других пользователей от доступа.

Во-первых, для создания папки заменяя 'mysite' с любым именем Вы хотите использовать:

sudo mkdir /var/www/mysite

Во-вторых, позволяет, предоставляют Вам доступ и доступ WebServer. Apache2 работает как www-data по умолчанию.

sudo chown $USER:www-data /var/www/mysite

В-третьих, мы должны удостовериться, что любые файлы, созданные в папке, автоматически даны www-data как владелец группы (так, чтобы это могло на самом деле считать файлы, которые это должно считать); мы устанавливаем липкий бит "SetGID" для этого. Мы также можем хотеть остановить других пользователей (кроме суперпользователя и веб-сервера) от доступа к папке также, в случае, если существуют пароли, сохраненные в данных, которые не должны быть выставлены (см. мое предупреждение в нижней части ответа):

sudo chmod g+s /var/www/mysite
sudo chmod o-rwx /var/www/mysite

В-четвертых, необходимо отредактировать сайт Apache. Можно использовать конфигурацию сайта 'по умолчанию', если Вы плохо знакомы с нею. Необходимо будет выполнить ряд задач:

  1. Найдите конфигурационный файл - обычно в /etc/apache2/sites-enabled.
  2. Отредактируйте конфигурационные файлы - находят строку DocumentRoot и изменяют его для высказывания: DocumentRoot /var/www/mysite (заменяющий 'mysite' с любым именем каталога Вы сделали.
  3. Apache перезапуска - sudo service apache2 restart.

После того как Вы сделали все это, необходимо смочь поместить документы в /var/www/mysite непосредственно, без sudo (таким образом, FTP/SFTP будет работать), и веб-сервер должен иметь права доступа, в которых он нуждается для всего в каталоге сайта.


(Обязательное предупреждение Безопасности IT-систем, потому что я - человек безопасности IT-систем),

ПРЕДУПРЕЖДЕНИЕ!

Полномочия веб-сайта являются очень злыми и в зависимости от того, что Вы используете на сайте, может быть почти невозможно получить работу без намного большего количества работы и усилия. Существуют также файлы в некоторых веб-приложениях, которые не должны быть доступными миром за пределами того, к чему необходимо предоставить доступ.

Также важно отметить, что веб-приложения уязвимы для БОЛЬШОГО потенциального использования, таким образом, очень важно держать Ваш сайт в курсе с обновлениями программного обеспечения до Apache, но также и обновлениями программного обеспечения, Вы работаете на сайте (WordPress, например).

16
ответ дан 25 March 2016 в 02:43
  • 1
    Что Вы имеете в виду? Первая команда решила проблему. Также другие восстанавливают к встроенному микропрограммному обеспечению по умолчанию. Но если все работы можно оставить его как есть. – Pilot6 26 June 2017 в 03:23

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

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