Ідентифікатор користувача

Ідентифікатор користувача (англ. User ID або user identifier) – ідентифікатор користувача в операційній системі Unix та їй подібних. Зберігається в облікових записах користувачів в файлі паролів (/etc/passwd).

Операційна система розпізнає користувача саме за його UID (а не, наприклад, за логіном). UID також використовується в мета-даних файлів і процесів, завдяки чому система взмозі визначити їх належність окремому користувачеві.

В багатьох[скільки?] ОС існує можливість створювати два облікові записи користувача з різними логінами, але однаковими UID; в результаті два логіни мають однакові права, оскільки з точки зору системи вони не відрізняються, бо мають однаковий UID. Цим можуть зловживати шахраї: проникнувши в систему та отримавши права root, зловмисник може створити собі обліковий запис UID=0, щоб потім повертатися в систему під логіном, не викликаючи підозри.

Величина допустимих значень UID залежить від системи; загалом UID допускає використання значень від 0 до 65535 з деякими винятками:

  • Суперкористувач завжди має UID, що дорівнює (0).
  • Користувачу nobody зазвичай присвоюється найбільший серед можливих UID (протилежний суперкористувачу), або один із системних UID.
  • UID з 1 по 100 за згодою зарезервовані для потреб системи; деякі посібники рекомендують резервувати UID з 101 по 499 (в Red Hat) або навіть 999 (в Debian).

Ідентифікатор чинного користувача ред.

Ідентифікатор збереженого користувача ред.

Ідентифікатор збереженого користувача (suid) використовується коли програма, яка працює з підвищеними привілеями тимчасово потребує зробити непривілейовану роботу: змінює euid з привілейованого значення (зазвичай root) на певний непривілейований та робить копію привілейованого ідентифікатора користувача в слот suid. Пізніше, він може встановити свій euid назад до suid (непривілейований процес може задати euid тільки три значення: ruid, fsuid та euid, - тобто без змін) щоб відновити свої привілеї.

Ідентифікатор користувача файлової системи ред.

Linux також має ідентифікатор користувача файлової системи (fsuid) який використовується спеціально для доступу до контролю файлової системи. Він збігається із euid, якщо не спеціально встановлений інакше. Це може бути ідентифікатор суперкористувача тільки якщо ruid, suid та euid є суперкористувачами. Якщо був змінений euid, то ці зміни поширюються і на fsuid.

Мета fsuid дозволяти програмам (напр. NFS сервер) лімітувати самих себе у правах відносно файлової системи певними наданими uid без надання цьому uid дозволу надсилати їм сигнали. Починаючи з kernel 2.0, використання fsuid не є необхідністю тому, що Linux дотримується правил надсилання сигналів SUSv3, проте fsuid залишається з міркувань сумісності.

Ідентифікатор реального користувача ред.

Ідентифікатор реального користувача (ruid) і ідентифікатор реальної групи (rgid) визначають реального власника процесу і впливають на права для передачі сигналів. Процес без прав суперкористувача може сигналізувати іншому процесу, тільки якщо відправники реальний або чинний UID збігаються з реальним або збереженим UID отримувача. Оскільки дочірні процеси успадковують повноваження від батьківського, вони можуть сигналізувати один одному.

Див. також ред.