Назад | Перейти на главную страницу

Простой способ получить все учетные записи пользователей

Я нахожусь в процессе перехода на новый сервер, и у меня возник ряд проблем из-за отсутствия учетных записей пользователей (например, 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

Затем вы можете направить вывод в другие программы / сценарии для дальнейшей обработки.