Введение / Зачем это нужно
Правильные права доступа защищают ваши данные от случайного изменения или удаления. Понимание chmod необходимо для администрирования серверов, разработки скриптов и работы с общей средой. После выполнения этого гайда вы сможете быстро настраивать права для файлов и директорий, избегая типичных ошибок.
Требования / Подготовка
- Любая современная дистрибутива Linux (например, Ubuntu 22.04, Debian 12, Fedora 38).
- Доступ к терминалу с правами обычного пользователя (или
sudoдля системных файлов). - Базовое знание командной строки (ввод команд, работа с путями).
Никакого дополнительного программного обеспечения не требуется — chmod уже присутствует в любой системе.
Пошаговая инструкция
Шаг 1: Проверить текущие права
Перед изменением прав всегда смотрите, что у вас есть.
ls -l /home/user/project/script.sh
Первая строка показывает права в формате rwxr-xr-x. Здесь r — чтение, w — запись, x — выполнение.
Шаг 2: Изменить права с помощью числового режима
Числовой режим удобен для быстрой установки прав.
# Полные права для владельца, чтение+выполнение для группы и остальных
chmod 755 /home/user/project/script.sh
| Цифра | Владелец | Группа | Остальные |
|---|---|---|---|
| 7 | rwx | rwx | rwx |
| 6 | rw- | rw- | rw- |
| 5 | r-x | r-x | r-x |
| 4 | r-- | r-- | r-- |
| 0 | --- | --- | --- |
Шаг 3: Изменить права с помощью символического режима
Символьный режим позволяет точно контролировать, кто что получает.
# Добавить выполнение только для владельца
chmod u+x backup.sh
# Предоставить чтение всей группе
chmod g+r config.json
# Удалить запись у всех
chmod a-w sensitive.txt
Синтаксис: chmod <кто><действие><разряд> <файл>.
u— владелец,g— группа,o— остальные,a— все.+— добавить,-— убрать,=— установить точно.
Шаг 4: Применить права к директории
Для каталогов права влияют на доступ к файлам внутри.
chmod 755 /var/www/html
Рекомендуемый набор для публичной веб-папки — 755 (владелец может всё, остальные — читать и перечислять).
Шаг 5: Проверить результат
После изменений проверьте изменения:
ls -l /home/user/project/script.sh
# или
stat /home/user/project/script.sh
Если права не изменились, проверьте права владельца: whoami и id.
Шаг 6: Решить типичные проблемы
| Симптом | Вероятная причина | Решение |
|---|---|---|
chmod: невозможно выполнить операцию: файл не существует | Ошибочный путь или опечатка | Удостоверьтесь в правильности пути, используйте realpath |
chmod: неверный режим | Использованы цифры > 7 или недопустимые символы | Используйте 0–7 для каждой категории |
chmod: не удаётся определить группу | Нет прав на запись в каталог | Используйте sudo для системных каталогов |
chmod: не удаётся изменить режим | Файл иммутабелен (например, /etc/shadow) | Требуются права root (sudo) |
Проверка результата
После установки прав попробуйте выполнить действие, которое требует этих прав:
# Чтение для всех
cat /home/user/project/script.sh
# Запись для владельца
echo "new line" >> /home/user/project/script.sh
# Выполнение скрипта
./script.sh
Если действия успешны, права настроены верно.
Возможные проблемы
- Права не распространяются на подкаталоги – используйте
chmod -R. - Сбой из-за неправильного формата – убедитесь, что режим указан восьмеричным числом или символами.
- Неправильные права для веб-сервера – большинство серверов ожидают
644для файлов и755для директорий. - Потеря прав после перезагрузки – убедитесь, что права установлены на файловой системе и не изменены владельцем.
Следуйте этим шагам, и вы сможете уверенно управлять правами доступа в Linux с помощью chmod.