¿Cómo puedo enumerar todas las cuentas de usuario en el terminal?

71

¿Cómo puedo enumerar todas las cuentas de usuarios locales en el Terminal (ya sea que haya iniciado sesión o no?) Los comandos users o who no proporcionan esta información. La versión de OS X es 10.6.8.

He visto este comando sugerido - dscacheutil -q group

Pero solo enumera grupos de usuarios de dominio y cuentas no locales.

    
pregunta codecowboy 01.11.2011 - 13:57

7 respuestas

64

¿Qué tal

dscacheutil -q user | grep -A 3 -B 2 -e uid:\ 5'[0-9][0-9]'
    
respondido por el Kevin 01.11.2011 - 14:32
37

Prueba este. Lo usé para encontrar la cuenta oculta perdida.

dscl . list /Users | grep -v '^_'
    
respondido por el user41486 09.02.2013 - 13:29
9

Las cuentas de usuario desde 10.6 están siendo administradas por OpenDirectory. Los archivos de fondo relacionados con los usuarios de OpenDirectory están aquí:

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

La ejecución de ls * en este directorio enumerará todos los usuarios locales registrados en el sistema. La ejecución de plutil -p <file>.plist le permitirá leer algunas propiedades para una cuenta de usuario específica (es decir, la ruta del directorio de inicio actual).

Esto es bastante indocumentado, así que acepto votos negativos. Sin embargo, este método se puede utilizar para inspeccionar un sistema que no se está ejecutando y para el cual el usuario solo tiene una imagen de disco fuera de línea.

    
respondido por el antonone 26.01.2015 - 10:41
4

dscacheutil devuelve más que solo usuarios locales, por ejemplo, cualquier usuario que haya consultado Servicios de Directorio también se muestra.

He encontrado esto más útil:

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

Aunque también devuelve los gustos de daemon , nobody y root .

    
respondido por el chymb 19.06.2013 - 13:36
3

JMTCW para recrear una línea de comando amigable /etc/passwd equivalente (aunque no exactamente en el mismo orden):

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

O si prefiere una salida separada por espacios (pero el análisis del campo GECOS será un poco más complicado:

dscacheutil -q user |
    cut -d: -f2 |\
    paste -d " "  - - - - - - - -
    
respondido por el don 05.02.2017 - 13:13
1

Si no se movió ningún directorio de inicio de usuario, lo hará ls /users . Excepto que también listará directorios como 'Compartido'.

    
respondido por el iskra 01.11.2011 - 14:36
-3

También puedes escribir:

who que te dice quién ha iniciado sesión y de dónde vienen. Es útil si está buscando a alguien que esté físicamente en el mismo edificio que usted, o en algún otro lugar en particular.

w que te dice quién está conectado y qué están haciendo. Especialmente útil: la parte 'inactiva'. Esto le permite ver si en realidad están sentados allí escribiendo sus teclados en este momento.

    
respondido por el Jordan 24.08.2016 - 06:26

Lea otras preguntas en las etiquetas