Автор статьи: Боровский Дмитрий
Численные значения прав в UNIX
Права представляются в виде четырехзначных восьмеричных чисел. Каждая цифра которого соответствует правам (слева направо):
- специальные биты
- права владельца файла
- права группы
- права всех остальных
Каждая восьмеричная цифра состоит из 3-х бит, которые означают (слева направо):
- чтение (бит r)
- запись (бит w)
- выполнение (бит x)
Тройка бит ‘rwx’ соответствует числам: 4, 2, 1 (2 в степени 2,
2 в степени 1, 2 в степени 0) и результирующий атрибут получается побитовой ИЛИ (в данном случае побитовое ИЛИ эквивалентно арифметическому
сложению).
Т.е. файл с правами rwxr-x—x будет иметь цифровое значение прав доступа 0751 (0 в данном случае — это признак восьмеричного числа).
Значения специальных битов (слева направо):
- установка UID владельца файла (SUID бит)
- установка GID владельца файла (SGID бит)
- stiсky бит (при разработке Unix-а использовался как признак задачи, невыгружаемой в swap, сейчас используется только для каталогов и означает что удалять объекты из этого каталога может только их владелец — например, см. права на каталог /tmp. Для файлов этот бит игнорируется).
Для примера файл, с правами 06751 — это ssrwxr-x—x (т.е. SUID,SGID, все могут выполнять, группа может читать и выполнять, владелец может читать, писать в него и выполнять).