The Geek Inside

Julio Carlos Sánchez Blog

adduser en Mac OS X

En ocasiones tenemos la necesidad de dar de alta un usuario por medio de la lÍnea de comandos, en la mayoria de unices lo hacemos con la ayuda del comando adduser, sin embargo en Mac OS X no existe este :S, esto tiene una razón: Mac OS X usa un sistema de directorios llamado Open Directory en el que se guarda y extrae información de administración del sistema y el mantenimiento de los usuarios se hace por herramientas diferentes entre las que se encuentran la opción de cuentas en las preferencias del sistema y el gestor de NetInfo ambas herramientas gráficas, por otro lado tenemos niutil y dscl los cuales son poderosas herramientas de línea de comando que nos permiten manejar la información contenida en el Open Directory.

A continuación les mostraré como dar de alta un usuario usando el comando dscl (para llevar a cabo esta tarea necesitamos ejecutar los siguientes comandos como root o en su defecto con la utilería sudo).

Lo primero que haremos es crear un grupo con el comando dseditgroup, este paso es opcional si es que se fuera asignar al usuario un grupo existente.

    sudo dseditgroup -o create -i 500 nuevogpo

A continuación creamos el usuario y le adicionamos los atributos que le indicarán al sistema el nombre real, su HOME, el shell que usará, el grupo principal al que pertenecerá, el ID del usuario y su password.

    Creamos el usuario
    sudo dscl / -create /Users/nuevousr
    sudo dscl / -append /Users/nuevousr RealName "Nuevo Usuario"
    sudo dscl / -append /Users/nuevousr NFSHomeDirectory /home/nuevousr
    sudo dscl / -append /Users/nuevousr UserShell /bin/zsh   
    sudo dscl / -append /Users/nuevousr PrimaryGroupID 500
    sudo dscl / -append /Users/nuevousr UniqueID 500
    sudo dscl / -passwd /Users/nuevousr PASSWORD

Y por último adicionamos el usuario al grupo al que pertenecerá, en este ejemplo usaremos el grupo que creamos en el primer paso.

    sudo dseditgroup -o edit -a nuevogpo -t user nuevousr    

Listo… hemos creado un usuario nuevo con la ayuda de dscl.

Hints

  • Si necesitamos dar de alta un usuario que no tenga HOME le asignamos al atributo NFSHomeDirectory el valor /var/empty
  • Si queremos es que no use ningún shell como en el caso de usuarios para bases de datos, etc. le asignamos al atributo UserShell el valor de /usr/bin/false

 |  Related posts

3 Comments so far

  1. rodrich September 22nd, 2007 11:06 pm

    Hola: He utilizado estos comandos para agregar un usuario nuevo, lo cierto es que ahora quiero eliminarlo del mismo modo (es decir por comandos) pero no se como hacerlo, ya que por la vista normal (preferencias del sistema->Cuentas) no logro visualizar el usuario creados con los comandos anteriores. Gracias

  2. The Geek Inside September 24th, 2007 9:11 am

    La manera más fácil de hacerlo es:

    sudo dscl / -delete /Users/nuevousr

    El comando dscl tiene muchas opciones las cuáles puedes ver tecleando:

    man dscl

  3. charlszone October 31st, 2008 9:14 am

    Hola,

    He probado los comandos que comentas en Leopard y obtengo “Data source (/) is not valid.” Si quito la barra obtengo “Cannot open remote host, error: DSOpenDirServiceErr”.

    La idea era crear un usuario y añadirlo al grupo admin pero no lo consigo.

    Gracias ;)

Leave a reply

Mexico