Está en la página 1de 21

Samba

Compartir directorios en Linux


Consideraciones a tener en cuenta:
1 - La implementacin de acl + cifs no es exactamente samba si bien todo esto puede funcionar
en conjunto.
2- En caso de tener implementado el protocolo afp de apple en redes con sistemas ubuntu el
comportamiento predeterminado de nautilus es descubrir afp y no samba.
En cuyo caso debemos conectarnos va nautilus con conectar a servidor o con comando explcito
smb://.
3 - Tener en cuenta que en un ambiente Linux Microsoft principalmente con sistemas mixtos 7 y 8
que tiene comportamientos distintos y an mas con xp.
Sobrecarga de permisos
Puede ocurrir que exista contradiccin entre los permisosdelsistemaUnix y los permisos
delsistemasamba, por ejemplo, podemos tener una carpeta compartida llamada almacen
software con permisosUnix de lectura, escritura y ejecucin para todos, en cambio si en
el sistemasamba el archivo de configuracin de samba, dicho recurso tiene el parmetro read
only=yes, no ser posible realizar cambios ya que est compartido con permiso de 'solo
lectura'.
Cuando los permisos Unix se contradicen con los permisos samba, el permiso efectivo es el ms
restrictivo de los dos.
Para simplificar la administracin de los permisos, se recomienda no ser restrictivos en los permisos
de recurso compartido con samba y aplicar los permisos en el Sistema Unix, de esta forma, adems
de ser efectivos cuando accedemos a travs de samba, tambin lo seguirn siendo si accedemos de
otra forma como por ssh, ftp, o nos sentamos en la consola del servidor.
En caso de necesitar un directorio con restricciones de lectura/escritura por parte algn usuario
recordar que los permisos se heredan del directorio padre y si queremos que cada subdirectorio
tenga sus propios permisos en principio habra que utilizar samba en combinacin con ACLs o
listasdeacceso.
Si no en todo caso colocar el directorio en otra lnea del rbol.
Paquetes necesarios
Paquetes sambalinux, los coloreados son opcionales.
cifutils
nbtscan
samba
smb4k

smbclient
smbc
smbfs

1-21

smbnetfs
winbind
ntfs3g

ntfsconfig ntfsprogs

Tenemos los programas (paquetes) en modo grfico Ubuntu 12.04 a 14.04 entre otros:
gadminsamba
samba
swat

actuanlmente no disponible enel repsoitorio Ubuntu

Apple

Totalmente opcionales y solo en el caso estrictamente necesario


paquete con implementacin protocolo netatlak de apple con afpsamba

netatalk

v2
afpfsngutils

paquete de implementacin cliente para Apple Filing Protocol AFP y


utility programs

Consideraciones bsicas de seguridad de red


Eventualmente en el caso de tener un firewall o cortafuegos en el sistema Samba y Samba
Client abrir los puertos (puede que 135 y 136 no sean necesarios):
udp
tcp

135136137138139
139445

Tambin eventualmente en la configuracin de samba comprobar la interfaz correspondiente


como deconfianza.
Relacin con los servicios o demonios
TCP
TCP
UDP
UDP

139
445
137
138

smbd
smbd
nmbd
nmbd

Administracin modo grfico fcil


Nautilusnautilusshare

Extensin de nautilus para compartir carpetas usando samba.


Aplicacin sambaconfig dentro de gnomesistema o preferencias
Se ven otras alternativas mas adelante.

Administracin modo comando


Existen 2 maneras de darle permisos sobre una carpeta compartida:
2-21

1 Dejar el propietario y grupo original y modificar permisos.


sudochmodR777nombre_carpeta

2 Cambiar el propietario y grupo por nobody nogroup


sudochownRnobody.nogroupnombre_carpeta

Usuarios Password o contraseas samba-linux


Consideraciones
Las cuentas entre el servidor Samba y las mquinas Windows deben estar sincronizadas.
El usuario y su clave de una mquina con Windows en el servidor Samba debe existir con ese
nombre y esa clave.
Se lo da de alta sin loguin Linux y se establece su password con los siguientes comandos:
sudouseradds/sbin/nologinusuariowindows
sudosmbpasswdausuariowindows

Si no queremos utilizar contraseas tal vez conviene definir el nombre de usuario de linux igual al
de windows o viceversa aunque no es estrictamente necesario que tenga el mismo nombre.
Por otro lado sino queremos que nos pida usuario y passwd en los sistemas microsoft debemos
asignarle a este usuario el passwd nulo en sambalinux para que cuando accedamos desde
mquinas microsoft a lo sumo nos los pida 1 sola y lo memorice y luego ya no lo pida mas.
Para esto si deseamos ponerle contrasea por motivos de seguridad:
sudosmbpasswdausuariolinux

