configurations/linux/chmod.md

5.1 KiB
Raw Blame History

Права доступа

chmod (change mode) — команда для изменения прав доступа к файлам и каталогам.

Синтаксис:

chmod опции права /путь/к/файлу

где опции:

  • -c - выводить информацию обо всех изменениях
  • -f - не выводить сообщения об ошибках
  • -v - выводить максимум информации
  • -R - включить поддержку рекурсии

Права и пользователи

Основные права на файл (директорию):

Атрибут Описание
Первый символ r чтение (reading)
Второй символ w запись (writing)
Третий символ x выполнение (execution)

Расширенные права:

Права Числовое значение Относительный режим Применение к файлам Применение к каталогам
SUID 4 u+s Пользователь выполняет файл с разрешениями владельца файла Нет смысла применять
SGID 2 g+s Пользователь выполняет файл с разрешениями владельца группы Файлы, созданные в каталоге получают одного и того же владельца группы
sticky bit 1 +t Нет смысла применять Запрещает пользователям удалять файлы от других пользователей

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

  • u - владелец файла;
  • g - группа файла;
  • o - все остальные пользователи;
  • a - все пользователи (или ugo)
400 r-- --- --- │
200 -w- --- --- ├── права пользователя (u - user)
100 --x --- --- │

040 --- r-- --- │
020 --- -w- --- ├── права группы (g - group)
010 --- --x --- │

004 --- --- r-- │
002 --- --- -w- ├── права всех остальных (o - other)
001 --- --- --x │

Расширенные права:

400 --s          ── SUID
200 --s          ── SGID
100 --t          ── sticky bit

Если в триаде присутствует право на выполнение (x), то символ устанавливает строчный, иначе - заглавный:

drwSr-sr-T 2 alexander alexander  4096 мая 10 19:36  folder

Комбинации прав:

r--     4                 100
-w-     2                 010
--x     1                 001
rw-     6 (4 + 2)         110
r-x     5 (4 + 1)         101
-wx     3 (2 + 1)         011
rwx     7 (4 + 2 + 1)     111

или

--x     1                 001
-w-     2                 010
-wx     3 (2 + 1)         011
r--     4                 100
r-x     5 (4 + 1)         101
rw-     6 (4 + 2)         110
rwx     7 (4 + 2 + 1)     111

Значениями по умолчанию являются:

  • для файлов: 644 (-rw-r--r--)
  • для каталогов: 755 (drwxr-xr-x), где d - directory

Использование

Установка|добавление|изменение|удаление прав может осуществляться как установкой цифровым значением, так и символьным:

  • Установка: =
  • Добавление: +
  • Удаление: -

Например, установка прав:

u=rwx,g=rx,o=rx

или

u=rwx,go=rx

Добавление прав:

u+s,go+w

Удаление прав:

ug-wx,o=

Примеры

Установка прав на чтение и запись пользователю и группе и на только чтение всем остальным:

chmod 664 file

или

chmod ug=rw,o=r file

результат:

-rw-rw-r-- 1 alexander alexander 0 мая 10 19:05 file

Установить права на чтение, запись и выполнение только пользователю:

chmod 700 file

или

chmod u=rwx,go= file

результат:

-rwx------ 1 alexander alexander 0 мая 10 19:05 file

а теперь добавить только на выполнение группе и всем остальным:

chmod 711 file

или

chmod go+x file

результат:

-rwx--x--x 1 alexander alexander 0 мая 10 19:05 file

Установить права на каталог (drwxr-xr-x), чтобы удалить файл внутри каталога мог только владелец файла:

chmod 1755 folder

или

chmod +t folder

результат:

drwxr-xr-t 2 alexander alexander  4096 мая 10 19:36  folder