Что такое права доступа к файлам в Linux?

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

Права можно выразить в двух форматах. Символьная запись использует буквы, например rwxr-xr-x, где каждый символ обозначает конкретное право для конкретной группы. Восьмеричная (числовая) запись использует трёх- или четырёхзначное число, например 755, где каждая цифра — это сумма значений прав: чтение = 4, запись = 2, выполнение = 1.

Необязательная ведущая цифра в восьмеричной записи обозначает специальные биты: setuid (4), setgid (2) и sticky bit (1). Setuid позволяет программе выполняться с привилегиями владельца файла, setgid заставляет новые файлы наследовать группу родительской директории, а sticky bit запрещает пользователям удалять файлы, которыми они не владеют, в общих директориях.

Описание инструмента

Этот инструмент позволяет интерактивно создавать и расшифровывать права доступа к файлам Linux. Переключайте флажки для владельца, группы и остальных, чтобы задать права на чтение, запись и выполнение, и мгновенно видьте результат в восьмеричной и символьной записи. Вы также можете ввести восьмеричное значение, например 755, или символьную строку, например rwxr-xr-x, напрямую — флажки и визуальный вывод обновятся автоматически. Цветовая визуализация позволяет с первого взгляда понять, какие права активны, а готовая команда chmod генерируется автоматически.

Примеры

Восьмеричный Символьный Значение
755 -rwxr-xr-x Владелец: полный доступ. Группа и остальные: чтение и выполнение.
644 -rw-r--r-- Владелец: чтение и запись. Группа и остальные: только чтение.
700 -rwx------ Владелец: полный доступ. Группа и остальные: доступ закрыт.
777 -rwxrwxrwx Полный доступ для всех.
1755 -rwxr-xr-t Аналогично 755 с установленным sticky bit.
4755 -rwsr-xr-x Аналогично 755 с установленным битом setuid.

Возможности

  • Переключение отдельных прав на чтение, запись и выполнение для каждой группы с помощью флажков
  • Ввод восьмеричной (например, 755) или символьной (например, rwxr-xr-x) записи напрямую с мгновенным преобразованием
  • Цветовые блоки для быстрого распознавания активных прав
  • Поддержка специальных битов прав: setuid, setgid и sticky bit
  • Автоматически генерируемая команда chmod, готовая к копированию и использованию в терминале

Сценарии использования

  • Настройка веб-сервера: быстро определите правильный набор прав для файлов, обслуживаемых Apache или Nginx, например 644 для статических файлов и 755 для исполняемых скриптов.
  • Отладка ошибок отказа в доступе: вставьте строку прав из вывода ls -l, чтобы наглядно понять, какой группе не хватает доступа.
  • Изучение прав доступа Linux: интерактивно исследуйте, как переключение отдельных флагов изменяет восьмеричное и символьное представление.

Принцип работы

Каждый тип права имеет числовой вес: чтение = 4, запись = 2, выполнение = 1. Восьмеричная цифра для группы — это сумма весов включённых прав. Например, чтение + выполнение = 4 + 1 = 5. Полная восьмеричная запись объединяет цифры для владельца, группы и остальных — таким образом, rwxr-xr-x становится 755.

Специальные биты добавляют необязательную ведущую цифру, рассчитываемую аналогичным образом: setuid = 4, setgid = 2, sticky = 1. Значение 1755 означает sticky bit (1) плюс владелец=7, группа=5, остальные=5.

Описание параметров

  • Флажки владельца / группы / остальных: независимое переключение прав на чтение (r), запись (w) и выполнение (x) для каждой группы.
  • Setuid: при установке на исполняемый файл запускает его с привилегиями владельца файла, а не вызывающего пользователя.
  • Setgid: для директории новые файлы наследуют группу директории. Для исполняемого файла запускает его с привилегиями группы файла.
  • Sticky bit: для директории только владелец файла может удалять или переименовывать файлы внутри неё, даже если другие имеют право на запись.
  • Восьмеричный ввод: введите трёх- или четырёхзначное восьмеричное число, чтобы задать все права одновременно.
  • Символьный ввод: введите символьную строку из 9 или 10 символов (с необязательным префиксом типа файла), чтобы задать права.

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

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

В чём разница между строчной s и заглавной S? Строчная s означает, что установлены и бит выполнения, и специальный бит (setuid или setgid). Заглавная S означает, что установлен только специальный бит без права на выполнение.

Для чего используется sticky bit? Sticky bit обычно устанавливается на общих директориях, например /tmp, чтобы запретить пользователям удалять или переименовывать файлы друг друга, даже если все они имеют право на запись в эту директорию.