mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
Translated ['src/linux-hardening/privilege-escalation/euid-ruid-suid.md'
This commit is contained in:
parent
b75cee40c3
commit
8446c5cd3f
@ -5,18 +5,18 @@
|
||||
|
||||
### Змінні ідентифікації користувача
|
||||
|
||||
- **`ruid`**: **реальний ідентифікатор користувача**, що позначає користувача, який ініціював процес.
|
||||
- **`euid`**: Відомий як **ефективний ідентифікатор користувача**, він представляє ідентичність користувача, яку система використовує для визначення привілеїв процесу. Зазвичай `euid` відображає `ruid`, за винятком випадків, таких як виконання бінарного файлу з SetUID, коли `euid` приймає ідентичність власника файлу, надаючи таким чином певні операційні дозволи.
|
||||
- **`ruid`**: **реальний ідентифікатор користувача** позначає користувача, який ініціював процес.
|
||||
- **`euid`**: Відомий як **ефективний ідентифікатор користувача**, він представляє ідентичність користувача, яку система використовує для визначення привілеїв процесу. Як правило, `euid` відображає `ruid`, за винятком випадків, таких як виконання бінарного файлу з SetUID, коли `euid` приймає ідентичність власника файлу, надаючи таким чином певні операційні дозволи.
|
||||
- **`suid`**: Цей **збережений ідентифікатор користувача** є важливим, коли процес з високими привілеями (зазвичай працює як root) тимчасово повинен відмовитися від своїх привілеїв для виконання певних завдань, а потім знову відновити свій початковий підвищений статус.
|
||||
|
||||
#### Важлива примітка
|
||||
|
||||
Процес, що не працює під root, може змінювати свій `euid` лише для того, щоб відповідати поточному `ruid`, `euid` або `suid`.
|
||||
Процес, що не працює під root, може змінювати свій `euid` лише на відповідність поточному `ruid`, `euid` або `suid`.
|
||||
|
||||
### Розуміння функцій set\*uid
|
||||
|
||||
- **`setuid`**: На відміну від початкових припущень, `setuid` в основному змінює `euid`, а не `ruid`. Конкретно, для привілейованих процесів він вирівнює `ruid`, `euid` і `suid` з вказаним користувачем, часто root, ефективно закріплюючи ці ідентифікатори через переважаючий `suid`. Детальну інформацію можна знайти на [setuid man page](https://man7.org/linux/man-pages/man2/setuid.2.html).
|
||||
- **`setreuid`** та **`setresuid`**: Ці функції дозволяють тонке налаштування `ruid`, `euid` і `suid`. Однак їх можливості залежать від рівня привілеїв процесу. Для процесів, що не є root, зміни обмежуються поточними значеннями `ruid`, `euid` і `suid`. Натомість, процеси root або ті, що мають можливість `CAP_SETUID`, можуть призначати довільні значення цим ідентифікаторам. Більше інформації можна отримати з [setresuid man page](https://man7.org/linux/man-pages/man2/setresuid.2.html) та [setreuid man page](https://man7.org/linux/man-pages/man2/setreuid.2.html).
|
||||
- **`setuid`**: На відміну від початкових припущень, `setuid` в основному змінює `euid`, а не `ruid`. Конкретно, для привілейованих процесів він вирівнює `ruid`, `euid` і `suid` з вказаним користувачем, часто root, ефективно закріплюючи ці ідентифікатори через переважаючий `suid`. Детальні відомості можна знайти на [setuid man page](https://man7.org/linux/man-pages/man2/setuid.2.html).
|
||||
- **`setreuid`** та **`setresuid`**: Ці функції дозволяють тонке налаштування `ruid`, `euid` і `suid`. Однак їх можливості залежать від рівня привілеїв процесу. Для процесів, що не є root, зміни обмежуються поточними значеннями `ruid`, `euid` і `suid`. У свою чергу, процеси root або ті, що мають можливість `CAP_SETUID`, можуть призначати довільні значення цим ідентифікаторам. Більше інформації можна отримати з [setresuid man page](https://man7.org/linux/man-pages/man2/setresuid.2.html) та [setreuid man page](https://man7.org/linux/man-pages/man2/setreuid.2.html).
|
||||
|
||||
Ці функціональні можливості не призначені як механізм безпеки, а для полегшення запланованого операційного потоку, наприклад, коли програма приймає ідентичність іншого користувача, змінюючи свій ефективний ідентифікатор користувача.
|
||||
|
||||
@ -53,7 +53,7 @@
|
||||
- Поведінка щодо ідентифікаторів користувача не згадується явно, за винятком опції `-i`, що підкреслює збереження рівності `euid` та `ruid`.
|
||||
- Додаткова інформація доступна на [`sh` man page](https://man7.org/linux/man-pages/man1/sh.1p.html).
|
||||
|
||||
Ці механізми, які відрізняються за своєю роботою, пропонують різноманітні варіанти для виконання та переходу між програмами, з конкретними нюансами в тому, як управляються та зберігаються ідентифікатори користувача.
|
||||
Ці механізми, які відрізняються за своєю роботою, пропонують різноманітні варіанти для виконання та переходу між програмами, з конкретними нюансами в тому, як управляються та зберігаються ідентифікатори користувачів.
|
||||
|
||||
### Тестування поведінки ідентифікаторів користувача в виконаннях
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user