Права доступа в Linux и команда chmod
В Linux каждый файл и каталог имеет три типа прав доступа для трех категорий пользователей:
- Владелец (user,
u) - Группа (group,
g) - Другие пользователи (other,
o)
Права доступа определяются тремя основными действиями:
- Чтение (read,
r) — право просматривать содержимое файла. - Запись (write,
w) — право изменять файл. - Исполнение (execute,
x) — право запускать файл как программу (исполнять скрипт или бинарный файл).
Значения прав доступа в числовом формате
Каждому праву соответствует числовое значение:
- Чтение (r) = 4
- Запись (w) = 2
- Исполнение (x) = 1
Чтобы задать полный набор прав для категории пользователей, нужно сложить соответствующие числа:
| Действие | Чтение (r) | Запись (w) | Исполнение (x) | Значение |
|---|---|---|---|---|
| Нет доступа | 0 | 0 | 0 | 0 |
| Только чтение | 4 | 0 | 0 | 4 |
| Чтение + Запись | 4 | 2 | 0 | 6 |
| Чтение + Запись + Исполнение | 4 | 2 | 1 | 7 |
Каждому праву доступа (владелец, группа, другие пользователи) назначается отдельная цифра, и итоговая команда chmod записывается в формате chmod XYZ <файл>, где X — права для владельца, Y — для группы, а Z — для других пользователей.
Часто используемые комбинации chmod
Вот основные комбинации значений и что они означают:
chmod 777 <файл>— Полный доступ для всех (владелец, группа и другие пользователи).- Владелец, группа и другие могут читать, записывать и исполнять файл.
- Числовое представление: 7 (4+2+1) для всех категорий.
chmod 755 <файл>— Полный доступ для владельца, а для группы и других только чтение и исполнение.- Владелец: чтение, запись и исполнение (7 = 4+2+1).
- Группа и другие: чтение и исполнение (5 = 4+0+1).
chmod 644 <файл>— Владелец может читать и записывать, а группа и другие — только читать.- Владелец: чтение и запись (6 = 4+2).
- Группа и другие: только чтение (4 = 4+0+0).
chmod 700 <файл>— Полный доступ для владельца, без доступа для группы и других.- Владелец: чтение, запись и исполнение (7).
- Группа и другие: нет доступа (0).
chmod 600 <файл>— Владелец может читать и записывать, остальные не имеют доступа.- Владелец: чтение и запись (6).
- Группа и другие: нет доступа (0).
Примеры команд
chmod 750 script.sh— Владелец может читать, записывать и исполнять; группа может читать и исполнять; другие не имеют доступа.chmod 644 document.txt— Владелец может читать и записывать; группа и другие могут только читать.
Как применять chmod
chmod 755 program.sh # делает файл исполняемым для всех пользователей
chmod 600 private.txt # ограничивает доступ только для владельца
Используя числовой формат для задания прав, можно быстро и удобно настраивать доступ к файлам и каталогам в Linux.