Linux:Рецепты/Особые режимы разрешений: различия между версиями

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
Нет описания правки
Нет описания правки
 
(не показано 8 промежуточных версий этого же участника)
Строка 15: Строка 15:
chmod -v 1770 foo
chmod -v 1770 foo
</syntaxhighlight>
</syntaxhighlight>
{{Примечание1|
Режим sticky bit (бит закрепления, или «липкий» бит) - бит ограничения возможности удаления. Этот бит запрещает непривилегированным пользователям удалять или переименовывать файл в каталоге,если он не принадлежит им.
В качестве примера, можно привести каталог /tmp, который доступен для чтения и записи и содержит файлы, принадлежащие нескольким пользователям, а применение режима sticky bit к этому каталогу не позволяет пользователям перемещать, переименовывать или удалять файлы, которыми они не владеют, даже если у них есть права на запись для некоторых таких файлов:
<syntaxhighlight lang="bash">
stat --format=%a:%A:%U:%G /tmp
</syntaxhighlight>
}}


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


Режим setgid применяется к каталогам: все вновь создаваемые файлы в этом каталоге будут принадлежать к той же группе, что и сам он. Это отличный прием, позволяющий определить верные уровни владения файлами в общем каталоге:
{{Примечание1|
setuid расшифровывается как set user identification («установить идентификатор пользователя»).
}}
 
Режим setgid применяется к каталогам: все вновь создаваемые файлы в этом каталоге будут принадлежать к той же группе, что и сам он. Это позволяет определить верные уровни владения файлами в общем каталоге:


<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
Строка 29: Строка 43:


{{Примечание1|
{{Примечание1|
Для каталогов всегда должен быть установлен бит выполнения, который позволяет входить(или лучше сказать получить список содержимого каталога) в каталог с помощью команды cd или в диспетчере файлов.
setgid расшифровывается как set group user identification («установить идентификатор группы пользователей»).
}}
}}


Следующая команда применит одни и те же разрешения к существующему содержимому каталога благодаря параметру -R (recursive — «рекурсивно»):
{{Примечание1|
Режим setgid также может применяться к выполняемым файлам, чтобы изменить эффективную группу на группу, владеющую файлом.
}}


<syntaxhighlight lang="bash">
{{Примечание1|
chmod -R 0755 foo
* Режим setuid применяется к выполняемым файлам.
</syntaxhighlight>
* Режим setgid применяется к каталогам и выполняемым файлам.
* Режим sticky bit применяется только к каталогам.
}}


{| class="wikitable"
{| class="wikitable"
|+ Восьмеричные значения полей
|+ Восьмеричные значения полей
|-
|-
! Режим !! Владелец !! Группа !! Остальные
! Режим !! Специальные режимы !!Владелец !! Группа !! Остальные
|-
| Чтение || || 4 || 4 || 4
|-
| Запись || || 2 || 2 || 2
|-
| Выполнение || || 1 || 1 || 1
|-
| setuid || 4 ||  ||  ||
|-
| setgid || 2 ||  ||  ||
|-
| sticky bit || 1 ||  ||  ||
|-
| Отсутствие разрешений || 0 || 0 || 0 || 0
|}
 
{| class="wikitable"
|+ Значения sticky bit, setgid, setuid
|-
! Режим !! Восьмеричное значение
|-
| Все биты сброшены || 0
|-
| Установлен sticky bit || 1
|-
| Установлен setgid || 2
|-
| Установлены sticky bit и setgid || 3
|-
|-
| Чтение || 4 || 4 || 4
| Установлен setuid || 4
|-
|-
| Запись || 2 || 2 || 2
| Установлены sticky bit и setuid || 5
|-
|-
| Выполнение || 1 || 1 || 1
| Установлены setgid и setuid || 6
|-
|-
| Отсутствие разрешений || 0 || 0 || 0
| Установлены sticky bit, setgid и setuid || 7
|}
|}



Текущая версия от 21:39, 28 ноября 2023

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


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

Проблема

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

Решение

Режим 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 Полное отсутствие разрешений

См.также

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