Como posso listar todas as contas de usuário no terminal?


74

Como posso listar todas as contas de usuário local no Terminal (conectadas ou não?) Os comandos usersou whonão fornecem essas informações. A versão do OS X é 10.6.8.

Eu vi esse comando sugerido - dscacheutil -q group

Mas ele lista apenas grupos de usuários do domínio e contas não locais.


11
Como usuário do AIX há muito tempo, com certeza sinto falta dos comandos de gerenciamento do sistema que eles inseriram no unix. Seria bom ter um usuário para esse fim.
bmike

Respostas:


68

E se

dscacheutil -q user | grep -A 3 -B 2 -e uid:\ 5'[0-9][0-9]'

Eu gosto dessa opção Ele retorna um monte de contas começando com um sublinhado, no entanto. Alguma maneira de filtrar isso? por exemplo _softwareupdate, _mysql
codecowboy 1/11/11

9
Canalize o resultado através de grepdscl . list /Users | grep -v ^_.*
user151019

Muito legal! Vou ter que lembrar deste.
daviesgeek

5
Também é fácil confirmar com a memória.
26413 Kelly


10

As contas de usuário desde 10.6 estão sendo gerenciadas pelo OpenDirectory. Os arquivos de back-end relacionados aos usuários do OpenDirectory estão aqui:

/var/db/dslocal/nodes/Default/users

A execução ls *neste diretório enumerará todos os usuários locais registrados no sistema. A execução plutil -p <file>.plistpermitirá que você leia algumas propriedades da conta de usuário especificada (ou seja, o caminho atual do diretório inicial).

Isso não é documentado, então eu aceito votos negativos. No entanto, esse método pode ser usado para inspecionar um sistema que não está em execução e para o qual o usuário possui apenas uma imagem de disco offline.


Eu gosto, mas é necessário o sudo / root para funcionar, o usuário administrador do std recebeu um erro de permissão. dscltrabalha para admin std.
JL Peyret

6

dscacheutil retorna mais do que apenas usuários locais, por exemplo, qualquer usuário que eu tenha consultado os Serviços de Diretório também mostre.

Eu achei isso mais útil:

dscl . list /Users | grep -v "^_"

Embora também retorne os gostos de daemon, nobodye root.


4

JMTCW para recriar um /etc/passwdequivalente amigável da linha de comandos (embora não exatamente na mesma ordem):

dscacheutil -q user |
    paste -d " "  - - - - - - - - |
    sed 's/^name: //;s/ [^[:space:]]*: /:/g'

Ou se você preferir uma saída separada por espaço (mas analisar o campo GECOS será um pouco mais complicado:

dscacheutil -q user |
    cut -d: -f2 |\
    paste -d " "  - - - - - - - -

2

Se nenhum diretório inicial do usuário foi movido, o ls /usersfará. Exceto que também listará diretórios como 'Compartilhado'.


2
Nunca faça isso. Há muito mais do que apenas Sharedisso pode estar lá.
Hamstergene #

-3

Você também pode digitar:

whoque informa quem está conectado e de onde vem. Útil se você estiver procurando por alguém que esteja fisicamente no mesmo prédio que você ou em algum outro local em particular.

wque informa quem está conectado e o que está fazendo. Especialmente útil: a parte "ociosa". Isso permite que você veja se eles estão realmente sentados digitando nos teclados no momento.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.