Retornar o shell padrão de todos os usuários

0

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?

    
por MarksCode 03.10.2016 / 02:46

3 respostas

5

Outra maneira de fazer isso

getent passwd | cut -d: -f1,7

    
por 03.10.2016 / 02:53
3

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
    
por 03.10.2016 / 02:53
2

Essa informação é armazenada em / etc / passwd:

cut -d: -f1,7 /etc/passwd
    
por 03.10.2016 / 02:49

Tags