В Linux используется дискреционный контроль доступа (DAC). Права назначаются пользователям, группам и остальным. Для каждого из этих трех категорий определяются права на чтение (r), запись (w) и выполнение (x).
bash
Первый символ указывает тип файла (- для обычного файла, d для директории). Следующие девять символов представляют права:
rwx)r-x)r-x)Права можно изменить с помощью команды chmod, используя восьмеричное или символьное представление:
bash
Владельца файла или директории можно изменить командой chown:
bash
Группа файла или директории изменяется командой chgrp:
bash
| Символ | Описание | Применение |
|---|---|---|
s | SUID (Set User ID): Если установлен на исполняемом файле, процесс будет выполняться с правами владельца файла, а не запускающего пользователя. | Используется для программ, которым требуются повышенные права для выполнения задач, например, passwd. |
s | SGID (Set Group ID): Если установлен на исполняемом файле, процесс будет выполняться с правами группы файла. Если установлен на директории, новые файлы, созданные в этой директории, будут принадлежать группе этой директории. | На исполняемых файлах используется реже SUID. На директориях полезно для общих директорий, где все файлы должны принадлежать одной группе. |
t | Sticky Bit: Если установлен на директории, файлы в этой директории могут быть удалены или переименованы только их владельцем, владельцем директории или root. | Часто используется в директории /tmp, чтобы пользователи не могли удалять файлы других пользователей, даже если у них есть право на запись в эту директорию. |
bash
Эти механизмы совместно обеспечивают гранулярный контроль доступа к файловой системе в Linux.