Linux:Рецепты/Особые режимы разрешений: различия между версиями
Myagkij (обсуждение | вклад) Нет описания правки |
Myagkij (обсуждение | вклад) Нет описания правки |
||
(не показано 9 промежуточных версий этого же участника) | |||
Строка 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 применяется к выполняемым файлам, чтобы повысить привилегии пользователя, запускающего этот файл, до уровня привилегий владельца файла: | ||
Строка 21: | Строка 31: | ||
chmod -v 4770 foo | chmod -v 4770 foo | ||
</syntaxhighlight> | </syntaxhighlight> | ||
{{Примечание1| | {{Примечание1| | ||
setuid расшифровывается как set user identification («установить идентификатор пользователя»). | |||
}} | }} | ||
Режим setgid применяется к каталогам: все вновь создаваемые файлы в этом каталоге будут принадлежать к той же группе, что и сам он. Это позволяет определить верные уровни владения файлами в общем каталоге: | |||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
chmod - | chmod -v 2770 foo | ||
</syntaxhighlight> | </syntaxhighlight> | ||
{{Примечание1| | |||
setgid расшифровывается как set group user identification («установить идентификатор группы пользователей»). | |||
}} | |||
{{Примечание1| | |||
Режим setgid также может применяться к выполняемым файлам, чтобы изменить эффективную группу на группу, владеющую файлом. | |||
}} | |||
{{Примечание1| | |||
* Режим setuid применяется к выполняемым файлам. | |||
* Режим 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 | |||
|- | |- | ||
| | | Установлен setuid || 4 | ||
|- | |- | ||
| | | Установлены sticky bit и setuid || 5 | ||
|- | |- | ||
| | | Установлены setgid и setuid || 6 | ||
|- | |- | ||
| | | Установлены sticky bit, setgid и setuid || 7 | ||
|} | |} | ||
Текущая версия от 21:39, 28 ноября 2023
Особые режимы разрешений
Проблема
Разрешить непривилегированным пользователям запускать команду, требующую повышенных привилегий, защитить файлы в каталоге, который является совместным для нескольких пользователей, или принудительно применить определенные разрешения к файлам в каталоге.
Решение
Режим sticky bit применяется к каталогам с файлами, принадлежащими разным пользователям, чтобы не позволить пользователям перемещать, переименовывать или удалять файлы, которыми они не владеют:
chmod -v 1770 foo
Режим setuid применяется к выполняемым файлам, чтобы повысить привилегии пользователя, запускающего этот файл, до уровня привилегий владельца файла:
chmod -v 4770 foo
Режим setgid применяется к каталогам: все вновь создаваемые файлы в этом каталоге будут принадлежать к той же группе, что и сам он. Это позволяет определить верные уровни владения файлами в общем каталоге:
chmod -v 2770 foo
Режим | Специальные режимы | Владелец | Группа | Остальные |
---|---|---|---|---|
Чтение | 4 | 4 | 4 | |
Запись | 2 | 2 | 2 | |
Выполнение | 1 | 1 | 1 | |
setuid | 4 | |||
setgid | 2 | |||
sticky bit | 1 | |||
Отсутствие разрешений | 0 | 0 | 0 | 0 |
Режим | Восьмеричное значение |
---|---|
Все биты сброшены | 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 | Полное отсутствие разрешений |
См.также
Внешние ссылки