Si no necesitamos la contrasea solo darle enter.


Cambiar contrasea de un usuario en un dominio Windows desde Ubuntu
Para cambiar la contrasea de un usuario de dominio de Windows no es necesario ir a un sistema
Windows sino que se puede hacer desde el propio Ubuntu.
Para hacerlo slo hay que abrir un terminal y ejecutar este comando:
smbpasswdrWindowsDCUnombreUsuario

Donde WindowsDC es en este caso la direccin del controlador de dominio de Windows y


nombreUsuario el usuario en el dominio.
Al ejecutar el comando pedir la antigua contrasea en primer lugar y posteriormente pedir la
nueva.
Una vez hecho esto ya podemos hacer login con la nueva contrasea.

Crear y eliminar usuarios samba modo comando


Para samba se pueden utilizar 3 tipos de usuarios diferentes:
usuarios linux con loguin en linux tambin usuarios samba
usuarios samba sin loguin en linux.

3-21

Dentro del ltimo grupo tenemos 2 opciones:


usuarios nologin
usuarios /bin/false

Usuarios

linux
del tipo nologin

Crear usuario sin loguin en el sistema Linux:


(ver mas abajo usuarios linux tipo /bin/false)
sudouseradds/usr/sbin/nologinrecepcion
sudopasswdrecepcion
sudosmbpasswdarecepcion

Crear grupo
En linux:
sudogroupaddgrupo
sudogroupaddrecepcion

Modificar grupo:
sudousermodgusuariosrecepcion
groupsrecepcion
sudousermodGusuarios,sambientalrecepcion

Eliminar usuario de samba y luego de Linux:


sudosmbpasswdxrecepcion
sudodeluserrecepcion

Agregar grupo de no loguin en Linux a samba y 1 usuario de samba a este grupo de samba.
Creamos el grupo llamado gruposamba:
sudouseradds/sbin/nologingruposamba

creamos y agregamos el usuario llamado ususamba al grupo


sudouseraddggruposambas/sbin/nologinususamba

Usuarios linux tipo /bin/false


Tambin podemos ser mas drsticos y en vez de utilizar un usuario nologin podemos usar el tipo
/bin/false con no shell no passwd en el sistema Linux y tambin funciona.
Tratamos al usuario linux dentro de samba de la misma manera ya sean del tipo nologin o
/bin/false.
Por ejemplo:
sudoaddusershell/bin/falsenocreatehomedisabledpasswordususamba
sudoaddusershell/bin/falsenocreatehomedisabledpasswordususamba

4-21

