Я нахожусь в процессе перехода на новый сервер, и у меня возник ряд проблем из-за отсутствия учетных записей пользователей (например, nginx, похоже, работает под пользователем nginx в новой системе www-data в старой системе).
Есть ли простой способ получить всю информацию об учетной записи пользователя / группы. (В идеале я хотел бы создать сценарий создания новых учетных записей с помощью Ansible, если это имеет значение).
Список всех пользователей и групп зависит от того, как настроена аутентификация.
Самыми основными являются /etc/passwd
и /etc/group
файлы, используемые для локальной аутентификации.
Использование этих файлов недостаточно для получения полного списка, когда данные пользователя / группы хранятся централизованно, например, в LDAP, NIS, Hesiod и т. Д.
Центральная аутентификация обычно настраивается в дополнении к в /etc/passwd
и /etc/group
файлы, позволяющие системе загружаться и работать в однопользовательском режиме с помощью файла конфигурации переключателя службы имен /etc/nsswitch.conf
Если настроен с NSS:
getent passwd
покажет все учетные записи пользователей: оба из /etc/passwd
и ваш центральный каталог пользователей.
getent group
покажет все группы.
Контролируя статус выхода getent
вы также узнаете, действительно ли вы перечислили всех пользователей / группы (код выхода 0
) или что вам чего-то не хватает (код выхода 3
указывает на базу данных, которая не поддерживает перечисление, и вам нужно будет использовать соответствующие инструменты для этой конкретной базы данных ...).
cat /etc/passwd # show all users
cat /etc/group # show all groups
Затем вы можете направить вывод в другие программы / сценарии для дальнейшей обработки.