Linux
Configurar Samba en Ubuntu para compartir archivos e impresoras en redes Windows
Samba es un programa Open Source que nos permite compartir archivos e impresoras desde una computadora Linux a PC con MS Windows como si fuera una más de ella, lo cual es muy útil ya que podemos tener un servidor de archivos y de impresión basado en Linux colocado en una red donde se conectan PC con Windows.
La página oficial de Samba la puedes encontrar aquí.
En este tutorial veremos cómo instalar Samba en un PC con Ubuntu o Debian instalado.
Lo primero es instalar Samba (como siempre les recuerdo que para instalar cualquier cosa en Linux necesitan tener privilegios de administrador o ser root, en el caso de utilizar Ubuntu colocando sudo antes de los comandos permite adquirir privilegios de root), ejecutamos el siguiente comando:
sudo apt install samba smbclient samba-common cifs-utils nmap kdenetwork-filesharing
El archivo de configuración de Samba puede ser encontrado en /etc/samba/smb.conf. Vamos a editar este archivo, primero realizamos una copia de respaldo:
cp -p /etc/samba/smb.conf /etc/samba/smb_copia.conf
Siempre es bueno realizar una copia de los archivos de configuración que modifiquemos en caso de que cometamos algún error podamos volver a la configuración inicial, además a mí me gusta agregarle la fecha en que realicé la copia para tener un registro.
Luego procedemos a modificar el archivo (con el editor que elijas):
sudo nano /etc/samba/smb.confsudo mousepad /etc/samba/smb.conf
En el archivo de configuración cambia donde dice workgroup = MSHOME (puede ser distinto en tu caso) a:
workgroup = MIGRUPO
Donde MIGRUPO es el nombre del grupo de trabajo de MS Windows o el nombre de dominio, de donde será parte el servidor Samba. Tienes que configurar el mismo grupo de trabajo en tus computadoras Windows, esto lo puedes hacer en Panel de control > Sistema > Nombre de Equipo > Cambiar Nombre.
Si quieres también puedes cambiar la línea donde dice server string, esto es simplemente la descripción que verá tu grupo del servidor, puedes colocar algo como:
server string = %h Servidor de archivos
%h imprime el nombre de host de tu servidor.
Guarda los cambios y sigamos.
Cómo crear, editar o eliminar usuarios en Samba
Los usuarios que queremos que tengan acceso al servidor Samba deben estar creados como usuarios en nuestro servidor Linux. Podemos crear un grupo samba y agregar a ese grupo todos los usuarios que tendrán acceso al servidor Samba:
Para agregar un usuario a Linux podemos utilizar el comando:
adduser nombre_usuario
Nos pedirá la clave que queremos utilizar para ese usuario y algunos datos que son opcionales, luego podemos cambiar sus privilegios.
Supongamos que tenemos un usuario ya creado llamado jose y que lo queremos agregar a los usuarios de Samba, para esto ejecutamos:
sudo smbpasswd -a jose
Nos aparecerá algo como:
smbpasswd -a jose
New SMB password
Retype new SMB password
Added user jose
Colocamos la clave que queremos que tenga ese usuario para ingresar al servidor Samba, la clave puede ser distinta a la clave que tiene el usuario para ingresar a Linux.
Vamos a crear un nuevo archivo donde estarán todos los usuarios autorizados para conectarse al Servidor de Samba, para esto ejecutamos:
sudo gedit /etc/samba/smbusers
En el nuevo archivo copiamos la siguiente línea:
nombre_enlinux = "Nombre en Windows"
Donde nombre_enlinux es el nombre del usuario que tenemos en Linux (en este caso jose) y Nombre en Windows es el nombre del usuario de red en Windows. Tenemos que agregar una nueva línea por cada usuario que creemos para Samba.
Para editar un usuario ejecutamos:
smbpasswd -a nombre_usuario
Para borrar un usuario ejecutamos:
smbpasswd -x nombre_usuario
Ahora que ya tenemos a los usuarios creados, procedamos a ver cómo se comparten archivos y directorios.
Compartiendo Archivos con Samba
Vamos a modificar el archivo de configuración de Samba:
sudo gedit /etc/samba/smb.conf
Busca la línea que dice:
; security = user
Y la modificamos por:
security = user
username map = /etc/samba/smbusers
Con esto le estamos diciendo a Samba que vamos a autenticar por usuario y dónde está la lista de los usuarios permitidos que fue la que creamos anteriormente.
Para darle acceso a los usuarios a sus respectivos directorios home o personales, hacemos lo siguiente:
Busca las líneas:
;[homes]
; comment = Home Directories;
; browseable = no
; valid users = %S
; writable = no
Y le quitamos el punto y coma (;) para descomentarlas, y en writable le cambiamos no por yes para que el usuario pueda escribir en el directorio.
Siempre que cambiemos la configuración del archivo smb.conf debemos ejecutar:
testparm
Este comando verifica que los parámetros del archivo smb.conf estén correctos. Luego, si todo está bien, ejecutamos:
sudo service smbd restart
para aplicar los cambios.
Si queremos compartir un directorio que llamaremos compartido, hacemos lo siguiente: primero creamos la carpeta que queremos compartir si no la habíamos creado:
mkdir /home/compartido
chmod 777 /home/compartido
La puedes crear donde quieras. Ahora modificamos el archivo smb.conf y agregamos las siguientes líneas al final del archivo:
[compartido]
comment = Archivos Compartidos
path = /home/compartido
guest ok = yes
browseable = yes
writeable = yes
create mask = 0777
directory mask = 0777
Más opciones
guest ok: Define si se permitirá el acceso como usuario invitado (Yes o No).
public: Equivalente a guest ok.
browseable: Permite mostrar el recurso en la lista de recursos compartidos (Yes o No).
writable: Permite escritura (Yes o No). Equivale a read only = No.
valid users: Define usuarios o grupos que pueden acceder al recurso.
write list: Define usuarios o grupos con permiso de escritura.
admin users: Usuarios o grupos con permisos administrativos.
directory mask: Permisos para subdirectorios creados dentro del recurso.
create mask: Permisos para archivos creados dentro del recurso.
Luego de agregar las carpetas que quieras compartir, guarda el archivo, prueba la configuración y reinicia el servidor Samba:
testparm
sudo service smbd restart
Para el error:
La «red compartida» devolvió el error 255:
net usershare:
cannot open usershare directory /var/lib/samba/usershares.
Error Permiso denegado
You do not have permission to create a usershare.
Ask your administrator to grant you permissions to create a share.
Agrega en el archivo /etc/samba/smb.conf:
usershare owner only = False
Compartiendo impresoras
Voy a suponer que ya tienes una impresora conectada y funcionando en tu PC Linux.
Compartir impresoras en Samba es muy sencillo, busca estas líneas en /etc/samba/smb.conf (recuerda hacer copia de respaldo):
# load printers = no
# printing = cups
# printcap name = cups
Y descoméntalas:
load printers = yes
printing = cups
printcap name = cups
Guarda el archivo, prueba la configuración y reinicia el servidor Samba:
testparm
sudo service smbd restart
Y eso es todo, ya puedes ir a tu PC Windows y buscar en tu grupo de trabajo las carpetas compartidas de Linux en Samba y además agregar la impresora.
Espero que les haya servido este tutorial, más adelante publicaré un tutorial acerca de cómo configurar un servidor WINS con Samba.
El manual oficial de Samba lo pueden conseguir aquí.
24-09-2009
Ver equipos de Windows
- Buscar la línea y descomentar (quitar ";") la línea name resolve order = lmhosts host wins bcast
21-12-2015
Eliminar error de SAMBA en modo gráfico
SystemError: could not open configuration file `/etc/libuser.conf': No such file or directory
sudo touch /etc/libuser.conf