Категория: Доступ и аутентификацияОбновлено 2026-10-27

UID 0

UID 0 это идентификатор пользователя, который в Linux имеет root, поэтому любая учётная запись с UID 0 обладает теми же правами, что и root, независимо от имени. Лишние учётные записи с UID 0 частый способ создать скрытую backdoor учётную запись администратора.

Сравнение аудита по имени, который пропускает скрытую учётную запись с UID 0, и фильтра по полю UID, который её находит
Любая учётная запись с UID 0 имеет права root, поэтому аудит проверяет ID, а не имя.

Почему имя пользователя не имеет значения

Linux не проверяет буквальную строку "root" для предоставления прав root, он проверяет, равен ли ID пользователя 0. Любой, кто создаст вторую учётную запись с UID 0, под любым именем, создаст второй аккаунт root с идентичными правами.

Почему это важно при аудите

Аудит пользователей, который ищет только учётные записи с буквальным именем "root", полностью пропустит переименованную или дублированную учётную запись с UID 0, а это именно тот механизм закрепления в системе, который может оставить злоумышленник с предыдущим root-доступом.

Если вы подозреваете скрытую учётную запись с правами root, что и в каком порядке проверять, разобрано здесь: руководство по реагированию на взлом сервера.

Чтобы проверить и сократить круг тех, кто владеет root на всём сервере, см. пользователи, sudo и минимальные привилегии.

Как вывести все учётные записи с UID 0

Числовой идентификатор пользователя хранится в третьем поле каждой строки /etc/passwd, разделённом двоеточиями, как описано на странице руководства passwd(5). Фильтруйте по этому полю, а не ищите имя "root":

awk -F: '($3 == 0) {print $1}' /etc/passwd
getent passwd | awk -F: '($3 == 0) {print $1}'

Вторая команда охватывает и записи из LDAP или SSSD, которых нет в локальном файле. На здоровом сервере выводится ровно одно имя, root. Запускайте проверку после каждого инцидента и по расписанию, потому что разовый аудит не заметит запись, добавленную на следующей неделе.

Что делать, если появилась вторая запись

Не удаляйте строку сразу. Неожиданная запись с UID 0 означает, что кто-то с root-доступом уже был здесь, поэтому считайте это инцидентом: определите, когда запись добавлена, командой stat /etc/passwd, проверьте authorized_keys и историю командной оболочки этой записи, просмотрите недавние входы и поищите другие способы закрепления. Порядок действий описан в руководстве по реагированию на взлом. После этого аудит минимальных привилегий покажет, как оставить root только одной записи, которой он нужен.

Связанные термины: Вход под root, authorized_keys, Мониторинг целостности файлов, Реагирование на инциденты, Принцип минимальных привилегий, /etc/passwd, sudoers, sudo (выполнение команд с правами root).

Часто задаваемые вопросы

Как проверить наличие дополнительных учётных записей с UID 0?

Изучите файл /etc/passwd напрямую и посмотрите на третье поле каждой строки, это и есть UID, не доверяя только именам учётных записей.

Бывает ли легитимной ситуация с двумя учётными записями UID 0?

На практике нет. Любую вторую учётную запись с UID 0 стоит считать подозрительной, пока не доказано обратное.

Убирает ли отключение sudo права root у учётной записи с UID 0?

Нет. Sudo является отдельным, дополнительным механизмом временного предоставления прав root; учётная запись с UID 0 уже имеет полные права независимо от настроек sudo.

Можно ли увидеть записи с UID 0, которых нет в /etc/passwd?

Да, если система использует службу каталогов. Выполните getent passwd и отфильтруйте третье поле по значению 0: так будут видны и записи из LDAP или SSSD, и локальные.

Является ли сама учётная запись root риском?

Она должна существовать, но быть единственной с UID 0, а прямой вход root по SSH должен быть отключён, чтобы администраторы работали под именными записями с sudo.

Хотите увидеть, в каком состоянии ваш сервер?

Запустите бесплатную read-only проверку сервера или откройте Security Lab и посмотрите цикл обнаружение, сдерживание, восстановление, проверка в действии.

Получить бесплатную проверку сервераОткрыть Security Lab