Верните оболочку по умолчанию для каждого пользователя

Верните оболочку по умолчанию для каждого пользователя

Я пытаюсь собрать единую команду, которая будет отображать оболочку по умолчанию каждого пользователя. Изучая, я в основном могу найти команды для изменения оболочки по умолчанию, например, chsh -s /bin/kshно не для выполнения текущей задачи.

Кто-нибудь знает, как это можно сделать на CentOS?

решение1

Другой способ сделать это

getent passwd | cut -d: -f1,7

решение2

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

Имя пользователя хранится в :отдельном первом поле, а оболочка входа в систему — в седьмом (последнем) поле.

Поэтому вы можете использовать awkдля печати полей небольшое форматирование между ними для красоты:

awk -F':' '{ print $1 " " FS " " $NF }' /etc/passwd

Если вы используете такие сервисы, ldapкоторые не используют локальную файловую систему, вы можете использовать getent passwdследующую команду nsswitch, чтобы получить информацию, а затем использовать awkее:

getent passwd | awk -F':' '{ print $1 " " FS " " $NF }'

Пример:

% awk -F':' '{ print $1 " " FS " " $NF }' /etc/passwd
root : /bin/bash
daemon : /usr/sbin/nologin
bin : /usr/sbin/nologin
sys : /usr/sbin/nologin
sync : /bin/sync
games : /usr/sbin/nologin
man : /usr/sbin/nologin
lp : /usr/sbin/nologin
mail : /usr/sbin/nologin

решение3

Эта информация хранится в /etc/passwd:

cut -d: -f1,7 /etc/passwd

Связанный контент