Aadiendoelusuario`ususamba'...
Aadiendoelnuevogrupo`ususamba'(1001)...
Aadiendoelnuevousuario`ususamba'(1001)congrupo`ususamba'...
Nosecreaeldirectoriopersonal`/home/ususamba'.
Cambiandolainformacindeusuarioparaususamba
Introduzcaelnuevovalor,opresioneINTROparaelpredeterminado
Nombrecompleto[]:ususamba
Nmerodehabitacin[]:
Telfonodeltrabajo[]:
Telfonodecasa[]:
Otro[]:
Escorrectalainformacin?[S/n]s
$

Luego asignamos passwd a ususamba


sudosmbpasswdaususamba

Para eliminar al usuario de samba y luego del sistema Linux:


sudosmbpasswdxususamba
Deleteduserususamba.
sudouserdelususamba

Luego si queremos eliminar el grupo:


sudogroupdelgruposamba

Agregar usuario en samba


Suele pasar que cuando entramos desde windows a una carpeta compartida en ubuntu, pide usuario
y contrasea o passwd, podemos hacer lo siguiente:
sudosmbpasswdatu_usuario

si deseamos ponerle contrasea por motivos de seguridad.


Si no necesitamos la contrasea solo darle enter.
Otras opciones de smbpasswd
d
e
n

Deshabilitar un usuario
Habilitar un usuario
Usuario sin password

este parmetro necesita en seccin 'global' del archivo de configuracin de samba smb.conf:
nullpasswords=yes

-x
-m

Elimina el usuario
Indica que es una cuenta de mquina (equipo) pero en dominios

5-21

Asignacin de passwd y/o habilitacin de usuarios al servicio samba en la mquina que comparte el
recurso sobre un usuario existente en linux
sudosmbpasswdanombredeusuario_linux

Ejemplo de salida asignacin de passwd samba al usuario g


sudosmbpasswdag
[sudo]passwordforg:
NewSMBpassword:
RetypenewSMBpassword:
Addeduserg.

Para ms informacin se puede consultar la pgina del manual de smbpasswd.

Cambiar usuario
Ahora que ya tenemos compartidoa la carpeta, nos queda crear un nombre de usuario y contrasea
en el servidor Samba para que el ordenador con Windows pueda acceder a dicha carpeta, para ello
abrimos una consola e introducimos:
sudouseradds/sbin/nologinusuariowindows

La lnea anterior nos permite crear un usuario en el sistema Linux que tenga el mismo nombre que
el cliente windows (o sea la mquina que se conectar a nuestra carpeta compartida Linux) pero con
login nulo en Linux por cuestiones de seguridad y practicidad.
Luego a este pseudo usuario de Linux nos permitir crearlo y asignarlo al sistema samba.
Donde usuariowindows es el usuario que va a acceder a la carpeta desde Windows.
Si /sbin/nologin no existe, probar con /usr/sbin/nologin.
Si no encuentra el archivo nologin, tambin podemos crear tu usuario normalmente (que se ejecuta
en Linux o sea tiene login en Linux) y luego ejecutar la sentencia:
sudopasswddusuariowindows

Luego lo asignamos con un passwd a samba


sudosmbpasswdausuariowindows

A continuacin nos pedir la contrasea que queramos asignar a dicho usuario.


Para deshabilitar un usuario cualquiera de sambalinux
sudosmbpasswddusuariolinux
sudosmbpasswddusuariowindows

Para eliminar un usuario cualquiera de samba-linux


sudosmbpasswdxusuario

6-21

Para reiniciar samba


Luego de efectuar algn cambio en el archivo /etc/samba/smb.conf debemos reiniciar samba,
para ello:
sudo/etc/init.d/sambarestart
sudoservicesmbdrestart

Eventualmente tambin reiniciar el demonio nmbd:


sudoservicenmbdrestart

El comando anterior es utilizado para publicar o republicar el nombre netbios o los recursos
propios en la red, principalmente cuando quedan invisibles desde sistemas Microsoft y/o solo
accesibles por ip y no por resolucin de nombres.
Ojo en Ubuntu 10.04 LTS y 10.10 el comando anterior no va, debemos utilizar este:
sudorestartsmbd

Con todo lo anterior deberamos 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 la perspectiva de un cliente al igual que sucede en los sistemas Windows, Samba ofrece dos
modos de seguridad, denominados :
share y user:

En el modo share, cada vez que un cliente quiere utilizar un recurso ofrecido por Samba, debe
suministrar una contrasea de acceso asociada a dicho recurso.
En el modo user, el cliente debe establecer en primer lugar una sesin con el servidor Samba, para
lo cual le suministra un nombre de usuario y una contrasea.
Una vez que Samba valida al usuario, el cliente obtiene permiso para acceder a los recursos
ofrecidos por Samba.
La seleccin del nivel de seguridad se realiza con la opcin security , la cual pertenece a la seccin:
[global].

Sus alternativas son las siguientes:


security=share|user|server|domain

Desde la perspectiva del cliente, el nivel share corresponde al mododeseguridad share y los
niveles:
user, server

y domain

Estos corresponden todos ellos al mododeseguridaduser.


A continuacin se describen someramente los cuatro niveles.
7-21

El nivelshare es utilizado normalmente en entornos sin un dominio NT, dado que es


complejo y costoso el mantenimiento de una tabla de usuarios global para la red.
En el niveluser, valida al usuario del sistema Unix donde se ejecuta samba.
La validacin es idntica a la que se realizara si el usuario iniciase una sesin local en el ordenador
Unix. Para que este mtodo sea aplicable, es necesario que existan los mismos usuarios y con
idnticas contraseas en los sistemas Windows y en el sistema Unix donde Samba se ejecuta.
Tratamiento de los accesos como invitado
Cuando se utiliza el nivel de seguridad domain, el tratamiento de los accesos como usuario
invitado requiere algunas consideraciones.
En primer lugar, samba considera a un usuario como invitado slo cuando este usuario est dado de
alta en el dominio NT al cual pertenece samba pero no est dado de alta en el sistema Unix donde
samba se ejecuta.
De esta forma, usuarios de otros dominios (en los que no se confa) no pueden acceder a Samba, ni
siquiera como invitados.
Para conseguir que usuarios ajenos al dominio NT se consideren invitados, es necesario activar la
siguiente opcin en la seccin:
[global]:
maptoguest=BadUser

De esta forma, cualquier usuario no conocido ser tratado como invitado.


Samba considerar que los accesos al sistema de ficheros Unix los realizar el usuario especificado
en la opcin globalguestaccount.
En cualquier caso, el acceso como invitado debe permitirse expresamente para cada recurso con la
opcin guestok.
Para preservar y evitar conflictos entre los permisos de nobody.nogroup de samba y los usuarios
grupos locales propietarios de las carpetas compartidas en la definicin de instancia de cada recurso
aadir al bloque del recurso en el smb.conf.
forceuser=user
forcegroup=group

Si desea controlar los permisos de archivo que puede utilizar:


forcecreatemode

Para los permisos de directorio que puede utilizar


forcedirectorymode

con esto podemos interactuar con los archivos y carpetas desde la red y local sin conflictos, ajustar
user y group a las necesidades del caso
Samba requiere autenticar una cuenta, para lo que necesita un nombre de usuario y una contrasea.
Por ello, para montar un recurso samba o smb se utiliza un comando especfico (como root o sudo),
denominado smbmount, cuya utilizacin es la siguiente:
8-21

smbmount//ordenador/recursogrupo_de_trabajo_o_dominodirectorio_localU
nombre_de_usuarioW

Tras ejecutar este mandato se requiere la introduccin de la contrasea.


Si elservidor SMB valida al usuario, a partir del directorio directorio_local se consigue el
acceso al recurso//ordenador/recurso.
Para desmontar:
umount//ordenador/recurso

Ejemplo completo
Funciona en clientes Linux y microsoft w7
Condiciones: se comparten 2 carpetas en un sistema Linux bajo samba.
1 carpeta llamada red con acceso irrestricto lectura escritura de invitados
1 carpeta llamada red 2 con control de cuenta o sea usuario y passwd
Opcional:
Eventualmente agregar los usuarioslocales a sambasin password y a los gruposnobody
nogroup de linux.
En algunos casos dependiendo de la configuracin global y las distintas versiones de linux samba y
windows
Tendremos que generar los usuarios windows en linux pero sin loguin correspondientes a
los clientes windows y luego agregarlos al samba-linux pero sin passwd, esto har un loguin
transparente para los clientes windows al samba-linux.
Eventualmente esta tcnica puede ser utilizada para crear cuentas de usuario virtuales a
carpetas protegidas con usuario y passwd en samba-linux.
Veamos los pasos:
Asignacin de passwd sobre un usuario existente en linux al servicio samba en el mismo sistema
linux que comparte el recurso.
sudosmbpasswdanombredeusuario_linux

Ambas carpetas estn definidas como


sudochownRnobody.nogroupred
sudochownRnobody.nogroupred2
sudochmodR7777red
sudochmodR777red
sudochmodR7777red2

En la mquina que sirve estos recursos se crearon las cuentas necesarias para su acceso desde los
distintos usuarios o clientes en este caso las cuentas usu y pp de clientes windows:

9-21

usu
pp

Estas cuentas son de acceso nulo en el sistema Linux.


Ejemplo usu
usuario:
passwd:

usu
1234

Creamos el usuario usu en el sistema Linux (ni siquiera hace falta passwd):
sudouseradds/sbin/nologinusu

Creamos el usuario usu en el sistema sambaLinux y le asignamos passwd samba:


sudosmbpasswdausu

Archivo bsico resultante de configuracin smb.conf


#Funcionaenubuntu
[global]
serverstring=seru1264
workgroup=ES
netbiosname=seru1264
maptoguest=baduser
usernamemap=/etc/samba/smbusers
encryptpasswords=true
panicaction=/usr/share/samba/panicaction%d
[red]
security=share
path=/home/g/red/
public=yes
readonly=no
nullpassword=yes
guestok=yes
browseable=yes
writable=yes
forceuser=g
forcegroup=users
[red2]
security=user
path=/home/g/red2/
browseable=yes
guestok=no
nullpassword=no
validusers=usu,pp
readlist=usu,pp
writelist=usu,pp

10-21

forceuser=g
forcegroup=users

Otra forma vlida de realizar el uso compartido pblico sin usuario y/o contrasea o password
desde los distintos clientes ya sean windows o linux es el usuario nobody sin contrasea.
sudosmbpasswdannobody

lo anterior nos crear el usuario nobody en samba sin contrasea.


Para completar esto cada vez que un usuario quiere acceder a este recurso compartido como
invitado, tendr que hacerlo iniciando sesin como "nobody".
Ahora tenemos una configuracin de Samba pblica perfectamente vlida.
Pero para esto debemos agregar algunas pautas a global del smb.conf como:
[global]
#...
guestaccount=nobody
maptoguest=baduser

Directorios compartidos protegidos con passwd


Veamos una configuracin de ejemplo mixta carpetas de libre acceso al pblico como en la seccin
anterior y las carpetas protegidas por cuentas de usuario quedara agregar al smb.conf algo
parecido a esto:
En samba no podemos (por lo menos de manera fcil) colocar o anidar un directorio con passwd
dentro de otro directorio compartido de acceso irrestricto ya que este hereda los permisos y por lo
tanto sera de libre acceso.
Volvamos al ejemplo:
[red]
path=/home/g/red/
security=user
browseable=yes
guestok=no
nullpassword=no
validusers=usu,pp
readlist=usu,pp
writelist=usu,pp

Luego de testparm en realidad queda as:


[red]
path=/home/g/red/
validusers=usu,pp
readlist=usu,pp
writelist=usu,pp

No hacen falta las definiciones borradas en el nuevo esquema de samba.

11-21

Nota importante:
La anterior configuracin de directorio con contrasea solo funciona con Linux y 7.
No funciona con ambiente mixto microsoft, solo con 7.
No funciona con xp ni 8 no nos deja acceder al recurso con passwd, funciona siempre y cuando
hagamos otros ajustes.
-----------------------------------------------------------------------------------------------------------------Nivel de protocolo samba
clientmaxprotocol(G)

El valor del parmetro (una cadena) es el nivel de protocolo ms alto que ser apoyado por el
cliente.
Los valores posibles son:
CORE: Versin

de apertura sin ningn concepto de nombres de usuario.

COREPLUS:Ligeras
LANMAN1:

mejoras de eficiencia en el ncleo.

Primer versin moderna del protocolo con soporte para nombres largos de archivo.

LANMAN2: Actualizacin

del protocolo anterior.

Actual versin actualizada del protocolo anterior utilizado hasta windows NT.
Conocido como CIFS.
NT1:

SMB2: Re

implementacin del protocolo SMB utilizado a partir de Windows Vista y versiones


posteriores de windows. SMB2 tiene sub protocolos disponibles.
SMB2_02:La versin
SMB2_10: Versin

ms antigua SMB2.

windows 7 de SMB2.

SMB2_22:Versin

temprana de SMB2 windows 8.

SMB2_24:Versin

beta de SMB2 de windows 8.

Por defecto SMB2 selecciona la variante SMB2_10.


SMB3: El
SMB3

mismo que SMB2 utilizado por windows 8.

tiene sub-protocolos disponibles:

SMB3_00:

versin SMB3 de windows 8 en su mayora los mismos que SMB2_24.

Por default o defecto SMB3 selecciona una variante de SMB3_00.


Normalmente esta opcin no se debe establecer como la fase de negociacin automtica en el
protocolo SMB este solos se encarga de elegir el protocolo adecuado.
Default:clientmaxprotocol=SMB3

12-21

Ejemplo de parmetros de protocolos: clientmaxprotocol y clientminprotocol.


clientmaxprotocol=LANMAN1

Este ajuste controla la versin mnima protocolo que el cliente


intentar usar. Normalmente esta opcin no se debe establecer como la fase de negociacin
automtica en el protocolo SMB se encarga de elegir el protocolo adecuado.
clientminprotocol(G):

Ejemplo:
Default:clientminprotocol=CORE

Ejemplo:
clientminprotocol=NT1

-----------------------------------------------------------------------------------------------------------------Windows 8
Este problema se debe a que se efecta un control de firmas entre participes de la red samba.
Es la caracterstica "SecureNegotiate" que se ha agregado a SMB3.0 para Windows Server
2012 y Windows 8.
Esta caracterstica depende de la firma correcta de las respuestas de error por todos los servidores de
SMBv2, incluidos los servidores que admiten slo un protocolo versiones 2.0 y 2.1.
Algunos servidores de archivos de terceros no devuelven una respuesta de error por firmado.
Por lo tanto, se produce un error en la conexin.
Una solucin rara ..
En Windows 8 puede crear dos tipos de cuentas de usuario.
Si optamos por crear una nueva cuenta sin registro en cuenta Microsoft (cuenta local) se puede
autenticar normalmente como windows 7.
Pero si elige el tipo de cuenta Microsoft, entonces no se puede acceder a partes de la red samba con
las credenciales habituales.
Para solucionar esto en w8 en parte es crear cuentas locales.
La solucin que corresponde:
Windows 8 y Windows 2012 introdujo una caracterstica "SecureNegotiate" o "Negociar
Seguridad" a SMB, y estn configurados para requerir Secure Server Signing o Servidores
seguros con firma de todos los servidores SMB o sea no negocia una mierda.
La solucin est en setear al servidor SMB para habilitar la firma (asumiendo que el servidor es
capaz de firmar), o de decirle a su cliente (s) de Windows 8 que desactive "Secure Negotiate".
Para evitar este problema, utilice uno de los mtodos siguientes:
Control de firmas
Verificar la configuracin de seguridad, abrir la directiva correspondiente como la siguiente:
ComputerConfiguration\WindowsSettings\SecuritySettings\Local

13-21

Policies\SecurityOptions\Microsoftnetworkclient:Digitallysign
communications(always)
Configuracin\ConfiguracindeWindowsConfiguracindelequipo\seguridad\
Directivaslocales\Opcionesdeseguridadclientedered\Microsoft:firmar
digitalmentelascomunicaciones(siempre)

Esto controla si el componente SMB del lado del cliente requiere la firma de paquetes.
Si el cliente de red de Microsoft: firmar digitalmente las comunicaciones va a cambiar siempre el
cifs.signing.enable de apagado a encendido.
Del lado del servidor samba requerir firma en el servidor de archivos de terceros
Para requerir la firma en el cliente SMB o el servidor SMB, activar la opcin:
"RequireSecuritySignature".
Consultar la documentacin del fabricante para obtener instrucciones establecer la configuracin de
firma "obligatoria" en el servidor del proveedor SMB.
Puede habilitar la firma mediante PowerShell en un cliente Windows Server 2012 o Windows 8.
Para ello, ejecutar el siguiente comando:
SetSmbClientConfigurationRequireSecuritySignature$true

Del lado cliente desactivar la opcin "Negociarseguros"


Podemos deshabilitar la opcin de SecureNegotiate con PowerShell en un cliente Windows
Server 2012 o Windows 8.
Para esto, ejecutar el siguiente comando:
SetSmbClientConfigurationRequireSecuritySignature$false

Efectuar la anterior desde windows power shell es mas seguro o lo mismo desde el registro:
"HKLM\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters"
RequireSecureNegotiateValue0Force
"HKLM\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters"
RequiresSecureSignature en 0

Para Samba servers set "serversigning=mandatory" en el archivo smb.conf.


O serversigning=required
Aunque la siguiente lnea puede no ser necesaria si corremos testparm
encryptpasswords=yes

En este ejemplo esta carpeta se comparte a varios usuarios con passwd y se explicitan en los
permisos
14-21

Si el equipo remoto todava pide contrasea, pruebe a comprobar los registros de samba para ms
informacin.
----------------------------------------------------------------------------------------------------------------------Para algunas otras cuestiones tambin puede ser necesario usar la librera libpamsmbpass
Otro problema tpico:
Si en un servidor que tena el usuario nobody regresa:
NT_STATUS_LOGON_FAILURE
ntlm_password_check:NONT

contrasea almacenada para el usuario nobody, que nos seala que el samba ya tena un usuario
nobody configurado.
Aunque nadie volvi a usar pdbedit, confirma que samba estaba tratando de usar nobody en lugar
del "guest" porque el arreglo es sacar nobody de samba y todo funcionaba bien con:
pdbeditxnobody

Problema conocido
Caso especial con cuenta nobody
Los clientes de Windows para navegar por acciones como guest invitado y se les asignan a la
cuenta de nobody. Sin embargo existe un problema:
Los archivos de los recursoscompartidos pasan a tener propiedad de nobody.
Entonces los usuarios de clientesdewindows pueden hacer lo que quieran en el archivo
situacin que es deseada.
Sin embargo, si un archivo no es propiedad de nobody ejemplo un caso tpico:
rwxrwr1nobodymedia252125Dec182011rss.dat
rwxrwr1usermedia252125Dec182011rss.dat

Entonces los usuarios que acceden desde clientes Windows no puede tocar el archivo, Windows
siempre dice que necesita permiso de "SERVER\usuario" para cambiar el archivo.
Sin embargo no hay usuario nobody en el grupo media.
#From/etc/group
media:x:1002:user,nobody

Este problema es porque el usuario no tiene comunicacin como el grupo primario.


Por que los usuarios de clientes de Windows intentan escribir el archivo como user.user en lugar
de user.media.
En este caso el grupo media es un ejemplo ajustarlo a nuestras necesidades.
Una manera sencilla de arreglar este problema es chowntodos los archivos a nobody.media dentro
de /data/media que est compartiendo y obligando a los clientes a escribir como nobody.media.
Para esto smb.conf se vera as
15-21

[global]

guestaccount=nobody
[media]
security=user
path=/data/media
browsable=yes
guestok=yes
guestonly=yes
readonly=no
createmask=0765
forceuser=nobody
forcegroup=media

Ahora podemos hacer que los archivos de titularidad de cualquier usuario de los usuarios y de
samba pueden editarlos an a causa de la pertenencia al grupo.
Aparte para confirmar la correcta sintaxis de smb.conf con el comando testparm podemos utilizar
el comando:
cd/etc/samba

Luego cualquiera de los 3


testparm
testparmsmb.conf
testparms

Ante el mensaje
$testparm
Loadsmbconfigfilesfrom/etc/samba/smb.conf
rlimit_max:increasingrlimit_max(1024)tominimumWindowslimit(16384)

Es una advertencia, se puede ignorar.


Clientes de Windows 7 deben tener exactamente el mismo nmero de identificadores abiertos
disponibles como servidores de Windows, de lo contrario se produce un error en algunas situaciones
de copia de archivos con un mensaje "outofhandles".
Si bien todo funciona igual samba ha cuidado de l para usted, pero es slo para hacerle saber su
lmite se fijo un poco bajo.
Si quisiramos eliminar este aviso agregar en el archivo:
/etc/security/limits.conf
*nofile16384
rootnofile16384

reiniciar.

16-21

Ajuste fino otros archivos a configurar


totalmente opcional pero a veces necesario
Ajustes en el archivo: /etc/nsswitch.conf
#/etc/nsswitch.conf
#
#ExampleconfigurationofGNUNameServiceSwitchfunctionality.
#Ifyouhavethe`glibcdocreference'and`info'packagesinstalled,try:
#`infolibc"NameServiceSwitch"'forinformationaboutthisfile.
passwd:compat
group:compat
shadow:compat
hosts:filesmdns4_minimal[NOTFOUND=return]winsdnsmdns4
networks:files
protocols:dbfiles
services:dbfiles
ethers:dbfiles
rpc:dbfiles
netgroup:nis

