Битлента
Словарь терминов3 мин чтения·

Права доступа в Linux и команда chmod: как читать и менять

Чтение, запись и выполнение для владельца, группы и остальных. Как расшифровать rwx и цифры вроде 755, что меняет chmod и чем это грозит.

Три вида прав для трёх категорий

У каждого файла и папки в Linux есть владелец, группа и набор прав для трёх категорий: владельца, группы и всех остальных. Права бывают трёх видов: чтение (r), запись (w) и выполнение (x). Для папки «выполнение» означает возможность войти в неё и обращаться к содержимому, а «чтение» — просматривать список файлов.

Эта простая схема лежит в основе безопасности системы: программе или пользователю доступно только то, что разрешено, а остальное закрыто на уровне файловой системы.

Кроме владельца и группы, у файла могут быть расширенные списки доступа, которые позволяют выдать право отдельному пользователю без изменения группы. Они встречаются реже, но пригодны в общих папках, где стандартных трёх категорий недостаточно.

Как читать строку прав

Команда ls -l показывает строку вроде -rwxr-xr--. Первый символ — тип: дефис для файла, d для каталога, l для ссылки. Следующие девять символов делятся на тройки: rwx для владельца, r-x для группы, r-- для остальных. Значит, владелец может читать, писать и запускать, группа читать и запускать, остальные только читать.

Числовая запись даёт те же права сокращённо: r=4, w=2, x=1, и тройка суммируется. Права rwx — это 7, r-x — 5, r-- — 4, поэтому пример выше записывается как 754.

Что делает chmod

chmod меняет права. Запись chmod 644 файл означает: владелец читает и пишет, остальные только читают — типичный вариант для обычных файлов. chmod 755 применяют к скриптам и программам, которые все могут запускать. Буквенная форма удобна для точечных правок: chmod u+x файл добавляет владельцу право запуска, chmod go-w убирает запись у группы и остальных.

Ключ -R применяет правило рекурсивно ко всему содержимому папки, и здесь нужна осторожность: единая команда может сломать права у тысяч файлов.

Ещё один полезный приём — маска по умолчанию umask, которая определяет, какие права получат новые файлы. Обычное значение 022 даёт файлам 644, а каталогам 755. Менять её нужно осторожно, ведь она действует на все вновь создаваемые объекты сеанса.

🛡️ Остались проблемы с соединением?
Можно пользоваться постоянно: российские приложения работают, включать и выключать ничего не нужно. Без карты и регистрации, настройка за пару минут.
Попробовать бесплатно

Где это встречается на практике

Права на скрипт нужны, чтобы его можно было запустить: без бита x система ответит «Отказано в доступе». Закрытый ключ SSH обязан иметь права 600, иначе клиент откажется его использовать, о чём прямо предупреждает. Файлы сайтов на веб-сервере часто получают 644, а каталоги 755, чтобы сервер мог их читать, но не менять.

Есть также специальные биты: setuid, setgid и sticky. Их встретите редко, но полезно знать, что sticky на общей папке /tmp запрещает пользователям удалять чужие файлы.

Для сетевых служб принцип тот же: демон запускается от отдельного пользователя с ограниченными правами, чтобы при его взломе злоумышленник не получил доступ ко всей системе. Проверяйте, кому принадлежат каталоги конфигурации и ключи.

Заблуждения и опасные привычки

Самая частая ошибка — «не работает, поставлю 777». Это открывает файл на запись всем и почти никогда не решает исходную проблему, зато создаёт дыру в безопасности. Причина отказа чаще в неверном владельце или группе, для чего есть команда chown. Другая ошибка — путать права на файл с правами процесса: программа выполняется с правами запустившего её пользователя, а не своего автора.

Ещё одно недоразумение: права не шифруют содержимое. Администратор может прочитать любой файл, а защита от чужих глаз на диске обеспечивается шифрованием.

Как проверить у себя: Права доступа в Linux и команда chmod

Выполните ls -l в нужной папке и прочтите строки. Команда stat файл покажет права в числовом виде и в буквах. Чтобы увидеть, кому принадлежит файл, посмотрите на колонки владельца и группы. Меняйте права, только когда понимаете причину, и начинайте с минимально необходимых: сначала добавьте нужный бит, а не открывайте всё подряд. Для проверки эффекта запустите действие от нужного пользователя.

После изменения снова выполните ls -l и убедитесь, что результат совпал с ожидаемым. Если доступ по-прежнему запрещён, проверьте права на каждый каталог пути: для входа в папку нужен бит выполнения на всех уровнях.

🛡️ Остались проблемы с соединением?
Можно пользоваться постоянно: российские приложения работают, включать и выключать ничего не нужно. Без карты и регистрации, настройка за пару минут.
Попробовать бесплатно
linuxправаchmod

Часто задаваемые вопросы

Читайте также