Псевдопользователи в *NIX

Только пользователь root имеет для ядра Linux особый статус. Есть, однако, еще несколько псевдопользовательских учетных записей, которые применяются для системных целей. Эти фиктивные учетные записи можно идентифицировать по значениям UID, которые обычно меньше 100. Как правило, учетные записи с UID меньше 10 принадлежат системе, а значения UID от 10 до 100 отведены для псевдопользователей, связанных со специальными программами. Пароли этих псевдопользователей в файле /etc/shadow обычно заменяют звездочкой, чтобы нельзя было войти в систему под служебным именем. Чтобы защититься от средств атаки на основе дистанционного входа в систему (когда вместо паролей используются файлы SSH-ключей), укажите в качестве командных интерпретаторов (вместо /bin/bash или /bin/sh) вариант /bin/false или /bin/nologin.

Файлы и процессы, которые являются частью операционной системы, но не должны принадлежать пользователю root, иногда передаются во владение пользователям bin или daemon. Считается, что это поможет избежать риска, связанного с действиями от имени суперпользователя. Однако ввиду неубедительности подобной аргументации в современных системах используется просто учетная запись root.

В некоторых системах пользователь sys владеет специальными файлами (образами памяти ядра), которые хранятся в каталоге /dev. Доступ к этим файлам имеют лишь немногие программы, и все они изменяют текущий идентификатор пользователя на sys. Иногда вместо пользователя sys создается группа kmem или sys.

Сетевая файловая система — NFS (Network File System) — использует учетную запись nobody для представления суперпользователей в других системах. Чтобы лишить суперпользователей их исключительных прав, излишних в данном контексте, NFS должна на время сеанса удаленного доступа заменить нулевой идентификатор чем-то другим. Этой цели как раз и служит учетная запись nobody. В среде сервера NFSv4 эта учетная запись также применяется для удаленных пользователей, которые не имеют допустимые локальные учетные записи.

Пользователю nobody не нужны специальные права доступа, и он не должен владеть никакими файлами. Если бы ему принадлежали какие-то файлы, то над ними получили бы контроль суперпользователи, регистрирующиеся в удаленных системах.

Традиционно пользователю nobody соответствовал идентификатор -1 или -2, и это соглашение по-прежнему соблюдается в ядре Linux, где идентификатор этого пользователя равен 65534 (16-битовый беззнаковый эквивалент -2). В других дистрибутивах просто выбирается маленькое значение идентификатора (например, в Red Hat используется значение, равное 99), что при использовании 32-битовых идентификаторов пользователей более оправдано. В системах Solaris применяется значение идентификатора 60001, которое, по крайней мере, легко запомнить.

Единственный недостаток переопределения nobody-идентификатора состоит в том, что, судя по всему, команда exportfs не обращает внимания на файл passwd, поэтому с помощью опции anonuid ей нужно явно указывать о необходимости использования другого идентификатора для пользователя nobody.

 

Комментарии (0)

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.