Está en la página 1de 12

Samba

Samba es un software que permite a tu ordenador con Ubuntu poder compartir archivos e

impresoras con otras computadoras en una misma red local. Utiliza para ello un protocolo

conocido como SMB/CIFS compatible con sistemas operativos UNIX o Linux , como Ubuntu, pero

además con sistemas Windows (XP, NT, 98...), OS/2 o incluso DOS. También se puede conocer

como LanManager o NetBIOS.

Si Ubuntu te ha detectado correctamente la red local, que es lo mas habitual, cuando

selecciones una carpeta y hagas click en el botón derecho del ratón, si le das a Compartir

carpeta, al seleccionar un protocolo se iniciará un proceso automático de descarga desde

Internet e instalación de Samba. También se puede instalar de la forma habitual usando Añadir

y quitar... o Synaptic (véase Añadir aplicaciones).

Tabla de contenidos

[esconder]

1 Compartir

1.1 Con sistemas Windows o Linux (sin password)

 1.1.1 Para modificar el grupo de trabajo

 1.1.2 Para agregar una carpeta

 1.1.2.1 Para Compartir la Unidad de CDRom

 1.1.2.2 Mas sobre los permisos de las carpetas

 1.1.3 Para no usar contraseña

 1.1.4 Cambiar contraseña de un usuario en un dominio Windows desde

Ubuntu

 1.1.5 Agregando usuario

 1.1.6 Para reiniciar samba

1.2 Con sistemas Windows

 1.2.1 Con sistemas Linux

1.3 Compartir impresoras

1.4 Linpopup

[editar]

Compartir
[editar]
Con sistemas Windows o Linux (sin password)
Primero que nada instalamos samba :

$sudo aptitude install samba samba-client smbfs smbclient

esto debería instalar también varias otras dependencias.

Si tienes instalado Centos sería asi 1. Abres una terminal como root(Ejemplo Crtl Alt F1) 2. #

yum -y install samba samba-common samba-client

Luego configuramos el archivo /etc/samba/smb.conf

[editar]
Para modificar el grupo de trabajo
Primero abrimos el archivo /etc/samba/smb.conf para modificarlo :

$sudo nano /etc/samba/smb.conf

Luego buscamos (control+w) la línea que diga algo como :

workgroup = MSHOME

y reemplazamos MSHOME por el nombre de nuestro grupo de trabajo.

[editar]
Para agregar una carpeta
Primero debemos crear una carpeta con permisos (por ejemplo) :

$sudo mkdir /home/public


$sudo chmod 755 /home/public

Luego abrimos el archivo /etc/samba/smb.conf para modificarlo :

$sudo nano /etc/samba/smb.conf

y le agregamos, al final, algo como esto :

[public]
comment = Cosas publicas
path = /home/public
public = yes
writeable = no

las opciones son auto-sugerentes, por ejemplo "public = yes" es para que se pueda acceder a la

carpeta (el permiso x de sistema), y "writable = no" es para que no se pueda escribir (el

permiso w de sistema).

[editar]
Para Compartir la Unidad de CDRom

abrimos el archivo /etc/samba/smb.conf para modificarlo :

$sudo nano /etc/samba/smb.conf

y le agregamos, al final, algo como esto :

[CDRom]
comment = Cd Rom Compartido
path = /media/cdrom0
public = yes
writable = no
browseable = yes

(le agregamos un nuevo parametro "browseable" esto sirve para ingresar a la maquina por

medio de windows y linux de forma remota y ver la carpeta que esta compartida)

[editar]
Mas sobre los permisos de las carpetas

Generalmente (esto pasa con mi ubuntu 6.10) al usuario externo que tiene acceso al equipo a

través de Samba, el sistema le da como nombre de usuario nobody y como nombre de

grupo nogroup, es así como podemos cambiar el nombre de usuario y nombre de grupo a

nuestras carpetas, con el fin de que el sistema también sepa quien es el propietario de esa

carpeta:

$sudo chown nobody:nogroup /home/public


$sudo chmod 555 /home/public

y si queremos que también pueda escribir sobre esta carpeta


$sudo chmod 755 /home/public

y además debemos decirle a Samba que se lo permita (acuerdate que para que un permiso sea

válido, tanto el sistema como Samba deben estar de acuerdo)

[editar]
Para no usar contraseña
Buscamos (control+w) la línea donde diga algo como :

; security = user

y la reemplazamos por :

security = SHARE

