Noticia Samba: Servidor Independiente en 1 2 3

¡Hola Amigos!. Les traigo un apretado resumen de como implementar un servidor independiente en Debian utilizando solamente la Consola y un Editor de Texto.

Paso previo para darnos cuenta de las limitaciones y/o complejidades de las interfaces gráficas que existen para implementar un servicio similar, y que invito a probarlas.

No estamos obligando a nadie a que use el método aquí dado. Sólo compartimos nuestra poca experiencia al respecto. Muy personalmente opino que es más sencillo compartir carpetas en Linux mediante la consola y un editor de texto.

Existen muchos artículos en la web sobre como utilizar herramientas gráficas tales como System-Config-Samba en Ubuntu, SWAT, Gadmin-Samba, Zentyal-Samba en Ubuntu, etcétera.

Recomendamos las busquen, instalen, usen y estudien, y luego comparen con el sencillo método aquí propuesto. Como decimos en Cuba, Saque Usted sus propias conclusiones.


El método se puede utilizar para cualquier equipo donde se ejecute Debian, sea una máquina de escritorio o un servidor.

Cualquier duda, lea el artículo anterior “Samba: Servidor Independiente en Debian” o consulte la documentación.

Veremos:

  • Red en el Hogar
  • 1.- Instalamos y configuramos Samba
  • 2.- Creamos los usuarios en nuestro equipo y los adicionamos a la base de datos de usuarios de Samba.
  • 3.- Creamos los directorios a compartir y los reflejamos en el archivo /etc/samba/smb.conf.

En el ejemplo crearemos los usuarios de forma que NO puedan iniciar una sesión local en nuestro equipo. También los crearemos sin carpeta personal. Además explicamos el porqué NO usamos pdbedit para adicionarlos a la base de datos de usuarios de Samba.
Red en el hogar


Al menos una de las PCs tendrá Linux instalado
icon_smile.gif
, y más específicamente Debian. Para el ejemplo escogeremos la pc-hijo, pues el Hijo, que se llama Pepito (Jaimito en otras latitudes) es cardíaco al Software Libre y está cursando estudios al respecto. A cada rato discute con el Padre sobre las ventajas del SWL, pero éste último generalmente le dice “Tengo más experiencia que tu, y eso de Libre… no me convence.”. Entonces el Hijo le responde “Padre, recuerda que tu Windows 7 es una copia pirata…”. Nada, cosas de familia.
icon_smile.gif


Equipos: pc-madre, pc-padre, pc-hija y pc-hijo
Subnet: 192.168.1.0/255.255.255.0
Grupo de Trabajo: CASA
Usuarios: madre, padre, hija e hijo

Los siguientes datos que servirán para resolver los nombres en la red, los debemos adicionar al archivo hosts en cada uno de los equipos. En el caso de Linux el archivo es /etc/hosts, mientras que en los Windows usualmente está en C:\Windows\System32\Drivers\etc\hosts.

192.168.1.10 pc-madre
192.168.1.15 pc-padre
192.168.1.20 pc-hija
192.168.1.25 pc-hijo

De esa forma nos ahorraremos instalar y configurar un DNS. No obstante, el que quiera lo puede hacer mediante la guía “DNS Maestro Primario….”.

El Grupo de Trabajo en el equipo con Debian lo declararemos en el archivo /etc/samba/smb.conf. En Windows, se declara en la Propiedades de MiPc. Las direcciones IP de cada equipo con Windows, se declaran en las Propiedades de la Conexión de Red.

Para comprobar que hasta aquí todo funciona bien, en cualquier equipo ejecutamos ping nombre-pc-remota y el equipo remoto debe devolver la solicitud. Damos por sentado que conocemos como hacer una pequeña red hogareña. El Cómo se Hace no es objetivo de éste post. Pueden preguntar a amigos que ya lo sepan. Solo dimos los tips esenciales.

1.- Instalamos y configuremos Samba


:~# aptitude install samba smbclient
:~# cp /etc/samba/smb.conf /etc/samba/smb.conf.original
:~# dpkg-reconfigure samba



dpkg-reconfigure samba-common







:~# testparm
:~# service samba restart
:~# smbclient -L localhost -U

:~# smbclient -L localhost -U%
Domain=[CASA] OS=[Unix] Server=[Samba 3.6.6]

Sharename Type Comment
--------- ---- -------
print$ Disk Printer Drivers
IPC$ IPC IPC Service (pc-hijo server)
Domain=[CASA] OS=[Unix] Server=[Samba 3.6.6]

Server Comment
--------- -------
PC-HIJO pc-hijo server

Workgroup Master
--------- -------
CASA PC-HIJO

Nota: Si no obtiene de inmediato la salida anterior correctamente, espere unos minutos. También, sino existe un servidor WINS en la red, edite el archivo /etc/samba/smb.conf y elimine el comentario de la línea # wins support = no y déjela así: wins support = yes. Después ejecute como el usuario root: testparm y a continuación service samba restart.

2.- Creamos los usuarios en nuestro equipo y los adicionamos a la base de datos de usuarios de Samba.


adduser --no-create-home --shell /bin/false padre
adduser --no-create-home --shell /bin/false madre
adduser --no-create-home --shell /bin/false hijo
adduser --no-create-home --shell /bin/false hija

Si quieren comprobar la no creación de las carpetas personales ejecuten updatedb y a continuación locate padre o locate madre. Si también quieren comprobar si pueden iniciar sesión en el equipo local los usuarios creados, traten de hacerlo directamente o mediante ssh.

