Diferencia entre revisiones de «Samba»

De Guía Ubuntu
Saltar a: navegación, buscar
(Vuelvo a la version de Zeppelin con enlace en ''ver tambien'')
(Desde Linux)
 
(No se muestran 26 ediciones intermedias realizadas por 12 usuarios)
Línea 3: Línea 3:
 
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]]).
 
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]]).
  
= Compartir =
+
= Instalación =
  
== Con sistemas Windows o Linux (sin password)==
+
Primero instalamos samba :
  
Primero que nada instalamos samba :
+
  $ sudo apt-get install samba samba-client smbfs smbclient
 
+
  $sudo aptitude install samba samba-client smbfs
+
  
 
esto debería instalar también varias otras dependencias.
 
esto debería instalar también varias otras dependencias.
  
Luego configuramos el archivo /etc/samba/smb.conf
+
== Herramientas ==
 +
 
 +
Tenemos variadas herramientas las cuales podemos utilizar para facilitar la configuración del servidor:
 +
 
 +
* system-config-samba : Editor gráfico de configuración.
 +
* gadmin-samba : Editor gráfico de configuración Avanzado.
 +
* swat ([[SWAT|Samba Web Administration Tool]]) : Permite administrar samba a través del navegador web en http://localhost:901
 +
 
 +
== Manuales ==
 +
 
 +
* samba-doc : instala manuales en /usr/share/doc-base/ y /usr/share/doc/samba-doc/ como texto y html
 +
* samba-doc-pdf : instala manuales en /usr/share/doc-base/ y /usr/share/doc/samba-doc-pdf/ con formato pdf
 +
 
 +
= Configuración =
  
=== Para modificar el grupo de trabajo ===
+
La configuración del servidor samba se realiza en el archivo /etc/samba/smb.conf el cual podemos modificar de la siguiente manera:
  
Primero abrimos el archivo /etc/samba/smb.conf para modificarlo :
+
$ sudo nano /etc/samba/smb.conf
  
$sudo nano /etc/samba/smb.conf
+
== Para modificar el grupo de trabajo ==
  
Luego buscamos (control+w) la línea que diga algo como :
+
Buscamos la línea que diga algo como :
  
 
  workgroup = MSHOME
 
  workgroup = MSHOME
Línea 27: Línea 38:
 
y reemplazamos MSHOME por el nombre de nuestro grupo de trabajo.
 
y reemplazamos MSHOME por el nombre de nuestro grupo de trabajo.
  
=== Para agregar una carpeta ===
+
== Para compartir una carpeta ==
 +
 
 +
=== Opción 1 ===
  
 
Primero debemos crear una carpeta con permisos (por ejemplo) :
 
Primero debemos crear una carpeta con permisos (por ejemplo) :
  
  $sudo mkdir /home/public
+
  $ sudo mkdir /home/publico
  $sudo chmod 755 /home/public
+
  $ sudo chmod 755 /home/publico
 
+
Luego abrimos el archivo /etc/samba/smb.conf para modificarlo :
+
 
+
$sudo nano /etc/samba/smb.conf
+
  
y le agregamos, al final, algo como esto :
+
Luego abrimos la configuración y le agregamos, al final, algo como esto :
  
  [public]        
+
  [publico]
 
   comment = Cosas publicas
 
   comment = Cosas publicas
   path = /home/public
+
   path = /home/publico
 
   public = yes
 
   public = yes
 
   writable = no
 
   writable = 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).
+
Las opciones son sugerentes, por ejemplo "public = yes" es para que se pueda acceder a la carpeta cualquier usuario, y "writable = no" es para que no se pueda escribir.
  
==== Para Compartir la Unidad de CDRom ====
+
=== Opción 2 ===
  
abrimos el archivo /etc/samba/smb.conf para modificarlo :
+
Para añadir los recursos con nautilus (navegador de archivos) debemos crear la siguiente carpeta con sus respectivos permisos:
  
  $sudo nano /etc/samba/smb.conf
+
  $ sudo mkdir -p /usr/local/samba/lib/usershares
 +
$ sudo chgrp sambashare /usr/local/samba/lib/usershares
 +
