На этот вопрос уже есть ответ здесь:
У меня есть папка на моем веб-сервере / var / www
. Мне нужно добавить файлы в папку, но система не позволит мне это сделать, если я не использую sudo
.
Можно ли предоставить себе доступ для изменения папки и ее содержимого, чтобы мне не требовалось sudo
для создания файлов, и поэтому я могу использовать FTP-клиент для загрузки файлов на веб-сервер напрямую?
Веб-сервер - это Apache2, если это имеет значение.
/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. Можно использовать конфигурацию сайта 'по умолчанию', если Вы плохо знакомы с нею. Необходимо будет выполнить ряд задач:
/etc/apache2/sites-enabled
.DocumentRoot /var/www/mysite
(заменяющий 'mysite' с любым именем каталога Вы сделали.sudo service apache2 restart
.После того как Вы сделали все это, необходимо смочь поместить документы в /var/www/mysite
непосредственно, без sudo
(таким образом, FTP/SFTP будет работать), и веб-сервер должен иметь права доступа, в которых он нуждается для всего в каталоге сайта.
(Обязательное предупреждение Безопасности IT-систем, потому что я - человек безопасности IT-систем),
ПРЕДУПРЕЖДЕНИЕ!
Полномочия веб-сайта являются очень злыми и в зависимости от того, что Вы используете на сайте, может быть почти невозможно получить работу без намного большего количества работы и усилия. Существуют также файлы в некоторых веб-приложениях, которые не должны быть доступными миром за пределами того, к чему необходимо предоставить доступ.
Также важно отметить, что веб-приложения уязвимы для БОЛЬШОГО потенциального использования, таким образом, очень важно держать Ваш сайт в курсе с обновлениями программного обеспечения до Apache, но также и обновлениями программного обеспечения, Вы работаете на сайте (WordPress, например).