¿Por qué no usamos pdbedit para adicionar los usuarios del equipo a Samba?.

Si ejecutamos man pdbedit, y leemos sobre la opción -a|–create se explica muy bien que añade usuarios a Samba, pero que NO llama al Script de Sincronización de Contraseñas UNIX. Además, pdbedit siempre debe ser invocado por el usuario root o con sus permisos.

Si en el archivo principal de configuración de Samba /etc/samba/smb.conf está declarado unix password sync = yes, que es el parámetro por defecto, pdbedit sólo actualizará los datos en la base de datos de usuarios de Samba y NO lo hará en la base de datos del equipo, o sea en el archivo /etc/shadow.

Un poquito técnico pero es así. Sin embargo, “smbpasswd” SI añade al usuario y sincroniza su contraseña de inmediato, mediante el Script de Sincronización. Usemos pues smbpasswd para no enredarnos en las patas de los caballos.
icon_smile.gif
Nuestro primer usuario a añadir a Samba es root.

smbpasswd -a root
smbpasswd -a padre
smbpasswd -a madre
smbpasswd -a hijo
smbpasswd -a hija

Ahora SI usaremos el comando pdbedit para comprobaciones. Para más información ejecute man pdbedit. No podemos dar todas las respuestas en un post o en toda una serie de ellos. Samba es Muy Grande en verdad.

:~# pdbedit -L
root:0:root
madre:1002:
hija:1004:
padre:1001:
hijo:1003:
:~# pdbedit -Lv

Por conveniencia, adicionamos a todos los usuarios creados al grupo users. Muy conveniente para carpetas públicas con permisos de sólo lectura o de lectura/escritura. El grupo users es un comodín.

:~# adduser madre users
:~# adduser hija users
:~# adduser padre users
:~# adduser hijo users
:~# less /etc/group | grep users

users:x:100:padre,madre,hijo,hija

Hasta aquí todo está Ok en relación a la creación de usuarios.

3.- Creamos los directorios a compartir y los reflejamos en el archivo /etc/samba/smb.conf


Básicamente es lo mismo que lo publicado en el artículo anterior.

Ejemplo 1: Queremos compartir la carpeta /home/hijo/musica para todos los usuarios de la casa. El permiso será de sólo lectura. Ante todo creamos la carpeta /home/hijo/musica y configuramos su propietario y permisos de ser necesarios. Como el usuario hijo ejecutamos:

mkdir /home/hijo/musica
ls -l /home/hijo | grep musica

Para editar el archivo de configuración de Samba con permisos de root, presionamos ALT + F2 y ejecutamos gksu gedit /etc/samba/smb.conf, tecleamos la contraseña del root, y adicionamos lo siguiente al final del archivo:

[pc-hijo-musica]
comment = Carpeta personal de musica
path = /home/hijo/musica
read only = Yes
valid users = @users
read list = @users

Después de las modificaciones al archivo, ejecutamos testparm como el usuario hijo y recargamos el servicio como root. También podemos ejecutar ambos comandos como root:

testparm
service samba reload

Para comprobar el servicio recién configurado lo podemos hacer mediante la ejecución del siguiente comando en el propio equipo:

smbclient -L localhost -U%

Ejemplo 2: Queremos compartir la carpeta /home/hijo/musica para todos. Los permisos serán de lectura/escritura para hijo y de sólo lectura para el resto de la familia agrupados en el grupo users. No tenemos necesidad de modificar el propietario o los permisos en la carpeta. Sólo cambiamos un poco la configuración del recurso compartido en el archivo smb.conf.

[pc-hijo-musica]
comment = Carpeta personal de musica
path = /home/hijo/musica
read only = No
valid users = @users
write list = hijo
read list = @users

Ejemplo 3: El padre de Pepito es cardíaco a las series de acción y ya tiene su disco duro al tope. Le pidió a su hijo que le dejara un espacio en su máquina para él poder llenarlo con las series, y que también sea accesible a toda la familia.

Pepito accedió, por supuesto, pues así le puede pedir a su papá que le compre otro disco duro de 2 teras, lo cual es su sueño. Seguro que Pepito chantajea al padre con el asunto de que le ahorró unos cuantos pesos con la instalación del Windows 7 pirata.
icon_smile.gif


Si ejecutamos como root:

mkdir /home/hijo/series
chown -R root:users /home/hijo/series
chmod -R g+ws /home/hijo/series
ls -l /home/hijo | grep series

Para editar el archivo de configuración de Samba con permisos de root, presionamos ALT + F2 y ejecutamos gksu gedit /etc/samba/smb.conf, tecleamos la contraseña del root, y adicionamos lo siguiente al final del archivo:

[pc-hijo-series]
comment = Las Series de Papá
path = /home/hijo/series
read only = No
valid users = @users
write list = padre, hijo
read list = @users
force create mode = 0660
force directory mode = 0770

Inmediatamente comprobamos la sintaxis básica del smb.conf mediante testparm y recargamos el servicio mediante service samba reload. También podemos ejecutar smbclient -L localhost -U%. en la máquina de Pepito, o smbclient -L pc-hijo -U% desde otro equipo de la casa que tuviera Linux instalado, así como el paquete smbclient.

Y esto es todo por hoy, Amigos!!!.




UjB-Wrclqe4


Continúar leyendo...