$ sudo chmod 1770 /usr/local/samba/lib/usershares
  
y le agregamos, al final, algo como esto :
+
Y luego agregas los siguientes parámetros a la configuración:
  
  [CDRom]        
+
  usershare path = /usr/local/samba/lib/usershares
 +
usershare max shares = 10
 +
 
 +
Finalmente se pueden añadir carpetas en nautilus haciéndole click derecho, opción "opciones de compartición".
 +
 
 +
=== Opción 3 ===
 +
 
 +
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.
 +
 
 +
[[imagen:Compartir-con-Samba.jpg|thumb]]
 +
 
 +
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.
 +
 
 +
== Compartir la Unidad de CD-ROM ==
 +
 
 +
Abrimos la configuración y le agregamos, al final, algo como esto :
 +
 
 +
[cdrom]
 
   comment = Cd Rom Compartido
 
   comment = Cd Rom Compartido
 
   path = /media/cdrom0
 
   path = /media/cdrom0
Línea 63: Línea 91:
 
   browseable = yes
 
   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)
+
(le agregamos un nuevo parámetro "browseable" esto sirve para ingresar a la maquina por medio de windows y linux de forma remota y ver la carpeta que esta compartida)
  
==== Mas sobre los permisos de las carpetas ====
+
== Compartir impresoras ==
  
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:
+
Ver [[Compartir una impresora con Windows 2000/XP]]
  
$sudo chown nobody:nogroup /home/public
+
== Para probar la correcta sintaxis del archivo de configuración ==
$sudo chmod 555 /home/public
+
  
y si queremos que también pueda escribir sobre esta carpeta
+
Utilizamos la aplicación testparm, la cual verifica la configuración y despliega las carpetas compartidas en éste:
  
  $sudo chmod 755 /home/public
+
  $ testparm
  
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)
+
== Quitar lineas de comentarios ==
  
=== Para no usar contraseña ===
+
Para eliminar las líneas que corresponden a comentarios:
  
Buscamos (control+w) la línea donde diga algo como :
+
$ su
 +
# mv smb.conf smb.conf.orig
 +
# testparm -s smb.conf.orig > smb.conf
  
;  security = user
+
Nota: el comando su nos logea como root, para lo cual debemos tener habilitado el usuario root con contraseña. Para ello ejecutas:
  
y la reemplazamos por :
+
$ sudo passwd root
  
security = SHARE
+
== Parámetros de configuración ==
  
=== Para reiniciar samba ===
+
=== Globales ===
  
Luego de efectuar algún cambio en el archivo /etc/samba/smb.conf debemos reiniciar samba, para ello :
+
* ''check password script'' : permite definir un script que verificará la complejidad de la contraseña definida, retornando 0 si es aprobada por el programa indicado
 +
* ''debug uid'' : permite registrar los uid, gid, euid y egid del usuario que solicita un recurso en el log del servidor
 +
* ''domain master'' : habilita a nmbd con un nombre NetBios específico que lo identifica como maestro de dominio del grupo de trabajo indicado
 +
* ''guest account'' : usuario utilizado para acceder a los recursos que tienen definido "guest ok"
 +
* ''include'' : incluye otro archivo de configuración complementario
 +
* ''debuglevel'' o ''log level'' : permite definir el nivel de detalle del log; incluso por módulo: all ,tdb ,printdrivers ,lanman ,smb ,rpc_parse ,rpc_srv ,rpc_cli ,passdb ,sam ,auth ,winbind ,vfs ,idmap ,quota ,acls ,locking ,msdfs ,dmapi ,registry
 +
* ''map to guest'' : le indica al servidor la acción a tomar cuando falla el inicio de sesión de un usuario. inútil en security = share o server
 +
* ''max log size'' : tamaño máximo del log
 +
* ''message command'' : le indica al servidor la acción al recibir un mensaje tipo WinPopup
 +
* ''netbios name'' : nombre netbios del servidor samba
 +
* ''null passwords'' : permite el acceso a usuarios con contraseñas vacías
 +
* ''panic action'' : comando a realizar al caerse smbd o nmbd
 +
* ''prefered master'' o'' preferred master'' : indica si samba es preferencialmente maestro en el grupo de trabajo
 +
* ''security'' : determina cómo los clientes responden el logeo (usuario y contraseña) según el "security mode bit" enviado en las negociaciones de protocolo.
 +
** ''share'' : clientes se registran al solicitar un recurso (permite ver la lista de recursos para visitas)
 +
** ''user'' : clientes se registran al solicitar la lista de recursos o solicitar un recurso
 +
** ''domain'' : idéntico al anterior, pero los datos de registro se consultan con controlador de dominio
 +
** ''server'' : idéntico al anterior, pero los datos de registro se consultan con servidor SMB
 +
* ''server string'' : texto desplegado como nombre completo del servidor
  
$sudo /etc/init.d/samba restart
+
==== usershares ====
  
 +
Parámetros de configuración aplicables a las carpetas compartidas a través de nautilus ("Opciones de compartición"):
  
 +
* ''usershare allow guests'' : las carpetas compartidas serán accedidas por los usuarios sin registrarse
 +
* ''usershare max shares'' : número máximo de carpetas compartidas por usuario
 +
* ''usershare owner only'' : permite compartir sólo las carpetas pertenecientes al usuario
 +
* ''usershare path'' : ruta donde se almacenan las carpetas compartidas por cada usuario (los permisos de la carpeta indicada controlan quienes pueden compartir a través de este medio)
 +
* ''usershare prefix allow list'' : lista separada por comas de las rutas absolutas permitidas para compartir (incluye directorios dentro de estas rutas)
 +
* ''usershare prefix deny list'' : lista separada por comas de las rutas absolutas no permitidas para compartir (incluye directorios dentro de estas rutas)
  
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:
+
=== Recursos ===
  
*'''Desde Windows''' colocamos en la barra de direcciones de alguna ventana:
+
* ''administrative share'' : recurso administrativo. creado por defecto en sistemas MS. Por Ejemplo: C$ , D$ , IPC$.
\\192.168.3.1\public
+
* ''admin users'' : lista de usuarios con total permiso sobre los recursos (no aplica si secury = share)
 +
* ''browsable'' o'' browseable'' : define si el recurso es apreciable en la lista de recursos del servidor
 +
* ''comment'' : permite definir un comentario aplicado al recurso, desplegable en los recursos de toda la red; a través de net view o de smbclient
 +
* ''create mode'' o'' create mask'' : permite restringir los permisos de los archivos/directorios creados en un recurso a través de una máscara de permisos
 +
* ''force create mode'' : permite aplicar permisos a los archivos/directorios creados en un recurso
 +
* ''directory mode'' o'' directory mask'' : similar a create mode o create mask, aplicado a directorios
 +
* ''force directory mode'' : similar a force create mode, aplicado a directorios
 +
* ''directory security mask'' : mascara de permisos aplicado a clientes Windows NT.
 +
* ''group'' o'' force group'' : grupo utilizado como gid del usuario conectado
 +
* ''user'' o'' force user'' : usuario utilizado como uid del usuario conectado
 +
* ''guest ok'' : permite acceder a un recurso sin identificarse
 +
* ''only guest'' o'' guest only'' : permite acceder sólo a usuarios sin identificación. requiere el parámetro "guest ok"
 +
* ''allow hosts'' o'' hosts allow'' : lista de equipos permitidos de acceder al recurso. puede aplicar como global
 +
* ''deny hosts'' o'' hosts deny'' : lista de equipos no permitidos de acceder al recurso. puede aplicar como global
 +
* ''invalid users'' : lista de usuarios no permitidos de acceder al recurso
 +
* ''only user'' : permite el acceso sólo a los usuarios en la lista user
 +
* ''directory'' o'' path'' : ruta del recurso indicado
 +
* ''read list'' : lista de usuarios que tienen acceso de sólo lectura
 +
* ''read only'' o'' writeable'' : no se permite crear ni modificar los archivos/directorios del recurso
 +
* ''user'' ,'' users'' o'' username'' : usuarios con los cuales se probará la contraseña entregada
 +
* ''valid users'' : lista de usuarios permitidos de acceder al recurso
 +
* ''invalid users'' : lista de usuarios no permitidos de acceder al recurso
 +
* ''writable o writeable'' : permite escribir/modificar en el recurso indicado
  
*'''Desde Linux (que tenga instalado el paquete samba-client)''' abrimos una carpeta y colocamos en la barra de direcciones:
+
==== de impresión ====
smb://192.168.3.1/public/
+
  
donde 192.168.3.1 es "la IP privada" del equipo linux que contiene a la carpeta /home/public
+
* ''print ok'' o'' printable'' : clientes pueden enviar trabajos de impresión a la carpeta indicada
 +
* ''printer'' o'' printer name'' : nombre de la impresora a la cual serán enviados los trabajos
  
 +
= Permisos =
  
{{esbozo}}
+
Los usuarios que ingresan a un recurso público, 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:
  
== Con sistemas Windows ==
+
$ sudo chown nobody:nogroup /home/publico
 +
$ sudo chmod 555 /home/publico
  
Si tenemos en nuestra red local una máquina con Windows y queremos compartir archivos entre ambos sistemas:
+
y si queremos que también pueda escribir sobre esta carpeta
  
*'''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.
+
$ sudo chmod 755 /home/public
  
[[imagen:Compartir-con-Samba.jpg|thumb|Paso 1: compartiendo con SAMBA]]
+
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)
  
 +
= Administración =
  
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.
+
== Cambiar contraseña de un dominio Windows ==
Lo demás lo dejamos como está.
+
 
 +
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.
 +
 
 +
== Agregar 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.
 +
 
 +
== Cambiar contraseña usuario ==
  
*'''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:
+
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
 
  $ sudo useradd -s /sbin/nologin usuario-windows
Línea 131: Línea 229:
  
 
  $ sudo passwd -d usuario-windows
 
  $ sudo passwd -d usuario-windows
 
  
 
A continuación introducimos
 
A continuación introducimos
Línea 139: Línea 236:
 
Y nos pedirá la contraseña que queramos asignar a dicho usuario.
 
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
+
== Para reiniciar samba ==
+
$ 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.
+
Luego de efectuar algún cambio en el archivo /etc/samba/smb.conf debemos reiniciar samba, para ello :
  
*'''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.
+
$ sudo /etc/init.d/samba restart
  
*'''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.
+
Ojo en Ubuntu 10.04 LTS y 10.10 el comando anterior no va, debes utilizar este:
  
=== Con sistemas Linux ===
+
$ sudo restart smbd
  
{{esbozo}}
+
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:
  
== Compartir impresoras ==
+
= Acceso a los recursos compartidos=
  
Ver [[Compartir una impresora con Windows 2000/XP]]
+
== Desde Windows ==
  
== Linpopup ==
+
Colocamos en la barra de direcciones de alguna ventana:
  
Linpopup, que se instala de la manera estándar, es un ''port'' o programa basado en el conocido ''Winpopup'' para mensajería instantánea de los sistemas Windows para ordenadores de una misma red local. Además de ser compatible con éste, incluye sus propias características.
+
\\192.168.3.1\publico
{{esbozo}}
+
 
 +
== Desde Linux ==
 +
 
 +
Debemos instalar el paquete samba-client. Luego, abrimos una carpeta y colocamos en la barra de direcciones:
 +
 
 +
smb://192.168.3.1/publico/
 +
o
 +
smbclient //192.168.3.1/publico/
 +
 
 +
donde 192.168.3.1 es "la IP privada" del equipo linux que contiene a la carpeta /home/public
  
== Ver también ==
+
[[Categoría:Interoperabilidad con Windows]]
* [[SWAT]] Herramienta de configuración gŕafica de Samba
+
* [[Montar comparticiones remotas usando smbfs y cifs]]
+
[[Categoría:Administración del sistema]][[Categoría:Interoperabilidad con Windows]]
+

Última revisión de 20:35 14 oct 2010

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).

Instalación

Primero instalamos samba :

$ sudo apt-get install samba samba-client smbfs smbclient

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

Herramientas

Tenemos variadas herramientas las cuales podemos utilizar para facilitar la configuración del servidor:

