Inicio arrow Solo Mac arrow Añadir y Borrar cuentas de usuario desde Terminal
21 de noviembre de 2008
 
 
Añadir y Borrar cuentas de usuario desde Terminal PDF Imprimir E-mail
Valoración del Usuario: / 3
PobreMejor 
Añadir y Borrar cuentas de usuario desde Terminal

He de reconocer que añadir usuarios en OSX desde el terminal es mucho más dificil de lo que es en Linux, pero este script simplifica mucho la vida.

Guárdalo, dale permisos de ejecución (mira este artículo) y ejecútalo en un shell de root (en una terminal escribe "sudo bash", esto hará que se abra un terminal en modo root).

En MacOSX, añadir un usuario no es otra cosa más que realizar entradas en la base de datos NetInfo (base de datos del sistema como el famoso registro de Windows). Estas entradas pueden llevarse a cabo de muchas maneras, entre ellas con el comando nicl y niload. La verdad es que es un poco complicado pero al mismo tiempo es una manera bastante inteligente de gestionar la información del sistema.

Desgraciadamente este script no crea cuentas de mail y otras cosas (quotas de disco, grupo primario con el mismo nombre del usuario, etc.). El directorio personal es creado en /Users y rellenado con las carpetas y archivos esenciales en español (pudiendo elegir otros idiomas) con el comando ditto (ditto sirve para copiar archivos y carpetas). Por defecto, el sistema no creará el directorio personal hasta que el usuario entre por primera vez en el sistema. El usuario es asignado por defecto al grupo 20 (staff o grupo comodín) como grupo primario (lo cual no está mal y puede dejarse así).


#!/bin/sh
echo “Nombre de Usuario en el Sistema:”
read newuser
echo “Nombre completo del usuario $newuser:”
read long_name
echo “Tratar a $newuser como administrador (s/N)?”
read is_admin
echo “Donde quieres su directorio Personal?”
read homedir
echo “Activo acceso FTP para el usuario (s/N)?”
read siftp
new_uid=`nidump passwd . | awk -F: ‘{print $3f}’ | sort -n|tail -1`
new_uid=`expr $new_uid + 1`
nicl . -create /users/$newuser
nicl . -create /users/$newuser uid $new_uid
nicl . -create /users/$newuser realname “$long_name”
nicl . -create /users/$newuser passwd “”
nicl . -create /users/$newuser gid 20
nicl . -create /users/$newuser shell “/bin/bash”
nicl . -create /users/$newuser home “$homedir”
nicl . -create /users/$newuser _writers_passwd $newuser
passwd $newuser
ditto /System/Library/User\ Template/Spanish.lproj $homedir
chown -R $newuser:staff $homedir
nicl . -read /users/$newuser
if [ “$is_admin” = S -o “$is_admin” = s ]
then
nicl . -append /groups/wheel users $newuser
nicl . -append /groups/admin users $newuser
nicl . -read /groups/wheel
nicl . -read /groups/admin
fi

if [ “$siftp” = S -o “$siftp” = s ]
then
sharing -a $homedir -F $newuser -s 010
fi

También es posible programar las entradas de Netinfo a mano para crear usuarios. Veamos los pasos:

Con el comando:

$ echo 'alberto::512:512::0:0:Alberto Corbí:/Users/alberto:/bin/bash' | sudo niload -v passwd /

repoblamos Netinfo con la información mínima de un usuario (su nombre de acceso, nombre completo, directorio personal, terminal por defecto, etc). Quizás os habéis dado cuenta de que se utilzia una sintaxis muy parecida a la del fichero /etc/passwd de Linux (se utilizan dos puntos “:” para separar los campos).

Cada campo entre (1:2:3:4:5:6:7:8:9:10) contiene la siguiente información:

  1. Nombre de usuario
  2. Contraseña. Puede especificarse aquí o con el comando passwd.
  3. Número de identificación del usuario (UID). Si se deja vacío, el sistema asigna uno adecuado y automáticamente.
  4. Número de indentificación del grupo del usuario por defecto (GID). Si se deja vacío, el sistema asigna el mismo que el UID. Puede especificarse aquí el valor 20 (grupo staff, es decir, un grupo comodín).
  5. Comentario, puede dejarse vacío.
  6. Clase de usuario: vacío también.
  7. Tiempo de expiración de la contraseña. Tampoco se usa y puede dejarse vacío.
  8. Nombre completo del Usuario.
  9. Path hasta el directorio personal del usuario.
  10. Intérprete de comandos por defecto.

El UID y el GID suele tener el mismo valor y está por arriba de 500 (no en el caso de script anterior, donde todos los usuarios se crean con GID=20). Para ver los que hay disponibles y en uso, ejecutad:

$ nireport . /users name uid

Para cambiar la contraseña, utilizamos passwd

$ sudo passwd alberto

Como hemos dicho antes, el directorio personal no será creado hasta que el usuario entre por primera vez en el sistema.

Para borrar un usuario del sistema y su directorio personal:

$ sudo niutil -destroy / /users/emerson
$ sudo rm -rf /users/emerson

Más información aquí.

Fuente:

Technorati Tags:
>>

< Anterior   Próximo >



 
Top!
Top!