После установки 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

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Любишь мемасики?

Подпишись на мой телеграм-канал!

Открыть
Закрыть