Servidor ubuntu completo - III parte - servidor SAMBA

Ahora vamos a empezar con cosas más complicadas, pero todavía no vamos a irnos de la red loca, ya que ahora toca el turno de ¡SAMBA! (a bailarrrr!!!!, bueno esto es broma).

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.

Instalación.

Primero instalamos samba:
$ sudo apt-get install samba samba-client smbfs smbclient
esto debería instalar también varias otras dependencias.

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

Como compartir una carpeta.

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.

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

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


Después de montar todo esto se me planteo una duda muy grande, y es que podia hacer para compartir una carpeta de tal forma que se pueda acceder y dejar documentos  e incluso crear carpetas, pero que ya no pudiera modificarlos, leerlos o borrarlos. Estuve durante un tiempo mirando el archivo de configuración y al final desistí y decidí hacerlos a trabes de webmin.

cuando entre en webmin cambie estas directivas en la zona de permisos de archivos de la carpeta escogida y modifique los parametros como aparece en la imagen.









después de observar el archivo de configuración, creo que es la opción "create mode"

Si en algún momento queremos que a un recurso se acceda con usuario y contraseña, tendremos que en la opción "public = yes" poner "public = no" y ya nos pedirá usuario y contraseña.

Para añadir un usuario a samba (para que podamos acceder a ese recurso con ese usuario) tendremos lo primero que crear un usuario.

useradd <nombre usuario>

a continuación

smbpasswd -a <usuario dicho antes>

con esto ya tendremos un usuario agregado a samba y con el podremos acceder a nuestra carpeta.

En dominio hay que poner el grupo de trabajo

1 comentario:

Luis Serra dijo...

Confirmado, si una de las propiedades que le pones a la carpeta compartida es create mode = 000 cambia los permisos al dejar en la carpeta.

Publicar un comentario