En la lnea en amarillo est el orden de resolucin de nombres que debemos colocar tal cual este.
Por otro lado en el /etc/samba/smb.conftenemos algo anlogo.
Recordemos que en la seccin global del smb.conf debemos tener una lnea donde establecemos el
orden de bsqueda entre los distintos sistemas.
nameresolveorder=lmhosts,host,bcast,wins

Ahora para hacer efectivos los cambios podemos reiniciar samba con:
sudoservicesmbdrestart
sudoservicenmbdrestart

y para estar seguros tambin lo haremos con el servicio winbind de cualquiera de estas 2
maneras:
sudo/etc/init.d/winbindrestart
sudoservicewinbindrestart

Lo siguiente es solo vlido siempre y cuando tengamos ip estticas.


Para resolver localmente los nombres netbios se los asocia con direcciones IP. correspondientes en
el archivo:
/etc/samba/lmhosts

si lo editamos con el comando:

17-21

sudogedit/etc/samba/lmhosts

Encontremos lo siguiente:
127.0.0.1

localhost

Debemos aadir los nombres asociados a la direccin IP que se tenga dentro de la red local,
separados con un espacio de tabulador, quedando as:
127.0.0.1
localhost
192.168.1.1 Linux
192.168.1.2 Windows

Reemplazar las ips de las mquinas Linux y Windows, por las nuestras.
Problemas de firewall
Ante el error no se pudo montar el lugar fallo al obtener la lista de equipos compartidos del
servidor esto es el mismo error en samba, no permite la resolucin de nombres del brodcast, por
lo que no nos permite ver nuestra red de computadoras de windows y marca este error.
eso se soluciona as:
sudogedit/etc/firestarter/inbound/setup

