Наследовании группы www-data в директории при создании файлов и папок в Ubuntu

Часто возникает необходимость, чтобы при создании файла или директории в Ubuntu автоматически задавалась группа и пользователь www-data. Для этого необходимо выполнить следующие шаги:

Создание пользователей

Создаём пользователя. Флаг -m нужен для создания домашней директории пользователя (для ее названия используется имя пользователя)..

useradd -m имя_пользователя

Для введения пароля нового пользователя или изменения пароля существующего введите в командной строке команду

passwd имя_пользователя

Позже пользователь сможет изменить свой пароль при помощи команды passwd. Для этого ему понадобится ввести текущий пароль и новый.

Добавление пользователя в группу

Для добавления пользователя в группу используется команда usermod. Давайте добавим пользователя имя_пользователя в группу www-data. Опция -a означает append (добавить, прикрепить), а опция -G служит для указания названия вторичной группы.

usermod -a -G www-data имя_пользователя

Когда вы создаете пользователя при помощи команды adduser, для него автоматически создается первичная группа, носящая его имя. Поэтому в настоящее время пользователь имя_пользователя состоит в первичной группе имя_пользователя и вторичной www-data.

Также можно добавить пользователя сразу в несколько групп, перечислив их через запятую без пробелов (-G group1,group2,group3).

А эта команда изменит первичную группу пользователя имя_пользователя на группу www-data:

usermod -g www-data имя_пользователя

Задание прав на файлы и папки

Для того, чтобы все файлы в папке и подпапке также имели группу www-data, можно выполнить следующие команды:

sudo chgrp -R www-data польный_путь_к_папке
sudo chmod -R g+s польный_путь_к_папке

Где польный_путь_к_папке - путь к папке, в которой находятся файлы. Первая команда задает группу www-data для всех файлов в папке и подпапках, а вторая команда устанавливает бит setgid для папки, что позволяет новым файлам, созданным в этой папке и подпапках, наследовать группу, установленную для этой папки.

Права доступа

Для предотвращения несанкционированного доступа к файлам и папкам веб-приложения необходимо установить соответствующие права доступа. Например, можно установить права 755 на директорию приложения и права 644 на файлы:

sudo chmod -R 755 польный_путь_к_папке
sudo find польный_путь_к_папке -type f -exec chmod 644 {} \; -print

Ссылки: