Смена прав

Для работы непосредственно с правами используется команда chmod:

chmod [настройки прав] [файл или папка]

При работе с директориями опция -R позволит изменить права на все вложенные файлы и папки.

Настройки прав в chmod можно определять двумя способами:

  1. первый способ – указать категорию (u пользователь-владелец, g группа-владелец, o другие пользователи, a все пользователи), модификатор (+, , =) и, соответственно, нужные права (r, w, x).

Например, если есть файл example.txt с максимальным уровнем прав для всех категорий пользователей (Рисунок 5).

Рисунок 5 - Изменение прав на файл `example.txt`

Если не нужно, чтобы кто-то мог запускать этот файл на выполнение, нужно убрать параметр "x" из прав всех категорий пользователей сразу. Это можно сделать так (Рисунок 6):

chmod a-x example.txt

Рисунок 6 - Изменение прав на файл example.txt с запретом на выполнение для всех пользователей

Теперь, если необходимо вернуть владельцу права на запуск файла, следует добавить параметр "x" в категорию пользователя-владельца (Рисунок 7):

chmod u+x example.txt

Рисунок 7 - Изменение прав на файл example.txt с добавлением критерия пользователю-владельцу

Для изменения всего набор параметров для отдельной категории сразу (Рисунок 8):

chmod u=rwx example.txt

Рисунок 8 - Изменение прав на файл example.txt для отдельной категории пользователей

  1. второй способ – указать права в виде числового значения, что является более сложным, но более быстрым способом. В этом случае в качестве параметра нужно передать цифровое выражение уровня прав:
chmod 777 example.txt

В этом примере назначен максимальный уровень доступа всем категориям пользователей.

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

chmod 666 example.txt

Чтобы вернуть права, но только пользователю-владельцу:

chmod 766 example.txt

Если необходимо изменить права только на все папки или только на все файлы в определённой директории, например при настройке прав на файлы сайтов, можно использовать один из вариантов:

  • Смена прав на 755 для всех папок внутри /var/www/sites/example.com:
find /var/www/sites/example.com/ -type d -exec chmod 755 {} \;
  • Смена прав на 644 для всех файлов внутри /var/www/sites/example.com:
find /var/www/sites/example.com/ -type f -exec chmod 644 {} \;