viernes, 10 de octubre de 2008

Compartir Archivos entre Debian y Windows.


Hola a tod@s, en esta entrada os contare como compartir archivos y la Impresora con Samba.
Samba es un programa Open Source que nos permite compartir archivos e impresoras entre GNU/Linux y Equipos con MS Windows.Lo cual es muy útil ya que podemos tener un servidor de archivos y de impresión basado en GNU/Linux colocado en una red con Equipos Windows.

Toda la información sobre la instalación la encontraras en la Página Oficial de Samba

En este Manual veremos como instalar Samba en un PC con Debian instalado.

1º.-Lo primero es instalar Samba (como siempre pasamos ha ser ROOT, en el caso de utilizar Ubuntu colocas SUDO antes de los comandos)

julian@debian:~$ su
Password:debian:~#apt-get install samba smbfs samba-common
Leyendo lista de paquetes... Hecho
Creando árbol de dependencias
Leyendo la información de estado... Hecho

Paquetes sugeridos:
openbsd-inetd inet-superserver
Paquetes recomendados
smbldap-tools
Se instalarán los siguientes paquetes NUEVOS:
samba samba-common smbclient smbfs
0 actualizados, 4 se instalarán, 0 para eliminar y 0 no actualizados.
Se necesita descargar 7722kB/12,0MB de archivos.
Se utilizarán 30,0MB de espacio de disco adicional después de desempaquetar.
Des:1 http://
es.debian.org etch-updates/main samba-common 3.0.26a-1debian2.3 [2835kB]
Des:2 http://
es.debian.org etch-updates/main smbclient 3.0.26a-1ubuntu2.3 [4887kB]
Descargados 7722kB en 29s (265kB/s)
Preconfigurando paquetes ...
Seleccionando el paquete samba-common previamente no seleccionado.
(Leyendo la base de datos ...
139498 ficheros y directorios instalados actualmente.)
Desempaquetando samba-common (de .../samba-common_3.0.26a-1debian2.3_i386.deb) ...
Seleccionando el paquete samba previamente no seleccionado.
Desempaquetando samba (de .../samba_3.0.26a-1debian2.3_i386.deb) ...
Seleccionando el paquete smbclient previamente no seleccionado.
Desempaquetando smbclient (de .../smbclient_3.0.26a-1debian2.3_i386.deb) ...
Seleccionando el paquete smbfs previamente no seleccionado.
Desempaquetando smbfs (de .../smbfs_3.0.26a-1debian2.3_i386.deb) ...
Configurando samba-common (3.0.26a-1debian2.3) ...

Configurando samba (3.0.26a-1debian2.3) ...
* Starting Samba daemons [ OK ]

Configurando smbclient (3.0.26a-1debian2.3) ...
Configurando smbfs (3.0.26a-1debian2.3) ...

El comando anterior dejara Samba instalado y preparado para su configuración.(es posible que nos pregunte, si queremos que se ejecute como Demonio Independiente o dentro del Subdominio de Inet.Por dejar las cosas mas limpias.diremos que se ejecute como Demonio Independiente).

2º.-El siguiente paso es configurar el archivo de configuración de Samba que se encuentra en /etc/samba/smb.conf,antes de editar este archivo,realizamos una copia de respaldo tecleando:

debian:~#cp -p /etc/samba/smb.conf /etc/samba/smb_12-2-2008_copia.conf

Siempre es bueno realizar una copia de los archivos de configuración y en caso de que cometamos algún error volver a su estado inicial.

Luego para modificar el archivo tecleamos:

debian:~#gedit /etc/samba/smb.conf


En el archivo de configuración cambia workgroup = MSHOME por:

workgroup = MIGRUPO

Donde MIGRUPO es el nombre del grupo de trabajo de MS Windows o el nombre de Dominio, de donde formara parte el servidor Samba.También tienes que tener el mismo grupo de trabajo en tus equipos Windows.
Esto se hace en el icono MI PC, pincha con el botón derecho en propiedades y después en NOMBRE DE EQUIPO o en Panel de control>Sistema>Nombre de Equipo>Cambiar Nombre.

3º.-También tienes que cambiar la linea donde dice"server string" esto es la descripción que verá tu grupo del servidor y debes poner:

server string = %h Servidor de archivos

el signo "%h" lo que hace es imprimir el nombre de host de tu servidor.

Guarda los cambios.

4º.- En este paso veremos 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 GNU/Linux, podemos crear un grupo samba y añadir a este grupo los usuarios que tendrán acceso al servidor :

Para agregar un usuario a Linux tecleamos:

debian:~#adduser nombre_usuario

Nos pedirá la clave que queremos utilizar para ese usuario y algunos datos, mas tarde podemos cambiar sus privilegios.

Si tenemos un usuarios llamado Julian y lo queremos agregar a los usuarios de Samba, tecleamos el siguiente comando:

debian:~#smbpasswd -a julian
New SMB password:
Retype new SMB password:
Added user julian.

Tecleamos la clave que tenga ese usuario para entrar al servidor Samba.

5º.- Ahora vamos a crear un archivo donde estarán los usuarios elegidos para conectarse al Servidor de Samba, para esto tecleamos:

debian:~#gedit /etc/samba/smbusers

En este archivo añadimos la siguiente línea:

nombre_enlinux = "Nombre en Windows"

Aquí nombre_enlinux es el nombre del usuario en Linux en este caso julian y Nombre en Windows es el nombre del usuario de red en Windows. Tenemos que agregar una línea por cada usuario que hayamos creado para Samba.

6º.-Para editar un usuario tecleamos:

debian:~#smbpasswd -a nombre_usuario

Para eliminar un usuario tecleamos:

debian:~#smbpasswd -x nombre_usuario