y agregamos la siguiente linea:


$IPTAINBOUNDs$NETpudpmstatestateNEWjACCEPT

Otra solucin es por ejemplo permitir la red con ip 192.168.0.0/16 para permitir conexin de red
domstica ajustndolo a nuestra red.

Samba con plug-in Nautilus


paquete nautilus-share (totalmente opcional)
Nautilus Agregado

manual de funcin de botn derecho Compartir ..

Para aadir los recursos con nautilus (navegador de archivos) debemos crear la siguiente carpeta
con sus respectivos permisos:
sudomkdirp/usr/local/samba/lib/usershares
sudochgrpsambashare/usr/local/samba/lib/usershares
sudochmod1770/usr/local/samba/lib/usershares

Y luego agregamos los siguientes parmetros a la configuracin:


usersharepath=/usr/local/samba/lib/usershares
usersharemaxshares=10

Finalmente se pueden aadir carpetas en nautilus hacindole click derecho, opcin "opcionesde
comparticin".

18-21

Formas ejemplos y accesos a los recursos compartidos


Acceso desde Linux a Windows
Para acceder a los recursos compartidos por Windows, si usamos Konqueror o Nautilus, es tan
simple como escribir en la barra de direcciones:
smb://nombre_maquina_windows

De todos modos, disponemos tambin de herramientas grficas que van muy bien y hacen esta tarea
tan sencilla como navegar por directorios. Algunas de ellas son:
komba
smb4k
xfsamba
Tambin podemos utilizar la lnea de comandos de la siguiente manera:
smbclientL<host>

