www-данные разрешения? - PullRequest
       34

www-данные разрешения?

94 голосов
/ 03 февраля 2012

Итак, у меня есть каталог в / var / www (называемый торт), и мне нужно разрешить www-data записывать в него, но я также хочу писать в него (без использования sudo).Я боюсь изменить разрешения на 777 в случае, если какой-либо другой пользователь на моем компьютере (или хакер) попытается изменить файлы в этом каталоге.Как разрешить доступ только для себя и www-данных Apache?

Ответы [ 2 ]

148 голосов
/ 03 февраля 2012
sudo chown -R yourname:www-data cake

затем

sudo chmod -R g+s cake

Первая команда меняет владельца и группу. Вторая команда добавляет атрибут s, который будет хранить новые файлы и каталоги в пределах торта с одинаковыми правами группы

42 голосов
/ 27 октября 2013

Как указано в статье Slicehost :

Настройка пользователя

Итак, начнем с добавления основного пользователя в группу пользователей Apache:

sudo usermod -a -G www-data demo

Это добавляет пользователя 'demo' в группу 'www-data'. Убедитесь, что вы используете параметры -a и -G с командой usermod, показанной выше.

Вам нужно будет выйти и снова войти, чтобы включить группу изменить.

Проверьте группы сейчас:

groups
...
# demo www-data

Так что теперь я являюсь членом двух групп: моей (демо) и группы Apache (WWW-данные).

Настройка папки

Теперь нам нужно убедиться, что папка public_html принадлежит основному пользователю. (демо) и является частью группы Apache (www-data).

Давайте настроим это:

sudo chgrp -R www-data /home/demo/public_html

Поскольку мы говорим о разрешениях, я добавлю краткую заметку о команда sudo: это хорошая привычка использовать абсолютные пути (/ home / demo / public_html), как показано выше, а не относительные пути (~ / Public_html). Это гарантирует, что sudo используется в правильном место.

Если у вас есть папка public_html с символическими ссылками, тогда осторожно с этой командой, поскольку она будет следовать символическим ссылкам. В тех в случае рабочей папки public_html меняйте каждую папку вручную.

Setgid

Пока хорошо, но помните, команда, которую мы только что дали, влияет только на существующие папки. Что нового?

Мы можем установить владельца, чтобы что-то новое также было в «www-data» группа.

Первая команда изменит разрешения для public_html каталог для включения бита "setgid":

sudo chmod 2750 /home/demo/public_html

Это будет гарантировать, что любые новые файлы получат группу 'www-data'. Если у вас есть подкаталоги, вы хотите запустить эту команду для каждого подкаталог (этот тип разрешений не работает с '-R'). К счастью, новые подкаталоги будут созданы с битом setgid устанавливается автоматически.

Если нам нужно разрешить доступ на запись к Apache, в каталог загрузки например, затем установите разрешения для этого каталога следующим образом:

sudo chmod 2770 /home/demo/public_html/domain1.com/public/uploads

Разрешения нужно устанавливать только один раз, так как новые файлы будут автоматически присваивается правильное право собственности.

...