Este artículo explica cómo agregar un nuevo share (carpeta compartida en jerga Windows) y usuario a un servidor Samba ya configurado y funcionando.
Agregar un nuevo usuario a un servidor Samba
En los sistemas operativos de la familia Unix, Samba utiliza los usuarios del sistema para la autenticación. Aunque cada usuario posee una contraseña específica para Samba. De esta forma, no todos los usuarios de un sistema Unix tienen acceso al servidor de archivos Samba, sino sólo aquellos que además poseen su correspondiente contraseña de Samba.
Para agregar un nuevo usuario a un servidor Samba, primero es necesario crear el usuario Unix. Por ejemplo, si se necesita agregar al usuario "Cosme Fulanito", cuyo nombre de usuario será "cfulanito", ejecutar:
# useradd -c "Cosme Fulanito" -s /sbin/nologin cfulanito
Se observa que se ha creado el usuario "cfulanito" sin acceso a una shell (/sbin/nologin
). Si se requiere que el usuario tenga acceso a una terminal en el servidor Unix, será necesario cambiar la shell por /bin/sh
u otra, y luego asignarle un password Unix:
# passwd cfulanito
Se ha creado el usuario Unix, pero éste aún no posee una contraseña para Samba, por ende no figura al listar los usuarios de Samba:
# pdbedit -L nobody:32767:Unprivileged user linuxito:1000:Linuxito
El siguiente paso entonces consiste en crear la contraseña de Samba para el nuevo usuario:
# smbpasswd -a cfulanito
Ahora, al listar los usuarios de Samba, aparece el nuevo usuario:
# pdbedit -L nobody:32767:Unprivileged user linuxito:1000:Linuxito cfulanito:1002:Cosme Fulanito
Crear un nuevo share de Samba
Para comenzar se debe crear un directorio en una ruta conveniente (por ejemplo, /var/samba
):
# cd /var/samba/ # mkdir compartido
Suponiendo que sólo se desea que el usuario "Cosme Fulanito" tenga privilegios sobre este nuevo share, modificar los permisos adecuadamente:
# chown cfulanito:cfulanito compartido/ # chmod 750 compartido/
Luego de pasar el filtro de permisos de Samba, se debe pasar el filtro de permisos a nivel sistema de archivos. Por más que se dé permiso para escritura sobre el nuevo share en la configuración del servidor Samba, si el directorio no tiene permisos de escritura a nivel sistema de archivos, las escrituras fallarán.
En este caso se desea que el usuario "Cosme Fulanito" tenga permisos de escritura sobre el nuevo share "compartido":
# ll -d compartido drwxr-x--- 2 cfulanito cfulanito 512B Dec 19 10:19 compartido
Por último, se debe definir el share en la configuración del servidor Samba:
# nano /etc/samba/smb.conf
Agregar la siguiente configuración:
[Compartido] comment = Nuevo share path = /var/samba/compartido guest ok = no browseable = no writable = yes write list = cfulanito create mask = 0777 directory mask = 0777
No es necesario que el nombre del share (encerrado entre corchetes) coincida con el directorio (variable path
).
Guardar los cambios y reiniciar el servidor Samba. Por ejemplo en OpenBSD:
/etc/rc.d/samba restart
Verificar el funcionamiento del nuevo share y usuario accediendo al mismo. Desde sistemas Unix a través de la URL:
smb://servidor.samba.com/Compartido
Desde sistemas Windows a través de la URL:
\\servidor.samba.com\Compartido
En ambos casos, hacerlo desde un navegador de archivos.
Referencias
man useradd man pdbedit man smbpasswd man samba man smb.conf