script crear usuarios desde archivo

perez_chuck

Buenas,

estoy intentando crear usuarios desde una lista contenida en un archivo, y ando aún bastante pez en bash.
El id del usuario debe seguir la convención: Paco Rubio -> userid: prubio.

He empezado por algo sencillo pero aún así tengo problemas:

#!/bin/bash

while read line
do
line = 'echo $line |cut -f2' 
adduser line
passwd line
done < users.dat

Al ejecutarlo con sudo ./script1.sh me da error de comando no encontrado.

Edit: me he dado cuenta de que no puedo asignarle permisos de ejecución al script, alguna sugerencia?

Gracias ;)

Sandevil

Por donde empezamos...

Por lo pronto, para referirte a una variable tienes que usar el $(excepto en la declaracion).
Para ejecutar un "comando" se usa la `(tilde francesa(?))y no el ' (apostrofe ingles).
No me queda claro que es lo que quieres cortar exactamente, imagino que el prubio, así que al cut tendrías que indicarle el delimitador, para que te separe por campos (ej cut -d":" -f2 te devolvería el campo prubio)
El passwd funciona de manera interactiva, asi que para usarlo en un script automatizado hay que hacerle una pequeña ñapa(añadiendo --stdin, y pasandole el pass con una pipe), suponiendo que el usuario y la contraseña coinciden.
.

#!/bin/bash

while read line
do
line = `echo $line |cut -d ":" -f2` 
adduser $line
echo $line | passwd --stdin $line
done < users.dat

Para el tema de permisos, chmod u+x script1.sh, o ejecutalo poniendo sh archivo (si estas en la misma carpeta claro). Por otro lado, con el usuario root si quieres que funcione(sudo creo que funciona).

P.D.:El fichero users.dat tiene que terminar en una linea en blanco. Si no, el while ignora la ultima linea.

1

Usuarios habituales

  • Sandevil
  • perez_chuck

Tags