Nos muestra los recursos compartidos en el equipo <host>.


Podemos especificar el usuario (preguntar la contrasea) con
smbclientL<host>U<usuario>
smbmount//host/nombredelrecurso/mnt/samba

Nos montara el recurso compartido llamado nombredelrecurso en el directorio /mnt/samba.


Antes de hacer esto, el directorio /mnt/samba debe existir.
Una vez montado podremos navegar por /mnt/samba como si fuera el directorio compartido de
windows.
Para especificar el nombre de usuario usaremos:
smbmount//host/nombredelrecurso/mnt/sambaousername=<usuario>
smbumount/mnt/samba

Desmontara el recurso compartido que habamos montado en /mnt/samba.


Hay que hacerlo antes de apagar el ordenador windows, ya que si no saldrn mensajes de error.
Desde Windows
Colocamos en la barra de direcciones de alguna ventana:
\\192.168.3.1\publico

Desde Linux
Debemos instalar el paquete sambaclient.
Luego, abrimos una carpeta y colocamos en la barra de direcciones puede ser por ip o si resuelve
por nombre netbios:
19-21

Recordar que los siguientes comandos no son vlidos desde terminal son solo vlidos desde los
exploradores de archivos como nautilus, konqueror, etc.
Tambin son funcionales desde Firefox.
smb://pcseru1264/red2/
smb://pp@pcseru1264/red2/

