Да, процесс суперпользователя может изменить свой реальный идентификатор пользователя и реальный идентификатор группы на любое желаемое значение. Значения в /etc/passwd
и /etc/shadow
являются конфигурацией того, какие значения должны быть установлены, но не ограничением возможных значений.
Это означает, что такие программы, как login
, будут считывать значения из файлов, поэтому файлы являются файлами конфигурации или входными файлами. Они не ограничивают возможности программы. Процесс суперпользователя может передать ядру любое значение, и ядро не будет проверять никакие файлы.
Программа может вызвать
setgid (54321);
setuid (12345);
и это будет работать, даже если ни один из идентификаторов не упоминается ни в одном файле.