viernes, 12 de febrero de 2016

Compartir carpetas con samba y distintos permisos

El compartir archivos con samba para los usuarios de Windows es una tarea muy sencilla de hacer, la cosa se complica un poco al momento de la permisología, si queremos que un usuario solo pueda leer o pueda leer y escribir, hasta tener usuarios de varios tipos en la misma carpeta se puede realizar, pero es algo un poco más complicado, aquí está la forma en que yo lo realicé.

Primero instalamos en el equipo que funcionará de servidor el samba.

root@servidor#apt-get install samba

creamos los usuarios en unix:
root@servidor#useradd user1
root@servidor#useradd user2

Creamos los usuarios en samba:
root@servidor#smbpasswd -a user1
Nos pedira la clave dos veces, así con cada usuario.

creamos los grupos:
root@servidor#groupadd escritores
root@servidor#groupadd lectores

Asignamos los usuarios al grupo que corresponda:
root@servidor#usermod -a -G escritores user1
root@servidor#usermod -a -G lectores user2

Para revisar si los usuarios y grupos están bien creados y asignados cada uno a donde corresponde:
Muestra todos grupos
root@servidor#cat /etc/group

Muestra todos los usuarios
root@servidor#cat /etc/passwd

Luego creamos la carpeta a compartir, yo la coloque en /home, pero eso es a conveniencia de cada quien.
Entonces colocamos

root@servidor:/home#mkdir compartida

Le damos permisos a la carpeta con chmod.
Aquí comienza a ponerse la cosa un poco más complicada.
Tenemos 3 columnas:
La primera es para el propietario de la carpeta o archivo, la segunda para el grupo y la última para el resto no especifícado

ejemplos:
a) drwx rwx r-- 2 ndrojas     psistema    4096 feb 11 15:24 Vistas
b) -rwx r-x --- 2 ndrojas psistema    7405 feb 11 15:28 Hola.txt 
En el ejemplo (a), aparece una letra (d) indicando que es un directorio, el resto de las letras son los permisos (r) leer o read, (w)escribir o write y la (x) ejecutar o execute. Si notamos en las dos primeras columnas aparecen todas las letras descritas, es decir que tanto el propietario ndrojas, como el grupo psistema pueden realizar todas las funciones posibles(rwx) en ese directorio, a diferencia del resto de la población que solo puede leer (r--).
En ejemplo (b) no aparece la letra (d) dado que no es un directorio y si pueden ver solo ndrojas tiene control total, ya que el grupo solo tiene permiso de lectura y ejecución y otros no pueden ni leer.
Toda está pequeña explicación para que entiendan un poco sobre la permisología.
7=Permiso Total
6=Lectura y escritura
5=Lectura y ejecución
4=Lectura
1=Ejecución
0= Ningún permiso

Entonces colocamos:

root@servidor:/home#chmod 770 -R compartida

La -R es para que sea recursivo el permiso y nos debería quedar algo como esto al colocar ls -l:
drwx rwx --- 1  user1     grupo1    4096 feb 11 15:24 Compartida.

Colocamos a la carpeta compartida al grupo perteneciente:

chgrp escritores -R compartida
 

Por último vamos al archivo de configuración de samba, smb.conf y lo editamos de la siguiente manera:

[compartida]
        comment = Carpeta de Soporte Sistema
        path = /home/compartida
        public = no
        available = yes
        guest ok = no
        read only = yes
        write list = @escritores
        valid users = @lectores, @escritores
        create mask = 0750
        directory mask = 0750
        force group = lectores

comment:  Para colocar un comentario.
path: La ruta de la carpeta
public: Si se permitirá al público en general o no.
available: Si está disponible.
guest ok: Es igual a public.
read only: Si pueden leer la información
write list: Lista de las personas con permiso para escribir en el directorio con (@) para los grupos.
valid users: Los usuarios permitidos en el directorio
create mask: Los archivos que se creen nuevos, tengan el permiso especificado .
directory mask: Los directorios que se creen nuevos, tengan el permiso especificado
force group: Todo lo que se cree nuevo tenga como grupo base el indicado.

Listo, reiniciamos el servicio samba:

root@servidor#service samba restart

Otros comandos de interés: 
# usermod -d /home/new_directory_user1 user1
Modifica el nombre de la carpeta de un usuario, aunque usermod tiene muchas otras opciones
 
# userdel -r [nombredeusuario] 
Eliminar un usuario, la -r es para que su directorio también se elimine 
 
 #groupmod -n new_name grupo1 
Modifica el nombre del grupo y al igual que el usermod tiene muchas otras opciones.
 
# groupdel [grupo]
Eliminar un grupo
 
# gpasswd -d [usuario] [grupo]
Eliminar un usuario de un grupo. 











No hay comentarios:

Publicar un comentario