Translated ['src/linux-hardening/privilege-escalation/euid-ruid-suid.md'

This commit is contained in:
Translator 2025-02-12 14:29:31 +00:00
parent b75cee40c3
commit 8446c5cd3f

View File

@ -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).
Ці механізми, які відрізняються за своєю роботою, пропонують різноманітні варіанти для виконання та переходу між програмами, з конкретними нюансами в тому, як управляються та зберігаються ідентифікатори користувача.
Ці механізми, які відрізняються за своєю роботою, пропонують різноманітні варіанти для виконання та переходу між програмами, з конкретними нюансами в тому, як управляються та зберігаються ідентифікатори користувачів.
### Тестування поведінки ідентифікаторів користувача в виконаннях