Задать вопрос
@danforth

Пользователи и группы Linux: как делать правильно?

Помогите навести порядок в голове, не могу понять как правильно и безопасно настроить VPS. Вопрос заключается в правах и группах, я хочу, чтобы мой сайт находился в папке /home/danforth/www/ (правильно ли я мыслю?)
Для этого я создаю нового пользователя и присваиваю ему пароль
sudo useradd danforth
sudo passwd danforth

Это создаст пользователя с одноименной группой danforth, и создаст домашний каталог /home/danforth.
Далее, мне необходимо настроить nginx чтобы он смотрел в этот каталог (тут все ясно, можно пропустить).
Далее, присваиваю права файлам и папкам, вот тут и появляется загвоздка: в большинстве случаев самый удачные права на сколько я понял (поправьте, если это не так):
  • 755 для файлов
  • 644 для папок

но, мой каталог /home/danforth/ и его владелец danforth:danforth. Получается, что мне нужно либо добавить danforth в группу www-data (безопасно ли это?), но тогда придется редактировать права для группы (775 и 664 соответственно) либо настраивать так, чтобы веб сервер работал от юзера danforth.

Собственно, структурированный вопрос: какие права должны быть на файлы и папки, и от каких пользователей должны работать следующие программы:
  • nginx
  • php-fpm
  • mysql/mariadb
  • redis


Реквестую также какую-то годную статью, которая как раз отвечает на мой вопрос. Спасибо!
  • Вопрос задан
  • 384 просмотра
Подписаться 1 Оценить 1 комментарий
Решения вопроса 1
saboteur_kiev
@saboteur_kiev Куратор тега Linux
software engineer
"755 для файлов
644 для папок"
наоборот для папок (755 - rwxr-xr-x), Иначе никто не сможет зайти в папки, и для файлов 644 (rw-r--r--)

"nginx чтобы он смотрел в этот каталог"
Зачем? Если запускается не от вашего danforth, то не нужно это делать, пусть nginx смотрит в свой каталог. А вот юзера danforth можно добавить в www-data, чтобы вы могли туда заходить и писать, и да тогда нужно будет 775 и 664 соответственно.

Права не должны быть, права могут быьт разные, вы просто распишите кто и куда должен иметь доступ и назначьте. При установке, эти сервисы часто сами создают нужных пользователей, от имени которых запускаются. Добавление и изменение прав обычно идет через группы, а не через владельца.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
moropsk
@moropsk
как вариант.
https://debian.pro/2017
Ответ написан
Комментировать
CityCat4
@CityCat4
//COPY01 EXEC PGM=IEBGENER

я хочу, чтобы мой сайт находился в папке /home/danforth/www/

Зачем, простите? Домашний каталог юзера danforth предназначен для файлов юзера danforth - в том числе для настроек различных систем. Некоторые файлы могут хранить весьма любопытную для посторонних информацию. Это все равно что на винде разместить файт в каталоге профиля пользователя.
Сайты, не имеющие отношения к юзеру danforth, лучше размещать вне его домашнего каталога, например в /var/www (как это обычно делается в линухе) или в /usr/local/www (как во FreeBSD).

mysql работает от юзера mysql, остальные не знаю - у меня апач :) работчющий - внезапно - от юзера apache :) Есть еще ruby, модуль passenger работает от юзера nobody
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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