Outra maneira de fazer isso
getent passwd | cut -d: -f1,7
Estou tentando montar um único comando que exibirá o shell padrão de cada usuário. A partir da pesquisa, posso encontrar principalmente comandos para alterar o shell padrão, como chsh -s /bin/ksh
, mas não para executar a tarefa.
Alguém sabe como alguém pode fazer isso no CentOS?
Outra maneira de fazer isso
getent passwd | cut -d: -f1,7
Você pode analisar o arquivo /etc/passwd
, que contém o nome de usuário e a lista de shell de login, além de outras informações relevantes sobre todas as contas de usuário do sistema.
O nome de usuário é armazenado em :
separado primeiro e o login shell no sétimo (último) campo.
Assim, você pode usar awk
para imprimir os campos com um pouco de formatação entre os mais bonitos:
awk -F':' '{ print $1 " " FS " " $NF }' /etc/passwd
Se acontecer de você usar serviços como ldap
que não usa o sistema de arquivos local, você pode usar getent passwd
para seguir nsswitch
para obter as informações e usar awk
sobre 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
Essa informação é armazenada em / etc / passwd:
cut -d: -f1,7 /etc/passwd
Tags shell