Идентификатор пользователя


В Unix-подобных операционных системах пользователи идентифицируются идентификаторами пользователя (англ. User identifier, UID).

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

Множество допустимых значений UID зависит от системы; в общем случае UID допускает использование значений от 0 до 65535 с некоторыми оговорками:

Значение UID ставится в соответствие пользователю в файле /etc/passwd. Файлы теневого пароля и Network Information Service также используют числовые UID. Идентификатор пользователя-владельца является необходимым атрибутом файла файловых систем Unix и процессов.

Некоторые операционные системы могут поддерживать 16-битные UID, что делает возможным создание 65536 уникальных идентификаторов, хотя современные системы с поддержкой 32-битных UID могут иметь 4,294,967,296 (232) различных значений идентификаторов.