Можно ли «скрыть» учетную запись из / etc / passwd?

Типичная система Linux не только учитывает фактического пользователя (пользователей) системы, но и различные системные учетные записи.

Есть ли файл типа /etc/passwd для демонов или другие средства, в которых может быть определена учетная запись?

Я слышал, что можно замаскировать учетную запись в качестве учетной записи службы, я пытаюсь найти такие учетные записи на компьютере.

4 Solutions collect form web for “Можно ли «скрыть» учетную запись из / etc / passwd?”

Пользователи Daemon и пользователи плоти и крови перечислены в одних и тех же файлах. «Файл типа /etc/passwd для демонов» – это /etc/passwd .

Формальных определений пользователей системы и пользователей нет. Ядру все равно (кроме предоставления пользователям большого количества привилегий с UID 0). Большинство команд администрирования тоже не заботятся. Некоторые типичные различия:

  • Человеческий пользователь имеет настоящее имя, например «John Doe», тогда как у пользователя системы есть описательное имя, например «Nasal daemon» или вообще нет.
  • Пользователь имеет реальную оболочку для входа (например, /bin/sh или /bin/bash или /bin/csh . Некоторые пользователи системы имеют оболочку (почти всегда /bin/sh ), другие – нет, в зависимости от того, как они предназначенный для использования (например, su foo требует, чтобы foo имел оболочку).
  • У пользователя-пользователя часто есть пароль – но это не всегда так, например, пользователь удаленного доступа может иметь только SSH-ключ. Обратите внимание, что в современных устройствах пароль не находится в /etc/passwd но в другом файле, например /etc/shadow .
  • Домашний каталог пользователя пользователя обычно находится в /home (или в каком-то конкретном месте), тогда как домашний каталог пользователя системы обычно не находится в /home и может не существовать (но есть исключения).
  • Большинство сайтов определяют диапазон идентификаторов пользователей для пользователей системы и непересекающийся диапазон для пользователей. Резервирование 100-65533 или 500-65533 или 1000-65533 является типичным, и большинство дистрибутивов настроено для начала размещения реальных идентификаторов пользователей от 500 или 1000.

На сайтах, где учетные записи распределяются между несколькими компьютерами, обычно имеется центральный сервер, содержащий списки пользователей, доступные через NIS или LDAP . Запись passwd в passwd /etc/nsswitch.conf указывает, где искать информацию о пользователе. Обычно у пользователей системы есть локальные /etc/passwd и реальные пользователи из всей сетевой базы данных, но иногда в базе данных сети есть системные пользователи (для обеспечения соответствия UID, что облегчает репликацию серверов и данных) и иногда в локальном файле есть человеческие пользователи (чтобы они входили в систему, даже когда сеть была закрыта).

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

Нет причин иметь отдельный файл определения пользователя. Пользователи системы и реальные пользователи не являются технически разделенными, но организационно: по диапазону, из которого берутся их UID. посмотрите файл /etc/login.defs . У моего openSUSE есть следующие записи:

 SYSTEM_UID_MIN 100 SYSTEM_UID_MAX 499 UID_MIN 1000 UID_MAX 60000 

Инструменты distro используют эти значения, чтобы разделить две группы. Но если вы создали учетную запись пользователя с UID 300, то она, вероятно, не будет отображаться в меню входа в систему, но вы можете использовать эту учетную запись, как и любой другой.

Если вы действительно хотите разделить пользовательские и системные учетные записи (чтение некоторых комментариев на другие сообщения, похоже, вам это интересно), вы можете оставить всех пользователей системы в базе files (например, / etc / passwd) и поместить людей пользователей во второй базе данных (вроде бы, если вы делали ldap).

Для этого вы можете использовать модуль Berkeley DB NSS (доступный во многих системах через дополнительный пакет glibc, называемый nss_db ). Я не уверен, какую ОС вы используете, но этот сайт предлагает некоторое представление о Linux: http://www.linuxfromscratch.org/hints/downloads/files/nss_db.txt

Это не для слабонервных, так как документация не очень богата, но было бы интересно поиграть, если вы хотите узнать больше о том, как работают такие вещи (предложение @Hauke ​​Laging о внедрении собственного отлично).

Большинство демонов работают от имени root, несколько (по соображениям безопасности, чтобы ограничить их способность к вреду) запускаются как их собственные пользователи. Они перечислены в /etc/passwd . Большинство дистрибутивов ограничивают UID «системного пользователя» некоторым значением, например 500 или 1000, поэтому дает ключ. Некоторые деамоны имеют записи GECOS (описание пользователя), в которых говорится «демон», другие – странные оболочки. Но есть и фантомные пользователи для NFS и других приложений.

  • Как я могу запустить сеанс «экрана» как пользователь без полномочий root
  • halt, poweroff, shutdown, reboot не требуют root?
  • Как установить разрешения в / sys / Permanent?
  • tar без сохранения пользователя
  • В nss ldap можно изменить фильтр доступа по умолчанию passwd?
  • Не удается SSH / FTP в новую учетную запись пользователя в Ubuntu?
  • Как работает обнаружение sudo / root-ness
  • Добавить пользователя и установить пароль с помощью Ansible
  • Лучший способ запустить службу как другого пользователя?
  • Не удалось войти в учетную запись: не удалось открыть сеанс
  • Как проследить процесс для оригинального пользователя?
  • Interesting Posts

    Как исправить это странное поведение с помощью ssh, gnome terminal и gnu screen, где функциональные клавиши F1 – F4 не принимаются?

    Невозможно загрузить модуль: не согласен с версией symbol module_layout

    запустить сценарий оболочки, откуда он прекратил выполнение

    Мусорные символы при использовании последовательного соединения через SSH-соединение с миникомпьютом / экраном

    Почему файловая система ext4 может быть сжата только тогда, когда она не установлена?

    Как удалить новую строку перед EOF в файле text / csv через bash

    Запустить сценарий оболочки после перезагрузки в beaglebone black

    Почему скомпилированные программы создают копию с ~?

    Корень и мой пароль одинаковы

    Ошибка kdb5_ldap_util с критической ошибкой

    Как перекрестно скомпилировать Chromium для ARM?

    Linux Mint Панель задач и значки исчезли

    Переименование пакетного файла: лучше, чем случайный идентификатор, чтобы предотвратить удаление файлов с повторяющимися именами файлов?

    репозитории rhel с gstreamer-plugins-уродливыми

    sed удаляет последнее пространство только в конце строки, в сочетании с awk

    Linux и Unix - лучшая ОС в мире.