Incluye el usuario pp

smb://192.168.13.11/red2/

Desde consola y como root donde 192.168.13.11 es "la IP privada" del sistema linux que contiene
a la carpeta ~/red2
sudosmbclient//pcseru1264/red2/
sudosmbclient//192.168.13.11/red2/

Montaje desmontaje manual desde consola:


sudomounttcifsorw,user,exec//pcseru1264/red/media/samba/pp
sudoumount/media/samba/pp/
sudosmbmount\\\\iponombremquina\\ubicacinrecurso

/puntodemontaje

sudosmbclient\\\\iponombremquina\\ubicacinrecurso

/puntodemontaje

sudosmbmount//iponombremquina//ubicacinrecurso

/puntodemontaje

sudosmbclient//iponombremquina//ubicacinrecurso

/puntodemontaje

Desde nautilus
Condiciones se comparte una carpeta en un sistema linux con acceso irrestricto y de invitado
En redes en que intervenga w7 para que entre directamente al recurso el usuario de linux no deber
tener asignado passwd en samba o este deber ser nulo, caso contrario nos pide usuario y contrasea
y no se puede acceder al recurso.
De lo contrario aunque haya mas de una carpeta compartida en linux una con permisos irrestrictos y
alguna no sea irrestricta el cliente de w7 pide usuario y contrasea, sino realizarlo a mano en modo
comando como figura mas arriba.

Comandos tiles
$smbstatusversion
Version4.1.6Ubuntu
nmblookup<host>

Nos devuelve la Ip del <host> presente en la red.

nbtscan<red/mascara>
nbtscan192.168.13.0/24

20-21

Nos escaneara la red en busca de equipos que comparten recursos.


Por ejemplo:
nbtscan192.168.0.0/24
smbstatus

nos escaneara la red en busca de equipos.

nos permite ver quien est conectado al servidor Samba.

Pero las herramientas grficas nos facilitan enormemente esta tarea y combinan los comandos
anteriores para que podamos trabajar de forma ms cmoda y podamos olvidarnos de estas
instrucciones.
Comando til en caso de problemas de deteccin para ver los puertos:
nmapsTipdelservidordeimpresin

21-21