Tiempo atrás publiqué un vasto artículo en el cual explicaba cómo compartir ficheros a través de Samba con Ubuntu utilizando system-config-samba. Desgraciadamente, dicha herramienta empezó poco después a dar problemas, hasta el extremo de poder romper la configuración del servidor.
A día de hoy la única herramienta gráfica que me resulta fiable para configurar Samba es Yast, pero esta es exclusiva de openSUSE y SUSE, así que en el resto de distribuciones uno se ve forzado a configurar el servidor trabajando directamente con el fichero de configuración, lo que resulta bastante menos amigable. Ubuntu, por su parte, ofrece una buena configuración out of the box para compartir cualquier carpeta con acceso para invitado de forma sencilla y gráfica, aunque cuando se quiere compartir a través de un usuario o cambiar el grupo de trabajo no queda otra que recurrir a la consola.
En este tutorial enseñaremos cómo compartir recursos desde Ubuntu 16.04 a través de Samba para que un invitado pueda acceder a estos, además de cómo cambiar el grupo de trabajo en caso de usarse WORKGROUP, que es el configurado por defecto tanto en Samba como en Windows.
Instalación de Samba en Ubuntu
La instalación de Samba es bien sencilla en Ubuntu 16.04. Para ello hay que hacer clic sobre alguna carpeta con el botón secundario del ratón y dirigirse al menú de Propiedades.
Una vez accedido a las propiedades de la carpeta hay que pulsar sobre la pestaña Recurso compartido de red local y luego sobre la casilla de Compartir esta carpeta.
Luego aparece una caja de diálogo avisando que Samba no está instalado y si queremos proceder a su instalación para compartir recursos. Obviamente, hay que pulsar sobre el botón Instalar el servicio.
En la siguiente caja de diálogo hay que pulsar sobre el botón Instalar e introducir la contraseña.
Una vez terminado el proceso hay que pulsar sobre el botón Cerrar.
Después de instalar Samba el sistema pide cerrar y volver a abrir sesión. Sin embargo, este paso es en realidad prescindible, así que se puede pulsar sobre el botón Cerrar.
Compartiendo una carpeta para acceso desde invitado
Con Samba ya instalado, el usuario puede proceder a compartir las carpetas que vea conveniente con los permisos que crea oportuno. Para ello solo hay que ir a las Propiedades de una carpeta y dirigirse a la pestaña Recurso compartido de red local.
Luego el usuario podrá establecer si permite el acceso a invitado, los permisos sobre la carpeta y con qué nombre se mostrará a través de la red SMB/CIFS. Después de establecer las condiciones de compartición sobre la carpeta se pulsa sobre el botón Crear compartición. En este caso, haremos que un invitado tenga permisos totales sobre la carpeta Público.
Después se pedirá al usuario conceder los permisos necesarios a nivel de sistema para que un invitado tenga permisos de escruta. Puede que nos hayamos acordado de concender los permisos a través de Samba, sin embargo, si estos no se conceden también a nivel del sistema se tendrá como resultado un acceso restringido según lo establecido desde el sistema, por lo que es recomendable pulsar sobre el botón Añadir los permisos automáticamente.
Compartiendo una carpeta de esta manera cualquier sistema con CIFS compatible (ya sea Windows u otra distribución GNU/Linux) puede acceder a a esta con permisos de escritura. Esto quiere decir que cualquier otro ordenador agregado a la red puede ver y añadir ficheros a esa carpeta.
Cuando el invitado escribe sobre la carpeta compartida
Cuando un invitado coloca un fichero dentro del recurso compartido se puede apreciar que el usuario del sistema anfitrión tiene permisos restringido sobre este. Esto esto es debido a que Ubuntu establece nobody como propietario y nogroup como grupo.
Para corregir este problema hay que abrir el fichero /etc/samba/smb.conf con un editor de texto.
sudo nano /etc/samba/smb.conf
Después hay que buscar la línea correspondiente a create mask, descomentarla y asignarle el valor 0777 para que el anfitrión tenga permisos totales sobre los ficheros y carpetas creados por el invitado. Sí, este mask funciona al revés que el comando umask de Bash.
Obviamente, habrá que guardar los cambios y cerrar el fichero para luego reiniciar el servicio de Samba si se quiere aplicar los cambios.
sudo systemctl restart smbd sudo systemctl restart nmbd
A partir de ahora el anfitrión tendrá acceso sin restricciones sobre todo lo introducido por el invitado en la carpeta compartida.
Cambiar el grupo de trabajo
Posiblemente el grupo de trabajo sobre el cual está trabajando la red no es el que está por defecto, WORKGROUP, por lo que podría ser conveniente cambiarlo.
Para modificar el grupo de trabajo hay que modificar el fichero de configuración de Samba con un editor de texto y permisos de administrador.
sudo nano /etc/samba/smb.conf
Después hay que asignar a workgroup el nombre del grupo del trabajo al cual se quiere añadir el equipo. En este caso, lo hemos añadido al grupo MUYLINUX.
Tras establecer el nuevo grupo de trabajo hay que reiniciar los servicios de smbd y nmbd para que el cambio surta efecto.
sudo systemctl restart smbd sudo systemctl restart nmbd
Sin embargo, puede que el equipo Ubuntu siga sin aparecer. En caso de suceder eso lo recomendable es reiniciar todos los equipos que estén dentro de ese grupo de trabajo, ya sean Windows o GNU/Linux.