| Обозначение | Кто это | Пример |
|---|---|---|
u (user) |
Владелец файла | пользователь, создавший файл |
g (group) |
Члены владеющей группы | группа developers |
o (others) |
Все остальные | любые другие пользователи системы |
a (all) |
Все три категории сразу | используется для массовых изменений |
| Право | Символ | Числовое значение | Что разрешает |
|---|---|---|---|
| Чтение | r |
4 | Просмотр содержимого файла / список файлов в директории |
| Запись | w |
2 | Изменение файла / создание и удаление файлов в директории |
| Выполнение | x |
1 | Запуск файла как программы / вход в директорию |
🔍 Важно: Для директорий правоxозначает возможность войти в неё (использовать в пути), даже если нет праваr.
chmod: два режима работыСинтаксис:
chmod [кому][операция][права] путь_к_файлу
Компоненты:
u, g, o, a (можно комбинировать:
ug, go)+ — добавить право- — отнять право= — установить точно указанные права (остальные удалить)r, w, x (можно комбинировать:
rx, rwx)Примеры:
# Дать владельцу право на запись
chmod u+w file.txt
# Убрать у всех право на чтение
chmod a-r file.txt
# Установить для группы права "чтение + выполнение", остальные права группы удалить
chmod g=rx script.sh
# Дать владельцу полные права, группе и остальным — только чтение и выполнение
chmod u=rwx,g=rx,o=rx project/
# Комбинированное изменение: добавить выполнение владельцу, убрать запись у остальных
chmod u+x,o-w app.bin
Каждому типу прав соответствует число: r=4, w=2, x=1.
Права складываются для каждой категории пользователей.
Алгоритм расчёта:
owner-group-othersПримеры расчёта:
| Права | Расчёт | Цифра |
|---|---|---|
rwx |
4+2+1 | 7 |
rw- |
4+2+0 | 6 |
r-x |
4+0+1 | 5 |
r-- |
4+0+0 | 4 |
-wx |
0+2+1 | 3 |
-w- |
0+2+0 | 2 |
--x |
0+0+1 | 1 |
--- |
0+0+0 | 0 |
Примеры команд:
# Владелец: всё, группа: чтение+выполнение, остальные: только чтение
chmod 754 file.txt
# Только владелец имеет полный доступ, остальные — ничего
chmod 700 private/
# Все могут читать и выполнять, но писать — только владелец
chmod 755 script.sh
# Владелец и группа могут читать и писать, остальные — только читать
chmod 664 document.txt
💡 Совет: Числовой режим удобен для точной установки прав, символьный — для точечных изменений.
-RПрименяет права ко всем файлам и поддиректориям внутри указанной директории:
chmod -R 755 /var/www/html/
chmod -R u+w,g-w projects/
⚠️ Внимание: Используйте -R осторожно — можно случайно открыть доступ к системным
файлам.
ls -lВывод команды показывает права в символьном формате:
-rwxr-xr-- 1 student developers 1024 Mar 25 10:00 script.sh
│││││││││
││││││││└─ остальные: r-- (4)
││││││└── группа: r-x (5)
│││││└─── владелец: rwx (7)
││││└──── тип: - (файл), d (директория)
Практический пример разбора:
drwxr-x--- 2 student developers 4096 Mar 25 09:00 myproject/
d — это директорияstudent): rwx = 7 — полный доступdevelopers): r-x = 5 — чтение и вход--- = 0 — нет доступа750Когда пользователь пытается получить доступ к файлу, система проверяет права последовательно:
user (u). Проверка завершена.group (g). Проверка завершена.others (o).🔍 Ключевой момент: Система останавливается на первом совпадении. Даже если пользователь входит в несколько групп, проверяется только основная группа файла.
Пример:
Файл с правами rw-r----- (640), владелец alice, группа devs.
alice → права rw- (может читать и писать)bob, входящий в devs → права r-- (только чтение)charlie, не входящий в devs → права --- (доступ запрещён)u, g, o, a — категории пользователейr=4, w=2, x=1 — числовые значения правu+x) и числовой режим (755) chmod-R)ls -l — интерпретация вывода прав