Hola gente. Acá les dejo un Script que me desarrolle para generar automáticamente los grupos y usuarios de samba con su directorio personal.

Nombre del archivo: create_perfiles.sh
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | #!/bin/bash # # GNU bash, versión 4.1.7(1)-release # Script para generar los grupos y usuarios con sus correspondientes directorios y permisos # Autor Gonzalo Fleitas user='' passwd='' group='' directory='' echo "Agregando grupos..." for i in $(cat groups.txt); do group=$i groupadd $group echo "Grupo "$i" Agregado." done echo "" echo "Agregando usuarios..." for i in $(cat users.txt); do user=`echo $i | awk -F: '{print $1}'` passwd=`echo $i | awk -F: '{print $2}'` group=`echo $i | awk -F: '{print $3}'` directory=`echo $i | awk -F: '{print $4}'` # Agrego usuario del sistema con su grupo y su directorio personal. useradd $user -g $group -d $directory -s /sbin/nologin # Seteo la contraseña al usuario recien creado. echo -e "$passwd\n$passwd" | smbpasswd -a $user -s # Seteo el propietario y grupo al directorio personal del usuario. chown $user:$group $directory # Seteo permiso total a su directorio solo al propietario. chmod 700 $directory # Genero el archivo con la configuración de los directorios para samba echo -e "[$user]\n\tcomment = Carpeta personal de $user\n\tpath = $directory\n\twritable = yes\n\tvalid users = $user\n" >> smb.conf.txt done echo "Archivo smb.conf generado. Ahora solo falta agregar las lineas generadas del archivo smb.conf.txt en el archivo de configuración de samba (smb.conf)" |
Para hacerlo funcionar deben generar un archivo groups.txt y colocarle los grupos en lineas distintas, por ejemplo:
1 2 | administradores docentes |
También deben crear un archivo users.txt y colocarle los datos en el siguiente orden:
usuario:password:grupo:directorio personal
Ejemplo:
1 2 | juan:juan1234:administradores:/home/juan ana:anita1234:docentes:/home/anita |
Ahora solo hace falta agregarle permiso de ejecución al script.
1 | chmod +x create_perfiles.sh |
Para ejecutarlo hay que logearse con el usuario root.
Esto es todo.
Cualquier consulta me preguntan.
Saludos.
gracias por tu aporte…
A ver quien lo prueba y nos comenta 😉
Hola que tal!! me podrias ayudar con este script por favor no se por donde arrancar…
crear un script que dado 3 números (del 0 al 99) ingresado por el usuario, diga si alguno de esos salió elegido de un sorteo aleatorio que se ejecuto 5 veces.
La función que da un numero aleatorio del 0 al 99 es:
shuf -i 0-99 -n 1
Ejemplo, el usuario elige 16, 18, 55 y vos ejecutas 5 veces la función que da rango, todo dentro del script, que te avise, si la funcion te dio como randon el 16, el 18 etc
Hola linuxzero, ¿Que tal? ¿Tenes algo armado ya?
Lo que podrías hacer, es pedir 3 números al usuario, y almacenarlo en un array.
Luego te generas una función que llame 5 veces a la funcion que da numeros aleatorios y alacenas esos 5 numeros en otro array diferente.
Y por ultimo, usando for anidados que recorra ambos arrays, te fijas con un «if» si hay numeros que coincidan.
Espero haberte ayudado.
Saludos!
Hola,
No sé si estés aún revisando tus correos, al ejecutar el script que indicas acá aparece el siguiente error:
Agregando usuarios…
./create_profiles.sh: line 42: syntax error near unexpected token `;&’
./create_profiles.sh: line 42: `echo -e «[$user]\n\tcomment = Carpeta personal de $user\n\tpath = $directory\n\twritable = yes\n\tvalid users = $user\n» >> smb.conf.txt’
Cuál es el error?
Muchas Gracias
Saludos
Hola Jose Luis,
Al final de la linea 42 tenes esto:
modificalo por esto:
Espero que eso te funcione.
Cualquier otra consulta, a las ordenes.
Saludos!
Gonzalo,
Ya había pensado en lo mismo, te agradezco tu tiempo.
Muchas Gracias
Saludos
JL
Hola, en este script en que parte se podría implementar el tipo de grupo para cada usuario nuevo creado, me refiero a que sea usuario de grupo global o usuario de grupo de seguridad, de antemano gracias