Manuales

  • samba-doc : instala manuales en /usr/share/doc-base/ y /usr/share/doc/samba-doc/ como texto y html
  • samba-doc-pdf : instala manuales en /usr/share/doc-base/ y /usr/share/doc/samba-doc-pdf/ con formato pdf

Configuración

La configuración del servidor samba se realiza en el archivo /etc/samba/smb.conf el cual podemos modificar de la siguiente manera:

$ sudo nano /etc/samba/smb.conf

Para modificar el grupo de trabajo

Buscamos la línea que diga algo como :

workgroup = MSHOME

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

Para compartir una carpeta

Opción 1

Primero debemos crear una carpeta con permisos (por ejemplo) :

$ sudo mkdir /home/publico
$ sudo chmod 755 /home/publico

Luego abrimos la configuración y le agregamos, al final, algo como esto :

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

Las opciones son sugerentes, por ejemplo "public = yes" es para que se pueda acceder a la carpeta cualquier usuario, y "writable = no" es para que no se pueda escribir.

Opción 2

Para añadir los recursos con nautilus (navegador de archivos) debemos crear la siguiente carpeta con sus respectivos permisos:

$ sudo mkdir -p /usr/local/samba/lib/usershares
$ sudo chgrp sambashare /usr/local/samba/lib/usershares
$ sudo chmod 1770 /usr/local/samba/lib/usershares

Y luego agregas los siguientes parámetros a la configuración:

usershare path = /usr/local/samba/lib/usershares
usershare max shares = 10

Finalmente se pueden añadir carpetas en nautilus haciéndole click derecho, opción "opciones de compartición".

Opción 3

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.

Compartir-con-Samba.jpg

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.

Compartir la Unidad de CD-ROM

Abrimos la configuración 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 parámetro "browseable" esto sirve para ingresar a la maquina por medio de windows y linux de forma remota y ver la carpeta que esta compartida)

Compartir impresoras

Ver Compartir una impresora con Windows 2000/XP

Para probar la correcta sintaxis del archivo de configuración

Utilizamos la aplicación testparm, la cual verifica la configuración y despliega las carpetas compartidas en éste:

$ testparm

Quitar lineas de comentarios

Para eliminar las líneas que corresponden a comentarios:

$ su
# mv smb.conf smb.conf.orig
# testparm -s smb.conf.orig > smb.conf

Nota: el comando su nos logea como root, para lo cual debemos tener habilitado el usuario root con contraseña. Para ello ejecutas:

$ sudo passwd root

Parámetros de configuración

Globales

  • check password script : permite definir un script que verificará la complejidad de la contraseña definida, retornando 0 si es aprobada por el programa indicado
  • debug uid : permite registrar los uid, gid, euid y egid del usuario que solicita un recurso en el log del servidor
  • domain master : habilita a nmbd con un nombre NetBios específico que lo identifica como maestro de dominio del grupo de trabajo indicado
  • guest account : usuario utilizado para acceder a los recursos que tienen definido "guest ok"
  • include : incluye otro archivo de configuración complementario
  • debuglevel o log level : permite definir el nivel de detalle del log; incluso por módulo: all ,tdb ,printdrivers ,lanman ,smb ,rpc_parse ,rpc_srv ,rpc_cli ,passdb ,sam ,auth ,winbind ,vfs ,idmap ,quota ,acls ,locking ,msdfs ,dmapi ,registry
  • map to guest : le indica al servidor la acción a tomar cuando falla el inicio de sesión de un usuario. inútil en security = share o server
  • max log size : tamaño máximo del log
  • message command : le indica al servidor la acción al recibir un mensaje tipo WinPopup
  • netbios name : nombre netbios del servidor samba
  • null passwords : permite el acceso a usuarios con contraseñas vacías
  • panic action : comando a realizar al caerse smbd o nmbd
  • prefered master o preferred master : indica si samba es preferencialmente maestro en el grupo de trabajo
  • security : determina cómo los clientes responden el logeo (usuario y contraseña) según el "security mode bit" enviado en las negociaciones de protocolo.
    • share : clientes se registran al solicitar un recurso (permite ver la lista de recursos para visitas)
    • user : clientes se registran al solicitar la lista de recursos o solicitar un recurso
    • domain : idéntico al anterior, pero los datos de registro se consultan con controlador de dominio
    • server : idéntico al anterior, pero los datos de registro se consultan con servidor SMB
  • server string : texto desplegado como nombre completo del servidor

