Retornar o shell padrão de cada usuário

Retornar o shell padrão de cada usuário

Estou tentando montar um único comando que exibirá o shell padrão de cada usuário. Ao pesquisar, consigo encontrar principalmente comandos para alterar o shell padrão, como chsh -s /bin/kshmas não para executar a tarefa em questão.

Alguém sabe como alguém pode conseguir isso no CentOS?

Responder1

Outra maneira de fazer isso

getent passwd | cut -d: -f1,7

Responder2

Você pode analisar o /etc/passwdarquivo, que contém o nome de usuário e a listagem do shell de login, juntamente com outras informações relevantes sobre todas as contas de usuário do sistema.

O nome de usuário é armazenado :separadamente primeiro e o shell de login no sétimo (último) campo.

Então você pode usar awkpara imprimir os campos com um pouco de formatação entre eles para ficar mais bonito:

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

Se acontecer de você usar serviços como ldapesse que não usam sistema de arquivos local, você pode usar getent passwdo seguinte nsswitchpara obter as informações e, em seguida, usar awksobre isso:

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

Exemplo:

% 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

Responder3

Essas informações são armazenadas em /etc/passwd:

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

informação relacionada