sábado, 23 de noviembre de 2013

Creación masiva de usuarios

Cuando se instala un servidor de ficheros, de FTP o similar, uno de los pasos posteriores consiste en crear un número razonablemente alto de usuarios en nuestro sistema Linux. Veamos una forma asequible de conseguir esto.

Crearemos un fichero de texto, usuarios.txt en nuestro caso, en el que cada linea corresponderá a un usuario:

login01:password01:1001:1001:Nombre del usuario 01:/var/ftp/:/bin/false
login02:password02:1002:1002:Nombre del usuario 02:/var/ftp/:/bin/false
login03:password03:1003:1003:Nombre del usuario 03:/var/ftp/:/bin/false
[...]

Los campos, separados por ":", significan lo siguiente:

  • login-01: el login del usuario que se quiere crear
  • password01: el password de dicho usuario, en texto claro
  • 1001: ID que va a tener el usuario. Tendremos que llevar cuidado para no elegir uno en uso (ver fichero /etc/passwd para comprobar los que están en uso)
  • 1001: ID del grupo al que va a pertenecer el usuario. Tendremos que llevar cuidado para no elegir uno en uso (ver fichero /etc/group para comprobar los que están en uso)
  • Nombre del usuario 01: Nombre completo del usuario
  • /var/ftp/: Directorio home del usuario. Este ejemplo podría ser adecuado para crear usuarios destinados a usar un servicio FTP.
  • /bin/false: Shell que usará el usuario al logarse en el sistema. En caso de usuarios que solo deban conectarse por FTP o por SAMBA podría ser adecuado, pues no permite acceder a un shell. En caso de necesitar shell, se podría poner /bin/bash o cualquier otro.

Y por último, hacemos la magia:

# newusers usuarios.txt

Todos los usuarios serán creados con los datos especificados. Y además, podemos guardarnos este fichero a modo de backup, por si el servidor se fastidia y hay que montar uno similar.

Comentar que esta forma de crear usuarios masivamente viene muy bien para ser usada con algún script que genere usuarios y contraseñas (aleatorias u obtenidas de una base de datos).

Como pega, si los usuarios se están creando para que accedan por SAMBA al servidor, habrá que hacer por cada uno de ellos un smbpasswd -a login01 para crearles la contraseña y permitirles el acceso vía SAMBA.