• Suscríbete al Feed Espacio Linux
  • Suscríbete al Feed por Email
  • Sigue a Espacio Linux en Identi.ca
  • Espacio Linux también en Facebook
  • Sigue a Espacio Linux en Twitter
  • Sigue a Espacio Linux en Google +
          Iniciar sesión | Registrarse

Script para autogenerar grupos y usuarios con sus correspondientes directorios y permisos en SAMBA

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

Logo SAMBA

Logo SAMBA

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.



Temas:
Documentación, Redes y Servidores, Sistema


Etiquetas:
, ,

Feed Espacio LinuxSi este artículo ha sido de tu interés, considera hacer un comentario o suscribirte al feed para que te enteres de nuevos artículos a través de tu lector de noticias o email.

Acerca del autor

8 Comentarios para “Script para autogenerar grupos y usuarios con sus correspondientes directorios y permisos en SAMBA”

  1. gracias por tu aporte… 

    A ver quien lo prueba y nos comenta 😉

  2. […] Fuente […]

  3. 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

  4. 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!

  5. 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

  6. Hola Jose Luis,
    Al final de la linea 42 tenes esto:

    1
     >> smb.conf.txt

    modificalo por esto:

    1
     >> smb.conf.txt

    Espero que eso te funcione.

    Cualquier otra consulta, a las ordenes.

    Saludos!

  7. Gonzalo,
    Ya había pensado en lo mismo, te agradezco tu tiempo.

    Muchas Gracias

    Saludos

    JL

  8. 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

Publica un comentario

Puedes usar estas etiquetas XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <blockquote cite=""> <code> <em> <strong>