Объяснение прав доступа Linux
Наглядное объяснение прав доступа к файлам Linux в числовой (восьмеричной) и символьной нотации с интерактивными флажками и выводом команды chmod
Ввод
Вывод
Документация
Что такое права доступа к файлам в 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, чтобы запретить пользователям удалять или переименовывать файлы друг друга, даже если все они имеют право на запись в эту директорию.