Los usuarios no aparecen en / etc / passwd en Mac OS X

29

Al examinar el /etc/passwdarchivo, debería obtener una lista de todos los usuarios del sistema. Sin embargo, cuando descargo el passwdarchivo en Mac OS X, no veo mi nombre de usuario actual, pero muchas entradas como estas:

  _xgridagent: *: 86: 86: Agente Xgrid: / var / xgrid / agent: / usr / bin / false
  _appowner: *: 87: 87: Propietario de la aplicación: / var / empty: / usr / bin / false
  _windowserver: *: 88: 88: WindowServer: / var / empty: / usr / bin / false
  _spotlight: *: 89: 89: Spotlight: / var / empty: / usr / bin / false
  _tokend: *: 91: 91: Token Daemon: / var / empty: / usr / bin / false

¿Cómo puedo iniciar sesión en el shell con mi nombre de usuario y ver ese nombre de usuario cuando lo hago who?

poseid
fuente

Respuestas:

25

El /etc/passwdarchivo solo se consulta cuando el sistema operativo está en modo de usuario único. La ubicación "estándar" para la información de la cuenta en OS X es DirectoryService.

Prueba man DirectoryServicepara más información.

El siguiente bloque de comentarios aparece en la parte superior de mi archivo de contraseña:

##
# User Database
# 
# Note that this file is consulted directly only when the system is running
# in single-user mode.  At other times this information is provided by
# Open Directory.
#
# This file will not be consulted for authentication unless the BSD local node
# is enabled via /Applications/Utilities/Directory Utility.app
# 
# See the DirectoryService(8) man page for additional information about
# Open Directory.
##

En versiones recientes de OS X Directory Utility se ha movido a /System/Library/CoreServices/Directory Utility.

Steve Weet
fuente
Fui a buscar algo así (Utilidad de directorio), y no está allí en mi instalación de Snow Leopard ... alguna idea de lo que me podría estar perdiendo, ¿cómo llegó allí en la suya?
Jonathan Leffler
Hmmm ... Apple dice que " Mac OS X v10.5 incluye dos utilidades que se utilizan para unir las computadoras a Microsoft Active Directory. Directory Utility es una aplicación, y dsconfigad es una utilidad de línea de comandos a la que se accede a través de Terminal. Ambas pueden usarse para configurar el Conector de Active Directory en Directory Utility. "
Jonathan Leffler
No está instalado en la ubicación anunciada, ni aparece en el centro de atención. Parece que mi archivo de contraseña me está mintiendo.
Steve Weet
Mi archivo de contraseña dice el mismo fib. Me he encontrado dsconfigad.
Jonathan Leffler
2
Se agregó la nueva ubicación de la utilidad de directorio.
Alan Shutko
10

Hay un conjunto de servicios de directorio que guarda la información. Hay una serie de herramientas de línea de comandos ( dsclpara una) para manipularlas (duro) o puede usar las Preferencias del sistema para manejar algunas de ellas.

Jonathan Leffler
fuente
4

OS X no utiliza los archivos UNIX / LINUX / etc / passwd. En cambio, lo almacena en NetInfo. El comando utilizado para interactuar con NetInfo es la utilidad de comando del servicio de directorio, o dscl.

No estoy familiarizado con los comandos, pero estoy seguro de que un simple man dsclno haría daño a nadie.

Sean
fuente
2
NetInfo fue reemplazado por Directory Services a partir de Mac OS X 10.5 y posterior.
Chealion
1

Me doy cuenta de que esto no responde directamente a la pregunta, pero creo que muchos de los que se encuentran con esta pregunta solo querrán saber cómo hacer una consulta simple para encontrar información del usuario desde la línea de comandos. Para otros a lo largo de este camino que solo necesitan ver una configuración similar a los comandos estándar de Unix, encontré que este comando simple es útil.

dscl . -read /Users/<putusernamehere> UniqueID PrimaryGroupID NFSHomeDirectory UserShell

También puedes hacer:

dscl . -read /Users/<putusernamehere>

Para ver todo, pero tenga cuidado, volcará una versión hexadecimal de la foto del usuario en la pantalla. Si necesita otros componentes, es útil ver qué hay si puede evitar el elemento JPEGPhoto.

Isaac Egglestone
fuente