Права доступа CHMOD для пользователей и групп в Apache

Недавно мне довелось прочесывать интернет в надежде найти подробную информацию о том, как правильно выставить права доступа для пользователей и групп в Apache с помощью chmod. Что мне удалось найти:

Основы

Есть три группы прав доступа к файлам/директориям, о которых вам стоит позаботиться:

  • Пользователь – что может делать владелец файла;
  • Группа – что могут делать пользователи отдельных групп;
  • Другие – что могут делать остальные пользователи.

У пользователей есть логины (уникальные для каждого пользователя). Пользователи могут быть частью группы.

Примечание: команда chmod принимает целые числа (0664), и каждая из цифр отвечает за определенные права доступа.

Сегодня я расскажу вам о том, как правильно использовать chmod-настройки. Chmod используются для изменения прав доступа к директории или файлу.

Chmod cинтаксис:

chmod -flags permissions /path/to/dir/or/file

Флаги

-R

chmod –R позволит рекурсивно пройтись по всей указанной директории и изменить права доступа для всех файлов и вложенных директорий.

Изменяем права доступа

Вы можете определять, для кого изменяете права доступа:

  • u = пользователь;
  • g = группа;
  • o = другие.

Вы можете добавлять или удалять права доступа при помощи следующих команд chmod:

  • + добавить права доступа;
  • - удалить права доступа.

Можно задавать следующие права доступа:

  • r = чтение;
  • w = запись;
  • x = исполнение.

Эти знания можно использовать для настройки прав доступа в Apache:

  • Apache запущен как пользователь www-data в группе www-data;
  • Корневой каталог сервера: /var/www.

Для начала

Нам нужно установить владельца/группу для корневого каталога (и любых внутренних директорий и файлов):

$ sudo chown -R www-data:www-data /var/www

Нужно установить правильные права доступа для пользователей и групп. Запускаем несколько общих команд, которые закрывают доступ, а затем открываем доступ, насколько нам требуется.

Сначала сделайте так, чтобы никто кроме текущего пользователя (www-data) не имел доступа к содержимому директории web-root. Мы используем 'go', поэтому команда будет направлена к группам и другим пользователям ('group' и 'other'). Также мы используем '-' для отключения прав доступа. Затем используется параметр 'rwx', чтобы запретить чтение, запись и исполнение.

$ chmod go-rwx /var/www

Далее нужно разрешить пользователям из той же группы (и 'other') открывать директорию /var/www. Это делается без рекурсивного подхода. Мы указываем 'group' и 'other', но используем параметр '+', чтобы разрешить исполнение (chmod 'x').

$ chmod go+x /var/www

Далее изменяем права доступа всех директорий и файлов в корневом каталоге для той же группы (www-data). На случай, если в ней есть файлы:

$ chgrp -R www-data /var/www

Теперь нужно произвести некоторые «сбросы». C помощью команд chmod сделайте так, чтобы только один пользователь мог осуществлять доступ к контенту:

$ chmod -R go-rwx /var/www

Сделайте так, чтобы любой пользователь из той же группы мог читать/записывать и выполнять директории и файлы в корневом каталоге на сервере:

$ chmod -R g+rx /var/www

Лично я дал группе право записывать – это нужно для тех пользователей, которые редактируют контент. Выглядит это следующим образом:

$ chmod -R g+rwx /var/www

Зачастую вам даже не придется проделывать все это, но данная статья вполне способна помочь разобраться.

Перевод статьи “User and Group permissions, with chmod, and Apache” был подготовлен дружной командой проекта Сайтостроение от А до Я.

16 апреля 2016 в 13:00
Материалы по теме
{"url":"http://www.fastvps.ru/", "src":"/images/advbanners/fastvps.png", "alt":"Хостинг Fastvps.ru. Наш выбор!"}
Заработок