Пользователь и группа www-data
04.12.2019
Теги: Apache • Linux • Nginx • Web-разработка • Владелец • Директория • Команда • Настройка • Пользователь • ПраваДоступа • Сервер • Файл
После установки Apache нужно установить правильные права доступа для пользователей и групп. В этом нам помогут команды chown
(изменить владельца) и chmod
(изменить права доступа). Рассмотрим эти команды, а потом установим владельца для директории /var/www
и права доступа к ней.
В Linux существует всего три вида прав — право на чтение (read
), запись (write
) и выполнение (execute
), а также три категории пользователей, к которым они могут применяться — владелец файла (user
), группа владельца (group
) и все остальные (others
).
Команда chmod
Изменяет прав доступа к файлу или директории.
chmod [опции] ВладелецГруппаДругие файл(ы)
- Опция
-R
позволяет рекурсивно изменять права доступа для каталога Владелец
— права доступа в числовом виде для владельцаГруппа
— права доступа в числовом виде для группыДругие
— права доступа в числовом виде для других
Команда chown
Изменяет владельца и/или группу файла или директории.
chown [опции] владелец[:группа] файл(ы)
Опция -R
— позволяет рекурсивно изменять владельца каталога.
Исходные данные
После установки web-сервера
- Apache запущен под пользователем и группой
www-data
- Директории виртуальных хостов расположены в
/var/www
Нам нужно обеспечить минимальные права для web-сервера (чтение директорий и файлов), чтобы он мог работать. И предоставить необходимые права на создание, редактирование и удаление файлов и директорий разработчику.
Создадим пользователя developer
и назначим ему основную группу www-data
:
$ sudo useradd -m -s /bin/bash -g www-data developer
Зададим пароль для нового пользователя:
$ sudo passwd developer Введите новый пароль UNIX: Повторите ввод нового пароля UNIX: passwd: пароль успешно обновлён
Изменяем владельца
Устанавливаем владельца и группу для всех директорий /var/www
:
$ sudo find /var/www -type d -exec chown developer:www-data {} \; -print /var/www /var/www/html /var/www/host1.loc /var/www/host2.loc
Устанавливаем владельца и группу для всех файлов /var/www
:
$ sudo find /var/www -type f -exec chown developer:www-data {} \; -print /var/www/html/index.html /var/www/host1.loc/index.php /var/www/host2.loc/index.php
Здесь можно обойтись одной командой (но с двумя нагляднее):
$ sudo chown -R developer:www-data /var/www
Устанавливаем права
Устанавливаем права для всех директорий /var/www
:
$ sudo find /var/www -type d -exec chmod 755 {} \; -print /var/www /var/www/html /var/www/host1.loc /var/www/host2.loc
Теперь ситуация такая:
- Пользователь
developer
(разработчик) имеет право на чтение и запись директорий, потому что является их владельцем - Пользователь
www-data
(web-сервер) имеет право на чтение директорий, потому что принадлежит к группеwww-data
Устанавливаем права для всех файлов /var/www
:
$ sudo find /var/www -type f -exec chmod 644 {} \; -print /var/www/html/index.html /var/www/host1.loc/index.php /var/www/host2.loc/index.php
Теперь ситуация такая:
- Пользователь
developer
(разработчик) имеет право на чтение и запись файлов, потому что является их владельцем - Пользователь
www-data
(web-сервер) имеет право на чтение файлов, потому что принадлежит к группеwww-data
Для наглядности посмотрим на права всех файлов и директорий:
$ cd /var/www $ ls -laR .: итого 20 drwxr-xr-x 5 developer www-data 4096 ноя 15 14:54 . drwxr-xr-x 15 root root 4096 ноя 11 09:32 .. drwxr-xr-x 2 developer www-data 4096 ноя 11 09:32 html drwxr-xr-x 3 developer www-data 4096 дек 4 17:50 host1.loc drwxr-xr-x 2 developer www-data 4096 ноя 15 14:56 host2.loc ./html: итого 20 drwxr-xr-x 2 developer www-data 4096 ноя 11 09:32 . drwxr-xr-x 5 developer www-data 4096 ноя 15 14:54 .. -rw-r--r-- 1 developer www-data 10918 ноя 11 09:32 index.html ./host1.loc: итого 16 drwxr-xr-x 3 developer www-data 4096 дек 4 17:50 . drwxr-xr-x 5 developer www-data 4096 ноя 15 14:54 .. -rw-r--r-- 1 developer www-data 78 дек 4 17:34 index.php ./host2.loc: итого 12 drwxr-xr-x 2 developer www-data 4096 ноя 15 14:56 . drwxr-xr-x 5 developer www-data 4096 ноя 15 14:54 .. -rw-r--r-- 1 developer www-data 46 ноя 15 14:56 index.php
Поиск: Apache • Linux • Nginx • Web-разработка • Владелец • Команда • Права доступа • Пользователь • www-data • Настройка • Группа • group • Файл • Директория