Introducción¶
Como ya se ha visto con anterioridad, Samba es un conjunto de aplicaciones para GNU/Linux que implementan el protocolo de comunicación SMB utilizado por Microsoft Windows para compartir carpetas e impresoras.
- Permite a sistemas GNU/ Linux compartir carpetas como si de un sistema Microsoft Windows se tratara.
Tip
Se recomienda leer la documentación oficial del servicio en ENLACE WIKI SAMBA
En un servidor de archivos, el acceso a una carpeta puede estar determinado por dos conjuntos de entradas de permisos:
- los permisos de recurso compartido definidos tan solo a carpetas.
- los permisos de red o NTFS (New Technology File System) definidos tanto en carpetas como en archivos.
NOTA
En sistemas operativos basados en GNU/Linux la gestión de los grupos y privilegios se hace a través de los comandos samba-tool user y samba-tool group.
-
Los permisos de recurso compartido suelen utilizarse para administrar equipos con sistemas de archivos FAT32 (File Allocation Table) o posterior, por lo que quedan desterrados en sistemas operativos de red.
-
Con la aparición del sistema de archivos NTFS (New Technology File System), se incluyeron nuevos tipos de permisos asignables a carpetas, y además, también a ficheros.
A tener en cuenta
Ambos sistemas de permisos conviven en entornos de Microsoft por lo que puede ser un tema delicado cuando se interfieran.
Introducción a la configuración del servicio SAMBA en Ubuntu¶
Toda la configuración de Samba se encuentra en el fichero /etc/samba/smb.conf
→ DOCUMENTACIÓN OFICIAL .
NOTA
Existen multitud de opciones pero tan solo se analizarán las imprescindibles para la compartición de recursos. Las líneas que comiencen con # o ; están comentadas y el servicio no las tendrá en cuenta.
Este fichero tiene varios apartados, con opciones que se comentarán a continuación:
- [global], se especifican opciones generales:
Variable | Descripción |
---|---|
workgroup | Esta variable ha de almacenar el nombre del grupo de trabajo o dominio que usamos en nuestra red. |
server string | Permite reconocer el equipo dentro del dominio. Por defecto tiene como valor el nombre del servidor. |
hosts allow | Especifica desde qué direcciones IP se podrá acceder al servicio. Si se especifica 192.168. todas las direcciones que empiecen de ese modo tendrán acceso al recurso. Se puede establecer direcciones IP completas. |
hosts deny | Especifica los rangos no permitidos, del mismo modo que host allow. |
security, | Especifica el nivel de seguridad con el que se puede acceder. |
- [autentication], donde se destaca server role → indica la forma en la que va a trabajar el servidor Samba:
Variable | Descripción |
---|---|
standalone server | Modo por defecto, actúa como un servidor de ficheros y directorios compartidos pero no como servidor de dominio. |
member server | similar al anterior con la diferencia que añadimos al equipo a un dominio ya existente y por tanto su funcionamiento se verá afectado por las reglas de éste. Esta opción requiere añadir las líneas security=ADM, para indicar que el control de acceso lo gestionará el controlador de dominio, y realm =NOMBREDOMINIO.COM para indicar el nombre de dominio al que pertenece el servidor. Además, hay que comentar la línea workgroup ya que no pertenecemos a un grupo de trabajo. |
AD domain controler | actúa como un controlador de dominio. |
Creación Directorio Compartido¶
- Para crear un directorio compartido es necesario añadir una nueva sección del siguiente modo:
[compartidoUser1]
comment = Carpeta compartida
path = /media/compartido/user1
guest ok = Yes
read only = Yes
write list = @Ceos, administrador, user1 directory mask = 0755
NOTA
- Estas líneas crean un recurso compartido con el nombre compartidoUser1 en el directorio /media/compartido/user1 de solo lectura, con acceso de invitado, los usuarios administrador y user1 pueden escribir y el grupo @Ceos también.
- Además, se aplicará una máscara de permisos automática de 0755 a los ficheros y carpetas que se creen en este recurso.
- Las opciones más relevantes son:
Variable | Descripción |
---|---|
guest ok | Permite el acceso como usuario invitado. Su valor puede ser Yes o No. |
public | Equivalente del parámetro guest ok. |
browseable | Permitirá mostrar este recurso en las listas de recursos compartidos. Su valor puede ser Yes o No. |
writable | Permitirá la escritura. Su valor puede ser Yes o No. |
valid users | Especifica qué usuarios o grupos pueden acceder al recurso compartido. Mirar valores en la Nota a continuación de esta tabla. |
write list | Usuarios o grupos pueden acceder con permiso de escritura. |
admin users | Usuarios o grupos pueden acceder con permisos administrativos. |
directory mask | Define que permisos en el sistema tendrán los subdirectorios creados dentro del recurso. |
NOTA: valores valid users
- nombres de usuarios separados por comas
- nombres de grupo precedidos por una @
- %S indica que solo el usuario cuyo nombre sea igual al de ese directorio, tiene acceso (útil para las carpetas personales de usuario)
A tener en cuenta
- Una vez añadido el recurso, es necesario reiniciar el servicio para que se apliquen los cambios
systemctl restart smbd
- Por último, para acceder al recurso se realizará a través de cualquier navegador de archivos usando el protocolo smb especificando el usuario, la dirección del recurso y su nombre del siguiente modo:
smb://usuario1@servidorubuntu/compartido1