В этой статье
Что такое chmod?
chmod (change mode) — это команда Unix и Linux, которая устанавливает разрешения для файлов и каталогов. Каждый файл в системе Unix имеет три категории разрешений: владелец, группа и остальные. Каждая категория может независимо получить разрешения на чтение, запись и выполнение.
Понимание chmod необходимо для системного администрирования, настройки веб-серверов и безопасного управления файлами. Неправильные разрешения — одна из самых частых причин уязвимостей безопасности на серверах Linux.
Как работают разрешения chmod
Разрешения могут быть выражены в двух нотациях: числовой (восьмеричной) и символьной. Числовая нотация использует три цифры (напр. 755).
- Чтение (r = 4) — просмотр содержимого файла или списка каталога
- Запись (w = 2) — изменение содержимого файла или добавление/удаление файлов в каталоге
- Выполнение (x = 1) — запуск файла как программы или вход в каталог через cd
Каждая цифра — сумма разрешений: 7 = чтение + запись + выполнение (4+2+1), 6 = чтение + запись (4+2), 5 = чтение + выполнение (4+1), 4 = только чтение.
Попробуйте бесплатно — без регистрации
Рассчитать разрешения chmod →Распространённые значения разрешений
Вот наиболее часто используемые значения chmod и их типичные применения.
- 755 (rwxr-xr-x) — стандарт для исполняемых файлов и каталогов
- 644 (rw-r--r--) — стандарт для обычных файлов
- 700 (rwx------) — приватный каталог или скрипт; только владелец имеет доступ
- 600 (rw-------) — приватный файл вроде SSH-ключей; только владелец может читать и писать
- 777 (rwxrwxrwx) — полный доступ для всех; почти никогда не уместно и представляет угрозу безопасности
Последствия для безопасности
Принцип наименьших привилегий напрямую применяется к разрешениям файлов: предоставляйте только минимально необходимые разрешения.
Специальные биты разрешений добавляют ещё один уровень: SUID, SGID и sticky bit на каталогах предотвращают удаление чужих файлов.
Советы и лучшие практики
Следуйте этим рекомендациям для поддержания безопасных разрешений.
- Каталогам нужно разрешение на выполнение — без него пользователи не могут войти в каталог
- Используйте рекурсивный chmod осторожно — chmod -R 755 делает все файлы исполняемыми; используйте find с -type f и -type d отдельно
- Установите значения umask по умолчанию — umask 022 создаёт файлы с правами 644 и каталоги с правами 755
Часто задаваемые вопросы
В чём разница между 755 и 777?
При 755 владелец имеет полный контроль, а группа и остальные могут только читать и выполнять. При 777 все имеют полный контроль. Использование 777 почти никогда не требуется и создаёт серьёзную угрозу безопасности.
Зачем каталогам разрешение на выполнение?
Бит выполнения на каталоге контролирует возможность его обхода. Без разрешения на выполнение пользователь не может войти в каталог. Поэтому каталоги обычно имеют 755, а файлы — 644.
Какие разрешения по умолчанию у новых файлов?
Разрешения по умолчанию зависят от настройки umask. При стандартном umask 022 новые файлы создаются с правами 644, а новые каталоги — с правами 755.