Existe um comando fácil de usar que eu possa usar para listar usuários em um console em um sistema Ubuntu?
Quando cat /etc/passwd
recebo uma lista de usuários difícil de ler. Seria bom ver uma lista em ordem alfabética, com entradas organizadas em colunas e nomes de grupos entre parênteses, ao lado dos IDs do grupo.
command-line
users
M. Dudley
fonte
fonte
cut
. Para alfabetizado, existesort
. Se você precisar dos nomes dos grupos, jogue com join (que pode realmente mostrar apenas um subconjunto de colunas, btw).Respostas:
Boa maneira de obter uma boa saída do arquivo / etc / passwd:
Agora você pode classificá-lo:
Com nomes de grupos na última coluna (sem parênteses):
fonte
n
opção.column -ts: /etc/passwd
funcionou bem.Se você tiver acesso root na máquina, poderá fazer o seguinte:
Como funciona
Torne-se root para ler o arquivo de sombra. Você só precisa de privilégios de root se quiser verificar se o usuário tem uma senha definida (usuário humano); caso contrário, você pode simplesmente em
cat /etc/passwd
vez desudo grep ...
:Mostrar apenas usuários com uma senha definida:
Classificar por nome de usuário:
Descarte todas as informações, exceto o nome de usuário:
Itere os nomes de usuário e o enriqueça com informações do grupo:
Formate a entrada em colunas:
Use vi para visualizar o resultado:
Se você não tem acesso root,
tente algo como isto:
Seu resultado é um pouco diferente, mas deixo como exercício para o leitor combinar as duas partes desta resposta em algo que se encaixa perfeitamente no trabalho. (Você simplesmente não ama
sed
?)fonte
No Ubuntu, pode ser o seguinte:
sete campos de / etc / passwd armazenados em $ f1, f2 ..., $ f7
fonte
Algo que eu faço e funciona para meus propósitos é
É verdade que isso realmente não fornece uma lista de usuários, mas uma lista dos diretórios pessoais e dos diretórios anteriores, mas qualquer comando que você deseja executar em um usuário que não existe terminal informará e poderá ser uma dica para remover o arquivo inicial que não possui um usuário ou o move!
fonte
Eu pensei que isso seria fácil
join
, masjoin
requer que os arquivos sejam classificados no campo de junção . Por isso, exigiu (?) Uma solução alternativa com arquivos temporários. A saída é classificada em usuário e exibe usuário, grupo e ID do grupo.Traduzir um personagem para outro com
tr
;sort
de acordo com um campo-chave com-k
, saída para arquivo-o
; junte em relação aos campos no primeiro (-1
) e no segundo (-2
) arquivo, produza determinados campos no primeiro arquivo (-o 1.1
) e no segundo (,2.1,2.3
).fonte
/tmp
seria melhor, porque a FHS afirma que/var/tmp
não será apagado nas reinicializações, o que realmente não precisamos.