usershares

Parámetros de configuración aplicables a las carpetas compartidas a través de nautilus ("Opciones de compartición"):

  • usershare allow guests : las carpetas compartidas serán accedidas por los usuarios sin registrarse
  • usershare max shares : número máximo de carpetas compartidas por usuario
  • usershare owner only : permite compartir sólo las carpetas pertenecientes al usuario
  • usershare path : ruta donde se almacenan las carpetas compartidas por cada usuario (los permisos de la carpeta indicada controlan quienes pueden compartir a través de este medio)
  • usershare prefix allow list : lista separada por comas de las rutas absolutas permitidas para compartir (incluye directorios dentro de estas rutas)
  • usershare prefix deny list : lista separada por comas de las rutas absolutas no permitidas para compartir (incluye directorios dentro de estas rutas)

Recursos

  • administrative share : recurso administrativo. creado por defecto en sistemas MS. Por Ejemplo: C$ , D$ , IPC$.
  • admin users : lista de usuarios con total permiso sobre los recursos (no aplica si secury = share)
  • browsable o browseable : define si el recurso es apreciable en la lista de recursos del servidor
  • comment : permite definir un comentario aplicado al recurso, desplegable en los recursos de toda la red; a través de net view o de smbclient
  • create mode o create mask : permite restringir los permisos de los archivos/directorios creados en un recurso a través de una máscara de permisos
  • force create mode : permite aplicar permisos a los archivos/directorios creados en un recurso
  • directory mode o directory mask : similar a create mode o create mask, aplicado a directorios
  • force directory mode : similar a force create mode, aplicado a directorios
  • directory security mask : mascara de permisos aplicado a clientes Windows NT.
  • group o force group : grupo utilizado como gid del usuario conectado
  • user o force user : usuario utilizado como uid del usuario conectado
  • guest ok : permite acceder a un recurso sin identificarse
  • only guest o guest only : permite acceder sólo a usuarios sin identificación. requiere el parámetro "guest ok"
  • allow hosts o hosts allow : lista de equipos permitidos de acceder al recurso. puede aplicar como global
  • deny hosts o hosts deny : lista de equipos no permitidos de acceder al recurso. puede aplicar como global
  • invalid users : lista de usuarios no permitidos de acceder al recurso
  • only user : permite el acceso sólo a los usuarios en la lista user
  • directory o path : ruta del recurso indicado
  • read list : lista de usuarios que tienen acceso de sólo lectura
  • read only o writeable : no se permite crear ni modificar los archivos/directorios del recurso
  • user , users o username : usuarios con los cuales se probará la contraseña entregada
  • valid users : lista de usuarios permitidos de acceder al recurso
  • invalid users : lista de usuarios no permitidos de acceder al recurso
  • writable o writeable : permite escribir/modificar en el recurso indicado

de impresión

  • print ok o printable : clientes pueden enviar trabajos de impresión a la carpeta indicada
  • printer o printer name : nombre de la impresora a la cual serán enviados los trabajos

Permisos

Los usuarios que ingresan a un recurso público, 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/publico
$ sudo chmod 555 /home/publico

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)

Administración

Cambiar contraseña de un dominio Windows

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.

Agregar 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.

Cambiar contraseña usuario

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.

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

Ojo en Ubuntu 10.04 LTS y 10.10 el comando anterior no va, debes utilizar este:

$ sudo restart smbd

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:

Acceso a los recursos compartidos

Desde Windows

Colocamos en la barra de direcciones de alguna ventana:

\\192.168.3.1\publico

Desde Linux

Debemos instalar el paquete samba-client. Luego, abrimos una carpeta y colocamos en la barra de direcciones:

smb://192.168.3.1/publico/

o

smbclient //192.168.3.1/publico/

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