7º.-Ahora,ya tenemos a los usuarios creados ,vamos a ver, como compartimos archivos y directorios.

Pasamos a modificar el archivo de configuración de Samba:

debian:~#gedit /etc/samba/smb.conf

Buscamos la línea que dice:

; security = user (OJO: con el Punto y Coma ";", tienes que quitarlo)

Y la cambiamos por:

security = user
username map = /etc/samba/smbpasswd ( Sin Punto y Coma)

9º.- Con esto estamos diciéndole a Samba que vamos a autentificar por usuario y donde está la lista de los usuarios permitidos.

Para dar acceso a los usuario a sus directorios home o personales, hacemos lo siguiente:

En el mismo archivo, buscamos las línea donde dice:

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

Y le quitamos el ";" para des comentarlos, y en writable,cambiamos "no" por "yes" para que el usuario pueda escribir en el directorio.

OJO: Siempre que cambiemos la configuración del archivo smb.conftenemos que ejecutar el siguiente comando:

debian:~#testparm
Load smb config files from /etc/samba/smb.conf
Processing section "[homes]"
Processing section "[printers]"
Processing section "[print$]"
Loaded services file OK.
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions

[global]
workgroup = BENIDEBIAN
server string = %h Servidor de archivos
obey pam restrictions = Yes
passdb backend = tdbsam
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\sUNIX\spassword:* %n\n *Retype\snew\sUNIX\spassword:* %n\n *passwd:*password\supdated\ssuccessfully* .
username map = /etc/samba/smbpasswd
syslog = 0
log file = /var/log/samba/log.%m
max log size = 1000
dns proxy = No
panic action = /usr/share/samba/panic-action %d
invalid users = root

[homes]
comment = Home compartido;
valid users = %S
read only = No

[printers]
comment = All Printers
path = /var/spool/samba
create mask = 0700
printable = Yes
browseable = No

[print$]
comment = Printer Drivers
path = /var/lib/samba/printers

Lo que hace este comando, es verificar que los parámetros del archivo smb.conf estén correctos, después de que comprobemos que esta bien tecleamos:

debian:~#/etc/init.d/samba restart
* Stopping Samba daemons... [ OK ]
* Starting Samba daemons [ OK ]

para aplicar los cambios.

Ahora, si queremos compartir un directorio que llamaremos, compartido hacemos lo siguiente,

1º.-Creamos la carpeta que queremos compartir:

debian:~#mkdir /home/compartido

Y cambiamos los permisos:

debian:~#chmod 777 /home/compartido

Este directorio lo puedes crear donde quieras. Ahora vamos a modificar el archivo de /etc/samba/smb.conf, Agregando las siguientes lineas al final del archivo:

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

Explicación de lo que modificamos:

comment: Simplemente es un comentario

path: Es donde esta la carpeta que queremos compartir

public: Es si quieres hacer esta carpeta disponible publicamente o no

writable: Permite si se puede escribir en la carpeta o no

create mask y directory mask s la mascara con la que se crearan los archivos (es decir que privilegios tendrán los archivos y directorios )Para permitir cualquier acción en la carpeta coloca 0777.

force group y force user: Es para forzar que solo un grupo específico o usuario se pueda conectar a esta carpeta.

Si queremos que solo un grupo de usuarios pueda acceder a la carpeta añadimos esta línea después de writable:

valid users = nombre_usuario1 nombre_usuario2

Donde puedes agregar los usuarios que quieras que tengan acceso.

2º.-Después de que termines de agregar las carpetas que quieras compartir Guardamos el archivo, probamos y reiniciamos el servidor de Samba tecleando:

debian:~#testparm
Load smb config files from /etc/samba/smb.conf
Processing section "[homes]"
Processing section "[printers]"
Processing section "[print$]"
Processing section "[compartido]"
Loaded services file OK.
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions

[global]
workgroup = BENIDEBIAN
server string = %h Servidor de archivos
obey pam restrictions = Yes
passdb backend = tdbsam
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\sUNIX\spassword:* %n\n *Retype\snew\sUNIX\spassword:* %n\n *passwd:*password\supdated\ssuccessfully* .
username map = /etc/samba/smbpasswd
syslog = 0
log file = /var/log/samba/log.%m
max log size = 1000
dns proxy = No
panic action = /usr/share/samba/panic-action %d
invalid users = root

[homes]
comment = Home Directories;
valid users = %S
read only = No

[printers]
comment = All Printers
path = /var/spool/samba
create mask = 0700
printable = Yes
browseable = No

[print$]
comment = Printer Drivers
path = /var/lib/samba/printers

[compartido]
comment = Archivos Compartidos
path = /home/julian/compartido
force user = nobody
force group = nogroup
read only = No
create mask = 0700
directory mask = 0700
guest ok = Yes


debian:~# /etc/init.d/samba restart
* Stopping Samba daemons... [ OK ]
* Starting Samba daemons [ OK ]

Ahora, pasaremos a compartir la Impresoras

Para compartir impresoras busca estas dos líneas en el archivo /etc/samba/smb.conf:

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

Y descomen talas: (les quitas el simbolo "#")

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

Guardamos el archivo, probamos los parámetros de smb.conf y reiniciamos el servidor de Samba tecleando:

debian:~# testparm
Load smb config files from /etc/samba/smb.conf
Processing section "[homes]"
Processing section "[printers]"
Processing section "[print$]"
Processing section "[compartido]"
Loaded services file OK.
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions

debian:~# /etc/init.d/samba restart
* Stopping Samba daemons... [ OK ]
* Starting Samba daemons [ OK ]

Y eso, es todo, a partir de ahora y si no tenemos problemas, solo tienes que empezar a compartir tus carpetas e Impresoras.

UN SALUDO.

No hay comentarios: