Открыть сервисСервис

UID — уникальный идентификатор

UID (англ. User Identifier, «идентификатор пользователя») — уникальный числовой или буквенно-цифровой код, назначаемый пользователю, процессу, файлу или объекту в информационной системе для однозначной его идентификации. В операционных системах семейства UNIX и Linux UID — это численный идентификатор владельца файла или процесса, определяющий права доступа. В программировании и базах данных UID применяется как первичный ключ или внешний ключ для ссылок между объектами. В России аналогом UID часто выступает ИНН, СНИЛС и иные персональные идентификаторы, применяемые в государственных информационных системах.

UID в операционных системах UNIX и Linux

В UNIX-системах каждый пользователь при создании получает уникальное числовое значение — UID. Сопоставление имён пользователей и их UID хранится в файле /etc/passwd. Суперпользователь (root) имеет UID 0. Стандартные системные пользователи (демоны) в большинстве дистрибутивов Linux получают UID в диапазоне от 1 до 999, обычные (интерактивные) пользователи — от 1000 и выше (в некоторых системах от 500).

UID тесно связан с GID (Group Identifier) — идентификатором группы пользователя. Права доступа к файлам и каталогам определяются тройкой «владелец — группа — остальные», где для владельца и группы используются UID и GID соответственно. При обращении к файлу ядро сравнивает UID текущего процесса с UID владельца файла и на основании этого решает, разрешить или запретить операцию.

Команда id выводит UID текущего пользователя, whoami — имя, соответствующее текущему UID, su и sudo позволяют переключаться на учётную запись с другим UID. Смена UID существующего пользователя выполняется утилитой usermod -u.

UID в базах данных и программировании

В реляционных базах данных UID часто используется как первичный ключ таблицы — уникальное значение, однозначно определяющее строку. В отличие от естественных ключей (например, номер паспорта или ИНН), UID обычно генерируется автоматически и не несёт смысловой нагрузки, что позволяет избежать проблем при изменении атрибутов объекта.

Популярные схемы генерации UID:

  • UUID / GUID (Universally Unique Identifier) — 128-битное число, представленное в виде строки из 32 шестнадцатеричных цифр (например, 550e8400-e29b-41d4-a716-446655440000). Вероятность коллизии пренебрежимо мала, поэтому UUID может генерироваться независимо на разных узлах распределённой системы без центрального координатора.
  • Суррогатные ключи — последовательные целые числа (auto-increment), простые и эффективные, но раскрывающие количество записей и уязвимые при объединении таблиц из нескольких источников.
  • Составные ключи — комбинация нескольких полей, не являющаяся единым UID в строгом смысле.

В объектно-ориентированных языках (Java, C#, Python) для генерации UID применяются стандартные библиотеки: java.util.UUID, System.Guid, модуль uuid в Python.

UID в мобильных и веб-системах

Мобильные операционные системы присваивают каждому устройству или установке приложения собственный идентификатор. В iOS долгое время использовался UDID (Unique Device Identifier), после чего Apple заменила его на IDFV (Identifier for Vendors) и IDFV/IDFA для рекламных целей. В Android аналогом выступает Android ID, а также рекламный идентификатор Google Advertising ID. Эти идентификаторы используются для аналитики, персонализации рекламы и антифрод-систем, что неоднократно становилось предметом правовых споров о защите персональных данных.

В веб-разработке UID применяется в cookie, системах идентификации сессий, а также в DOM — атрибут id HTML-элемента должен быть уникален на странице и служит целью для ссылок, скриптов и стилей.

UID в государственных системах России

В России понятие «идентификатор» активно используется в государственных информационных системах. Единый идентификатор записи акта гражданского состояния (ЕЗАГС) — цифровой код, присваиваемый каждой записи о рождении, браке или смерти. В системе МИР (Многофункциональная информационная распределённая система) используется идентификатор, связывающий учётные записи различных ведомств. В Единой библиотечной системе и системе ЕАИС «Электронный бюджет» применяются собственные UID объектов.

Физическим лицам в России соответствуют ИНН (для налоговой отчётности), СНИЛС (для пенсионного и социального учёта) и полис ОМС. Каждый из этих номеров выполняет функцию уникального идентификатора в своей предметной области.

Принципы построения UID

Надёжный идентификатор должен удовлетворять ряду требований:

  • Уникальность — два разных объекта не должны иметь одинаковый UID.
  • Постоянство — UID не должен меняться в течение жизненного цикла объекта.
  • Неизменяемость — значение не должно зависеть от атрибутов объекта (адрес, имя), которые могут измениться.
  • Неинформативность — желательно, чтобы UID не раскрывал лишнюю информацию о объекте (дату создания, принадлежность к организации).

Нарушение этих принципов приводит к коллизиям, необходимости переписывать ссылки при изменении ключа и другим проблемам проектирования информационных систем.

Источники:

  • Таненбаум Э. Современные операционные системы. — СПб.: Питер, 2015.
  • Гарсия-Молина Х., Ульман Дж., Видом Д. Системы баз данных. Полное пособие. — М.: Вильямс, 2013.
  • RFC 4122: A Universally Unique IDentifier (UUID) URN Namespace.
  • Справочные материалы по Linux-системам (man-страницы id, passwd, usermod).
Заметили ошибку или не согласны с информацией в статье? Напишите нам support@bfometr.ru