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.

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

  1. GNU bash, versión 4.1.7(1)-release
  2. Script para generar los grupos y usuarios con sus correspondientes directorios y permisos
  3. 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}’`

  1. Agrego usuario del sistema con su grupo y su directorio personal.

useradd $user -g $group -d $directory -s /sbin/nologin

  1. Seteo la contraseña al usuario recien creado.

echo -e “$passwd\n$passwd” | smbpasswd -a $user -s

  1. Seteo el propietario y grupo al directorio personal del usuario.

chown $user:$group $directory

  1. Seteo permiso total a su directorio solo al propietario.

chmod 700 $directory

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

Fuente