87 votos

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

¿Cómo puedo listar todas las cuentas de usuario locales en Terminal (ya sea que estén conectadas 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 lista grupos de usuarios de dominio y cuentas no locales.

1 votos

Como usuario de AIX desde hace mucho tiempo, realmente echo de menos los comandos de gestión del sistema que integraron en su sistema Unix. lsuser sería bueno tenerlo para este propósito.

79voto

flipdoubt Puntos 4140

¿Qué tal si

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

0 votos

Me gusta esta opción. Devuelve un montón de cuentas que comienzan con un guion bajo, sin embargo. ¿Hay alguna manera de filtrar esto? por ejemplo, _softwareupdate, _mysql

14 votos

Pase el resultado a través de grep dscl . list /Users | grep -v ^_.*

0 votos

¡Muy genial! Tendré que recordar esto.

59voto

user41486 Puntos 131

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

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

3 votos

Eso es precisamente lo que @Mark dijo aquí.

0 votos

¿Cuál es el punto de las cuentas ocultas?

0 votos

Para ver también el uid, utiliza dscl . list /Users UniqueID | grep -v '^_'

12voto

antonone Puntos 140

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

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

Ejecutar ls en este directorio enumerará todos los usuarios locales registrados en el sistema. Ejecutar plutil -p .plist te permitirá leer algunas propiedades de la cuenta de usuario especificada (por ejemplo, la ruta del directorio principal actual).

Esto está bastante sin documentar, así que acepto las críticas negativas. Sin embargo, este método se puede utilizar para inspeccionar un sistema que no está en funcionamiento y para el cual el usuario solo tiene una imagen de disco sin conexión.

0 votos

Me gusta, pero se requiere sudo/root para que funcione, el usuario admin estándar obtuvo un error de permiso. dscl funciona para el usuario admin estándar.

0 votos

Gracias, estoy luchando para restablecer la contraseña de un colega y cada guía/instrucción en línea muestra el método antiguo que ya no funciona... incluso estaba cuestionando si el usuario estaba corrupto o simplemente faltaba... sin embargo, esto ha demostrado que el usuario está ahí. He estado buscando por más de una hora y esto me ha acercado un poco más, pero casi todos los sitios en Google muestran información desactualizada.

1 votos

Todo lo que está en ese directorio son archivos plist. Usar ls * no es necesario, ls por sí solo es suficiente. Dado que el directorio no es accesible por usuarios que no sean root, sudo ls /var/db/dslocal/nodes/Default/users/* fallará porque la expansión de comodines se realiza antes del comando sudo, mientras que sudo ls /var/db/dslocal/nodes/Default/users tendrá éxito.

8voto

chymb Puntos 196

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

He encontrado esto más útil:

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

Aunque también devuelve usuarios como daemon, nobody y root.

2voto

Igor Puntos 41

Si no se movieron los directorios de inicio de usuario, entonces ls /users lo hará. Excepto que también listará directorios como 'Shared'.

3 votos

Nunca hagas esto. Hay mucho más que solamente Compartido que puede estar allí.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X