Existe uma maneira mais elegante de descobrir qual é o shell padrão de outro usuário?

1

Existe uma maneira mais elegante de descobrir qual é o shell padrão de outro usuário (supondo que eu tenha privilégios de root e usando o GNU / Linux)? Estou ciente de que posso obter a resposta procurando / parsing / greping / etc / etc / passwd, mas deve haver um utilitário (como 'id' ou 'chsh') que tenha um comutador que imprima essas informações para stdout .

Seria bom executar algo como id --shell username para obter a resposta instantaneamente.

EDIT: Eu vejo que as primeiras respostas à minha pergunta podem ser categorizadas em 'parsing / looking / greping' / etc / passwd, então eu gostaria de enfatizar que estou ciente de que existe Há muitas maneiras de fazer isso (shell on-liners, funções, scripts ...), mas não é isso que estou perguntando.

Gostaria de saber se algumas das ferramentas padrão que vêm pré-instaladas com a maioria das distribuições GNU / Linux ou ferramentas que fazem parte do coreutils têm esse recurso.

    
por Tubeless 04.07.2013 / 17:19

3 respostas

4

O comando finger relata o shell para um usuário com a opção -l

finger -l user

mas você ainda precisará fazer mais processamento, por exemplo

finger -l user | awk '/Shell:/ {print $4}'

se você quer apenas o campo shell

    
por 04.07.2013 / 17:38
0

Eu não sei de nenhum utilitário, mas adicionar essa função ao seu ~/.bashrc parece bastante elegante:

function usershell(){
 awk -F: -v name=$1 '$1==name{print $NF}' /etc/passwd
}

Você pode chamá-lo em um nome de usuário. Por exemplo:

$ usershell terdon
/bin/bash
    
por 04.07.2013 / 17:26
0

Acho que você está procurando getent

getent passwd username | cut -d: -f7
    
por 04.07.2013 / 18:08

Tags