Movimiento Libre

Plataforma de divulgación de conocimiento

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

Crear una nueva partición lógica para compartir archivos por medio de SAMBA.

24 June 2018

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.