Пользователь и группа www-data

04.12.2019

Теги: ApacheLinuxNginxWeb-разработкаВладелецДиректорияКомандаНастройкаПользовательПраваДоступаСерверФайл

После установки 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 • Файл • Директория

Каталог оборудования
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Производители
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Функциональные группы
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.