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
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.
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
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
Acho que você está procurando getent
getent passwd username | cut -d: -f7