[editar]
Cambiar contraseña de un usuario en un dominio Windows desde
Ubuntu
Para cambiar la contraseña de un usuario de dominio de Windows no es necesario ir a un PC

Windows sino que se puede hacer desde el propio Ubuntu. Para hacerlo sólo hay que abir un

terminal y ejecutar este comando:

smbpasswd -r WindowsDC -U nombreUsuario

Donde WindowsDC es en este caso la dirección del controlador de dominio de Windows y

nombreUsuario el usuario en el dominio.

Al ejecutar el comando pedirá la antigua contraseña en primer lugar y posteriormente pedirá la

nueva.

Una vez hecho esto ya podemos hacer login con la nueva contraseña.

[editar]
Agregando usuario
Suele pasar que cuando entras desde windows a una carpeta compartida en ubuntu, te pide

usuario, puede hacer lo siguiente:


sudo smbpasswd -a tu_usuario

si deseas le pones contraseña por motivos de seguridad, y si no necesitas la constraseña solo

dale enter.

[editar]
Para reiniciar samba
Luego de efectuar algún cambio en el archivo /etc/samba/smb.conf debemos reiniciar samba,

para ello :

$sudo /etc/init.d/samba restart

Con todo lo anterior deberíamos ser capaces de entrar desde un equipo con windows o linux a la

carpeta /home/public sin necesidad de tener nombre de usuario ni password:

Desde Windows colocamos en la barra de direcciones de alguna ventana:

\\192.168.3.1\public

Desde Linux (que tenga instalado el paquete samba-client) abrimos una carpeta y

colocamos en la barra de direcciones:

smb://192.168.3.1/public/ o smbclient //192.168.3.1/public/

donde 192.168.3.1 es "la IP privada" del equipo linux que contiene a la carpeta /home/public

Este artículo es, por ahora, sólo un esbozo.

Ampliándolo ayudarás a mejorar Guía Ubuntu.

[editar]
Con sistemas Windows

Si tenemos en nuestra red local una máquina con Windows y queremos compartir archivos entre

ambos sistemas:
Paso 1: Nos dirigimos al menú de Ubuntu: Sistema, Administración y seleccionamos

Carpetas compartidas. Pulsamos añadir (en la imagen yo ya tengo añadida una carpeta,

pero tú deberías tenerla en blanco) y nos aparecerá una imagen como la inferior.

Paso 1: compartiendo con SAMBA

En ruta, buscamos la carpeta que queremos compartir, como nombre pondremos Compartidos

(por ejemplo) y seleccionamos Permitir examinar la carpeta. Pulsamos sobre Configuracion

general de archivos compartidos con Windows, en Dominio introducimos el nombre de red que

posea la máquina Windows. Lo demás lo dejamos como está.

 Paso 2: Ahora que ya tenemos compartiendo la carpeta, nos queda crear un nombre de

usuario y contraseña en el servidor Samba para que el ordenador con Windows pueda

acceder a dicha carpeta, para ello abrimos una consola e introducimos:

$ sudo useradd -s /sbin/nologin usuario-windows

Donde usuario-windows es el usuario que va a acceder a la carpeta en Windows. Si


/sbin/nologin no existe, probar con /usr/sbin/nologin.

Si no encuentras el fichero nologin, también puedes crear tu usuario normalmente y luego

ejecutar la sentencia:

$ sudo passwd -d usuario-windows

A continuación introducimos

$ sudo smbpasswd -a usuario-windows

Y nos pedirá la contraseña que queramos asignar a dicho usuario.


Debemos reiniciar el demonio de samba antes de poder ver las carpetas compartidas desde la

máquina Windows

$ sudo /etc/init.d/samba restart

 Paso 3: Vamos a la máquina Windows y pulsamos en Mis sitios de Red, ahora pulsamos

en Equipos cercanos. Tendría que aparecer el nombre del equipo con Ubuntu, y dentro de

este directorio, la carpeta compartida.

 Paso 4: Si vemos la carpeta, pero dice que no tenemos los permisos necesarios,

deberemos volver a la máquina con Ubuntu y asignar los permisos necesarios de ejecución,

lectura o escritura a las carpetas que queramos compartir.

 Paso 5: Vamos a la máquina con Ubuntu y nos dirigimos al menú de Ubuntu: Lugares,

y seleccionamos Servidores de Red. Tendría que aparecer la Red de Windows. Esta

aplicación nos permite ver los archivos de la maquina con Windows desde la maquina con

Ubuntu. Hay que recargar cada vez que sea necesario.


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 mas de ella, lo cual es muy util 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 como 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:

apt-get install samba smbfs

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_18032007_copia.conf

Siempre es bueno realizar una copia de los archivos de configuración que modifiquemos en caso
de que cometamos algun error podamos volver a la configuración inicial, además a mi me gusta
agregarle la fecha en que realice la copia para tener un registro. Luego procedemos a modificar el
archivo: En Debian:

nano /etc/samba/smb.conf

En Ubuntu:

sudo gedit /etc/samba/smb.conf

Nota: Si estas en KDE en cambio de GNOME cambia gedit por kate

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 tambien puedes cambiar la linea 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 lo que hace es imprimir el nombre de host de tu servidor. Guarda los cambios y sigamos.

Como 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 pedira la clave que queremos utilizar para ese usuario y algunos datos que son opcionales,
luego podemos cambiar sus privilegios. Supongamos que tenemos un usuarios ya creado llamado
jose y que lo queremos agregar a los usuarios de Samba, para esto ejecutamos el siguiente
comando:

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: En Debian:

nano /etc/samba/smbusers

En Ubuntu:

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 como se compaten archivos y
directorios.

Compartiendo Archivos con Samba


Vamos a modificar el archivo de configuración de Samba: En Debian:

nano /etc/samba/smb.conf

En Ubuntu:

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 lo que estamos haciendo es diciendole a Samba que vamos a autenticar por usuario y
donde está la lista de los usuarios permitidos que fue la que creamos anteriormente. Para darle
acceso a los usuario a sus respectivos directorios home o personales, hacemos lo siguiente:
Buscamos las línea donde dice

;[homes]
; comment = Home Directories;
;browseable = no
;valid users = %S
;writable = no

Y le quitamos el ; para descomentarlos, 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 el siguiente comando:

testparm

lo que hace este parámetro es verificar que los parámetros del archivo smb.conf estén correctos,
luego que nos diga que todo esta bien ejecutamos:

/etc/init.d/samba restart

para aplicar los cambios. Ahora si quieremos compartir un directorio que llamaremos grupo
hacemos lo siguiente, primero creamos la carpeta que queremos compartir si ya no la habíamos
creado:

mkdir /home/grupo
chmod 777 /home/grupo

La puedes crear donde quieras. Ahora vamos a modificar el archivo de smb.conf, voy a suponer
que ya modificaste la parte de security y agregaste /etc/samba/smbusers a este archivo y que ya
sabes como abrirlo para editarlo de ahora en adelante. Agregamos la siguientes lineas al final del
archivo:

[Grupo]
comment = Archivos Compartidos
path = /home/grupo
public = yes
writable = yes
create mask = 0700
directory mask = 0700
force user = nobody
force group = nogroup

Analicemos esta estructura, comment simplemente es un comentario de lo que es la carpeta


puedes colocar lo que quieras, path por supuesto es donde esta la carpeta que queremos
compartir, public es si quieres hacer esta carpeta disponible publicamente o no, para cambiarlo
simplemente coloca no, writable permite definir si se puede escribir en la carpeta o no, create
mask y directory mask es la mascara con la que se crearan los archivos (es decir que privilegios
tendrán los archivos y directorios creados) si quieras que puedan hacer cualquier acción en la
carpeta coloca 0777 en ambas, force group y force user es para forzar que solo un grupo específico
o usuario se pueda conectar a esta carpeta. Si además queremos que solo un grupo de usuarios
pueda accesar a la carpeta agregamos esta línea después de writable:

valid users = nombre_usuario1 nombre_usuario2

Donde puedes agregar los usuarios que quieras que tengan acceso. Luego de que termines de
agregar las carpetas que quieras compartir Guarda el archivo y probamos el archivo smb.conf y
reiniciamos el servidor de Samba:

testparm
/etc/init.d/samba restart

Compartiendo Impresoras
Voy a suponer que ya tienes una impresora conectada y funcionado en tu PC Linux. Compartir
impresoras en Samba es muy sencillo simplemente busca estas dos líneas en el archivo
/etc/samba/smb.conf (Recuerda hacer una copia de respaldo) :

...
# printing = cups
# printcap name = cups
...

Y descomentalas:

...
printing = cups
printcap name = cups
...

Guarda el archivo cimprueba los parámetros de smb.conf y reinicia el servidor de Samba


ejecutando:

testparm
/etc/init.d/samba 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 como configurar un servidor WINS con
Samba. El manual oficial de Samba lo pueden conseguir aquí. Como siempre sus comentarios
serán bienvenidos.

También podría gustarte