Linux:Рецепты/Особые режимы разрешений

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

Проверка/Оформление/Редактирование: Мякишев Е.А.


Особые режимы разрешений

Проблема

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

Решение

Режим sticky bit применяется к каталогам с файлами, принадлежащими разным пользователям, чтобы не позволить пользователям перемещать, переименовывать или удалять файлы, которыми они не владеют:

chmod -v 1770 foo
Примечание

Режим sticky bit (бит закрепления, или «липкий» бит) - бит ограничения возможности удаления. Этот бит запрещает непривилегированным пользователям удалять или переименовывать файл в каталоге,если он не принадлежит им.

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

stat --format=%a:%A:%U:%G /tmp

Режим setuid применяется к выполняемым файлам, чтобы повысить привилегии пользователя, запускающего этот файл, до уровня привилегий владельца файла:

chmod -v 4770 foo
Примечание

setuid расшифровывается как set user identification («установить идентификатор пользователя»).

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

chmod -v 2770 foo
Примечание

setgid расшифровывается как set group user identification («установить идентификатор группы пользователей»).

Примечание

Режим setgid также может применяться к выполняемым файлам, чтобы изменить эффективную группу на группу, владеющую файлом.

Примечание
  • Режим setuid применяется к выполняемым файлам.
  • Режим setgid применяется к каталогам и выполняемым файлам.
  • Режим sticky bit применяется только к каталогам.
Восьмеричные значения полей
Режим Специальные режимы Владелец Группа Остальные
Чтение 4 4 4
Запись 2 2 2
Выполнение 1 1 1
setuid 4
setgid 2
sticky bit 1
Отсутствие разрешений 0 0 0 0
Значения sticky bit, setgid, setuid
Режим Восьмеричное значение
Все биты сброшены 0
Установлен sticky bit 1
Установлен setgid 2
Установлены sticky bit и setgid 3
Установлен setuid 4
Установлены sticky bit и setuid 5
Установлены setgid и setuid 6
Установлены sticky bit, setgid и setuid 7
Разрешения для файлов
Разрешение Описание
7 Чтение, запись, выполнение. Каталоги отличаются от файлов и для всех каталогов требуется установить бит выполнения. Без установленного бита выполнения никто не сможет войти в каталог. Сценарии и двоичные команды должны иметь установленный бит выполнения, или они будут интерпретироваться как обычные файлы
6 Чтение и запись
5 Чтение и выполнение.
4 Чтение
3 Запись и выполнение
2 Запись
1 Выполнение
0 Полное отсутствие разрешений

См.также

Внешние ссылки