Instalación de Fedora Server 28, parte 7, servidor de archivos SAMBA

Guillermo Valdés Lozano

2018-06-24 22:17:00-05:00


Vamos a crear una partición dedicada a almacenar archivos llamada biblioteca y dentro de ella un directorio con software para todos los usuarios SAMBA.

System Storage Manager

Instale el programa System Storage Manager para la administración de discos.

# dnf install system-storage-manager

Verifique sus unidades y particionamiento actual...

# ssm list

Crear particiones

System Storage Manager nos brinda el comando ssm que es muy versátil; ya que en un comando se ordena...

  • Crear una partición lógica con un tamaño de 128 GB.
  • Hacerlo en el conjunto LVM que llamé nogal (vea la parte 1).
  • Formatear con el sistema de archivos ext4
  • Montar en el directorio /mnt/biblioteca

Cree el directorio y ejecute el comando ssm...

# mkdir /mnt/biblioteca
# ssm create -s 128G -p nogal -n biblioteca --fstype ext4 /mnt/biblioteca

Luego debe agregar una línea en /etc/fstab para que se monte la partición al encender el servidor...

/dev/mapper/nogal-biblioteca  /mnt/biblioteca  ext4  defaults  1 2

Para poder copiar archivos cómodamente en /mnt/biblioteca otorgue permisos de escritura a su usuario miusuario. Por ejemplo...

# mkdir /mnt/biblioteca/software
# chown miusuario:users /mnt/biblioteca/software

Instale y configure SAMBA en el servidor

Instale SAMBA...

# dnf install samba

Edite...

# nano /etc/samba/smb.conf

Lo más sencillo es configurar un servidor solitario con software para todos los usuarios y de sólo lectura. No deje de definir el nombre del grupo MIGRUPO y el nombre del servidor MISERVIDOR...

[global]
workgroup = MIGRUPO
netbios name = MISERVIDOR
security = user

[software]
comment = Biblioteca de software
path = /mnt/biblioteca/software
browseable = yes
public = no
writable = no

Agregue sus usuarios SAMBA y contraseñas cifradas con...

# smbpasswd -a miusuario

Después de hacer cambios en /etc/samba/smb.conf haga una revisión con...

# testparm

Configure el muro de fuego para que sólo desde la red local se pueda accesar...

# firewall-cmd --permanent --zone=internal --add-service=samba

Arranque el daemon...

# systemctl start smb.service

Recuerde que si cambia /etc/samba/smb.conf deberá reiniciar el daemon...

# systemctl restart smb.service

Y para habilitar que inicie al encender, ejecute...

# systemctl enable smb.service

Quitar bloqueos de SELinux a SAMBA

Por defecto SELinux asegura el servidor limitando las comparticiones SAMBA. Para ver todos las boleanos que tienen que ver con samba ejecute...

# getsebool -a | grep samba

Encontrará...

samba_export_all_ro --> off
samba_export_all_rw --> off

Cambie con las consideraciones que esto implica las bandera samba_export_all_ro que habilita a SAMBA a leer...

# setsebool -P samba_export_all_ro on
# getsebool -a | grep samba_export

Los meta-permisos en /mnt/biblioteca/software no tienen a samba_share_t...

# ls -Z -l /mnt/biblioteca/software

Para que SELinux permita a SAMBA compartir temporalmente...

# chcon -R -t samba_share_t /mnt/biblioteca/software
# ls -Z -l /mnt/biblioteca/software

Haga permanentes los cambios en SELinux con...

# semanage fcontext -a -t samba_share_t "/mnt/biblioteca/software(/.*)?"
# restorecon /mnt/biblioteca/software
# ls -Z -l /mnt/biblioteca/software

Más documentación en:

Pruebas en los clientes

Puede exportar el usuario y contraseña a variables de entorno...

$ export USER=miusuario
$ export PASSWD=micontraseña

Liste los recursos compartidos con...

# smbclient -L miservidor

Pruebe ingresar a un recurso compartido...

$ smbclient //profeta/software

Si su administrador de archivos lo soporta, por ejemplo Dolphin, escriba esto en el campo de ubicación...

smb://miservidor/

Grupos de usuarios

Esto es para cuando necesita ofrecer un espacio en común para dos personas o más.

Igual, con las consideraciones que esto implica las bandera samba_export_all_rw que habilita a SAMBA a leer y escribir...

# setsebool -P samba_export_all_rw on
# getsebool -a | grep samba_export

Cree un nuevo directorio para su nuevo grupo de trabajo, por ejemplo, el grupo ventas con los usuarios vendedor1 y vendedor2...

# groupadd ventas
# useradd vendedor1
# useradd vendedor2
# usermod -a -G ventas vendedor1
# usermod -a -G ventas vendedor2
# mkdir /mnt/biblioteca/ventas
# chmod 0770 /mnt/biblioteca/ventas
# chgrp ventas /mnt/biblioteca/ventas

Agregue en /etc/samba/smb.conf...

[ventas]
comment = Unidad de Sistemas de Infomacion
path = /mnt/biblioteca/ventas
valid users = @ventas
write list = @ventas
browsable = yes
public = no
writable = yes
create mask = 0770
Force create mode = 0770
force group = ventas

Haga las autorizaciones de SELinux...

# semanage fcontext -a -t samba_share_t "/mnt/biblioteca/ventas(/.*)?"
# restorecon /mnt/biblioteca/ventas
# ls -Z -l /mnt/biblioteca/ventas

Más documentación

Final

Le agradezco la lectura y aprovechamiento de estos apuntes; deseando que le sean de gran utilidad. Si tiene alguna sugerencia me la puede hacer llegar a mi correo electrónico.

A cerca de Movimiento Libre
Es un sitio web que busca divulgar conocimiento y promover el uso de software libre. Su creador es reconocido por ser un desarrollador que fabrica estas herramientas tanto para entidades públicas como privadas. Le invito a conocer el portafolio: