









Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Los mejores documentos en venta realizados por estudiantes que han terminado sus estudios
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Descubre las mejores universidades de tu país según los usuarios de Docsity
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
Cómo sincronizar las cuentas entre un servidor Samba y estaciones Windows®. Se detalla el proceso de creación de grupos en el sistema y su asociación a nombres en español en el mapa de grupo de Samba. Además, se incluyen instrucciones para montar volúmenes SMB y se menciona el procedimiento para unirse a un dominio con Windows 95/98/ME y Windows XP Home.
Qué aprenderás
Tipo: Apuntes
1 / 15
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!
SMB (acrónimo de S erver M essage B lock) es un protocolo, del Nivel de Presentación del modelo OSI de TCP/IP, creado en 1985 por IBM. Algunas veces es referido también como CIFS (Acrónimo de C ommon I nternet F ile S ystem, http://samba.org/cifs/) tras ser renombrado por Microsoft en 1998. Entre otras cosas, Microsoft añadió al protocolo soporte para enlaces simbólicos y duros así como también soporte para ficheros de gran tamaño. Coincidentalmente esto ocurrió por la misma época en que Sun Microsystems hizo el lanzamiento de WebNFS (una versión extendida de NFS , http://www.sun.com/software/webnfs/overview.xml).
SMB fue originalmente diseñado para trabajar a través del protoclo NetBIOS, el cual a su vez travaja sobre NetBEUI (acrónimo de N etBIOS E xtended U ser I nterface, que se traduce como Interfaz de Usuario Extendida de NetBIOS), IPX/SPX (acrónimo de I nternet P acket E x change/ S equenced P acket E x change, que se traduce como Intercambio de paquetes interred/Intercambio de paquetes secuenciales ) o NBT , aunque también puede trabajar directamente sobre TCP/IP.
La interconectividad entre un equipo con GNU/Linux® instalado y el resto de los equipos en red en una oficina con alguna versión de Windows® es importante, ya que esto nos permitirá compartir archivos e impresoras. Esta interconectividad se consigue exitosamente a través de SAMBA.
SAMBA es un conjunto de programas, originalmente creados por Andrew Tridgell y actualmente mantenidos por The SAMBA Team, bajo la Licencia Publica General GNU, y que implementan en sistemas basados sobre UNIX® el protocolo SMB. Sirve como reemplazo total para Windows® NT, Warp®, NFS® o servidores Netware®.
Los procedimientos descritos en este manual han sido probados para poder aplicarse en sistemas con Red Hat™ Enterprise Linux 4, o equivalentes o versiones posteriores, y al menos Samba 3.0.10 o versiones posteriores.
Necesitará tener instalados los siguientes paquetes, que seguramente vienen incluidos en los discos de instalación de su distribución predilecta:
- samba: Servidor SMB. - samba-client: Diversos clientes para el protoclo SMB. - samba-common: Ficheros necesarios para cliente y servidor.
Consulte a la base de datos RPM del sistema si se encuentran instalados estos paquetes, utilizando el siguiente mandato:
rpm -q samba samba-client samba-common
Si se utiliza Red Hat™ Enterprise Linux, solo bastará realizar lo siguiente para instalar o actualizar la programática necesaria:
up2date -i samba samba-client
Si utiliza CentOS 4 o White Box Enterprise Linux 4, solo bastará realizar lo siguiente para instalar o actualizar la programática necesaria:
yum -y install samba samba-client
Para la mayoría de los casos la configuración de Samba como servidor de archivos es suficiente.
Es importante sincronizar las cuentas entre el servidor Samba y las estaciones Windows®. Es decir, si en una máquina con Windows® ingresamos como el usuario "paco" con clave de acceso "elpatito16", en el servidor Samba deberá existir también dicha cuenta con ese mismo nombre y la misma clave de acceso. Como la mayoría de las cuentas de usuario que se utilizarán para acceder hacia samba no requieren acceso al intérprete de mandatos del sistema, no es necesario asignar clave de acceso con el mandato passwd y se deberá definir /sbin/nologin o bien /bin/false como interpete de mandatos para la cuenta de usuario involucrada.
useradd -s /sbin/nologin usuario-windows smbpasswd -a usuario-windows
No hace falta se asigne una clave de acceso en el sistema con el mandato passwd puesto que la cuenta no tendrá acceso al intérprete de mandatos.
Si se necesita que las cuentas se puedan utilizar para acceder hacia otros servicios como serían Telnet, SSH, etc, es decir, que se permita acceso al intérprete de mandatos, será necesario especificar /bin/bash como intérprete de mandatos y además se deberá asignar una clave de acceso en el sistema con el mandato passwd :
useradd -s /bin/bash usuario-windows passwd usuario-windows smbpasswd -a usuario-windows
Es necesario empezar resolviendo localmente los nombres NetBIOS asociándolos con direcciones IP correspondientes. Para fines prácticos el nombre NetBIOS debe tener un máximo de 11 caracteres. Normalmente tomaremos como referencia el nombre corto del servidor o el nombre corto que se asigno como alias a la interfaz de red. Este lo estableceremos en el fichero /etc/samba/lmhosts , en donde encontraremos lo siguiente:
127.0.0.1 localhost
Debemos añadir entonces el nombre que hayamos elegido asociado a la dirección IP que se tenga dentro de la red local. Opcionalmente podrá añadir también los nombres y dirección IP del resto de las máquinas que conformen la red local. La separación de espacios se hace con un tabulador. Ejemplo:
127.0.0.1 localhost 192.168.1.5 maquinalinux 192.168.1.6 isaac 192.168.1.7 finanzas 192.168.1.8 direccion
Por tanto, si se quiere evitar problemas de conectividad con dichos sistemas operativos hay que agregar algunos parámetros que resolverán cualquier eventualidad:
[printers] comment = Impresoras. path = /var/spool/samba printable = Yes browseable = No writable = no printable = yes public = Yes print command = lpr -P %p -o raw %s -r lpq command = lpstat -o %p lprm command = cancel %p-%j
Se pude definir también a un usuario o bien un grupo ( @grupo_que_sea ) para la administración de las colas de las impresoras:
[printers] comment = Impresoras. path = /var/spool/samba printable = Yes browseable = No writable = no printable = yes public = Yes print command = lpr -P %p -o raw %s -r lpq command = lpstat -o %p lprm command = cancel %p-%j printer admin = fulano, @opers_impresion
Con lo anterior se define que el usuario fulano y quien pertenezca al grupo opers_impresion podrán realizar tareas de administración en las impresoras.
Para los directorios o volúmenes que se irán a compartir, en el mismo fichero de configuración encontrará distintos ejemplos para distintas situaciones particulares. En general, puede utilizar el siguiente ejemplo que funcionará para la mayoría:
[Lo_que_sea] comment = Comentario que se le ocurra path = /cualquier/ruta/que/desee/compartir
El volumen puede utilizar cualquiera de las siguientes opciones:
Opción Descripción
guest ok (^) Define si ser permitirá el acceso como usuario invitado. El valor puede ser Yes o No.
public (^) Es un equivalente del parámetro guest ok , es decir define si ser permitirá el acceso como usuario invitado. El valor puede ser Yes o No.
browseable (^) Define si se permitirá mostrar este recurso en las listas de recursos compartidos. El valor puede ser Yes o No.
writable (^) Define si ser permitirá la escritura. Es el parámetro contrario de read only. El valor puede ser Yes o No. Ejemplos: «writable = Yes» es lo mismo que «read only =
No». Obviamente «writable = No» es lo mismo que «read only = Yes»
valid users (^) Define que usuarios o grupos pueden acceder al recurso compartido. Los valores pueden ser nombres de usuarios separados por comas o bien nombres de grupo antecedidos por una @. Ejemplo: fulano, mengano, @administradores
write list (^) Define que usuarios o grupos pueden acceder con permiso de escritura. Los valores pueden ser nombres de usuarios separados por comas o bien nombres de grupo antecedidos por una @. Ejemplo: fulano, mengano, @administradores
admin users (^) Define que usuarios o grupos pueden acceder con permisos administrativos para el recurso. Es decir, podrán acceder hacia el recurso realizando todas las operaciones como super- usuarios. Los valores pueden ser nombres de usuarios separados por comas o bien nombres de grupo antecedidos por una @. Ejemplo: fulano, mengano, @administradores
directory mask (^) Es lo mismo que directory mode. Define que permiso en el sistema tendrán los subdirectorios creados dentro del recurso. Ejemplos: 1777
create mask (^) Define que permiso en el sistema tendrán los nuevos ficheros creados dentro del recurso. Ejemplo: 0644
En el siguiente ejemplo se compartirá a través de Samba el recurso denominado ftp , el cual está localizado en el directorio /var/ftp/pub del disco duro. Se permitirá el acceso a cualquiera pero será un recurso de solo lectura salvo para los usuarios administrador y fulano. Todo directorio nuevo que sea creado en su interior tendrá permiso 755 y todo fichero que sea puesto en su interior tendrá permiso 644.
[ftp] comment = Directorio del servidor FTP path = /var/ftp/pub guest ok = Yes read only = Yes write list = fulano, administrador directory mask = 0755 create mask = 0644
Samba fue creado con un objetivo: ser en un reemplazo definitivo para Windows como servidor en una red local. Ésto, por supuesto, requiere algunos procedimientos adicionales dependiendo de las necesidades de la red local.
Los grupos que existen en Windows también se utilizan en Samba para ciertas operaciones, principalmente relacionadas con lo que involucra un Controlador Primario de dominio (o PDC que significa P rimary D omain C ontroler). Estos grupos existen de modo predefinido en Samba. Sin embargo, si se ejecuta lo siguiente:
net groupmap list
Devolverá la siguiente información:
De modo tal, y a fin de facilitar las cosas a quien haga uso de este manual, puede utilizar el siguiente guión para convertir los nombres al español y asociarlos a grupos en Linux, donde solo deberá definir el número de identidad del sistema que corresponda al servidor:
#!/bin/sh SIDSAMBA= XXXXXXXXXX-XXXXXXXXXX-XXXXXXXXXX
net groupmap modify ntgroup="Administradores"
sid="S-1-5-32-544" unixgroup=administradores
comment="Los administradores tienen acceso completo y sin restricciones al equipo o dominio"
net groupmap modify ntgroup="Admins. del dominio"
sid="S-1-5-21-$SIDSAMBA-512" unixgroup=admins_dominio
comment="Administradores designados del dominio"
net groupmap modify ntgroup="Duplicadores"
sid="S-1-5-32-552" unixgroup=duplicadores
comment="Pueden duplicar archivos en un dominio"
net groupmap modify ntgroup="Invitados del dominio"
sid="S-1-5-21-$SIDSAMBA-514" unixgroup=invitados
comment="Todos los invitados del dominio"
net groupmap modify ntgroup="Invitados"
sid="S-1-5-32-546" unixgroup=invitados
comment="Los invitados tienen de modopredeterminado el mismo acceso que los miembros del grupo Usuarios, excepto la cuenta Invitado que tiene mas restricciones"
net groupmap modify ntgroup="Operadores de copias"
sid="S-1-5-32-551" unixgroup=opers_copias
comment="Los operadores de copia pueden sobrescribir restricciones de seguridad con el unico proposito de hacer copias de seguridad o restaurar archivos"
net groupmap modify ntgroup="Opers. de cuentas"
sid="S-1-5-32-548" unixgroup=opers_cuentas
comment="Pueden administrar cuentas de usuarios y grupos del dominio"
net groupmap modify ntgroup="Opers. de impresión"
sid="S-1-5-32-550" unixgroup=opers_impresion
comment="Pueden operar impresoras del dominio"
net groupmap modify ntgroup="Opers. de servidores"
sid="S-1-5-32-549" unixgroup=opers_sistema
comment="Pueden administrar sistemas del dominio"
net groupmap modify ntgroup="Usuarios avanzados"
sid="S-1-5-32-547" unixgroup=usrs_avanzados
comment="Los usuarios avanzados tienen mas derechos administrativos con algunas restricciones. De este modo, pueden ejecutar aplicaciones heredadas junto con aplicaciones certificadas"
net groupmap modify ntgroup="Usuarios del dominio"
sid="S-1-5-21-$SIDSAMBA-513" unixgroup=usuarios_dominio
comment="Todos los usuarios del dominio"
net groupmap modify ntgroup="Usuarios"
sid="S-1-5-32-545" unixgroup=usuarios
comment="Los usuarios no pueden hacer cambios accidentales o intencionados en el sistema. Pueden ejecutar aplic. certificadas, pero no la mayoría de las heredadas"
exit 0
Nota: Este guión en esta incluido en el disco de “Extras de curso” de Linux Para Todos. Solo basta editarlo y definir la variable SIDSAMBA y ejecutarlo como root.
Una vez hecho lo anterior, al volver a realizar lo siguiente:
net groupmap list
Se deberá de mostrar ahora esto otro:
Opers. de servidores (S-1-5-32-549) -> opers_sistema Admins. del dominio (S-1-5-21- XXXXXXXXXX-XXXXXXXXXX-XXXXXXXXXX -
De este modo, si por ejemplo, se agrega al usuario fulano al grupo admins_dominio , se tendrá el mismo efecto que si se hiciera lo mismo en Windows agregando al usuario al grupo Admins. del dominio. Esto por supuesto solamente tendrá utilidad si Samba se configura y utiliza como Controlador Primario de Dominio.
Si se configuró Samba para funcionar como Controlador Primario de Dominio, será necesario asignar a root una clave de acceso en Samba, la cual por supuesto puede ser diferente a la del sistema, debido a que las estaciones de trabajo necesitan autenticar primero con el usuario root de Samba para poder unirse dominio y poder crear de este modo una cuenta de máquina en el sistema a través del parámetro add machine script ya descrito anteriormente.
Los usuarios es necesario darlos de alta de modo que queden agregados a los que correspondan en el sistema a grupos Usuarios y Usuarios del dominio de Windows, es decir a los grupos usuarios y usuarios_dominio.
useradd -s /sbin/nologin -G usuarios,usuarios_dominio usuario- windows smbpasswd -a usuario-windows
Si el usuario ya existiese, solo será necesario agragarlo a los grupos usuarios y usuarios_dominio con gpassswd del siguiente modo:
gpasswd -a usuario-windows usuarios gpasswd -a usuario-windows usuarios_dominio
En teoría en el directorio definido para el recurso Profiles se deben crear automáticamente los directorios de los usuarios donde se almacenarán los perfiles. De ser necesario es posible generar éstos directorios utilizando el siguiente guión:
cd /home for user in * do mkdir -p /var/lib/samba/profiles/$user chown $user.$user /var/lib/samba/profiles/$user done
passwd:allauthenticationtokensupdatedsuccessfully*
El parámetro local master define al servidor como examinador del dominio (o master browser); El parámetro domain master define al servidor maestro del dominio; El parámetro preferred master define al servidor como maestro del domino preferido en caso de haber más servidores presentes en el mismo dominio como controladores de dominio; El parámetro time server se utiliza para definir que las estaciones deberán sincronizar la hora con el servidor al unirse al dominio; El parámetro domain logons define que el servidor permitirá a las estaciones autenticar contra Samba.
local master = Yes domain master = Yes preferred master = Yes time server = Yes domain logons = Yes
La configuración de Controlador Primario de Dominio requiere además definir donde se almacenarán los perfiles de los usuarios. Windows 95, 98 y ME requieren se defina con el parámetro logon home , en tanto que Windows NT, 2000 y XP requieren se haga con el parámetro logon path. Para efectos prácticos y de previsión, utilice ambos parámetros y defina la unidad H para dicho volumen:
logon path = \%L\Profiles%U logon home = \%L%U.profile logon drive = H:
Si se va a utilizar Samba como Controlador Primario de Dominio, es necesario establecer el guión que ejecutarán las estaciones Windows al conectarse hacia el servidor. Esto se hace a través del parámetro logon script el cual puede definir o bien un guión a utilizar por cada usuario (%u.bat) o bien por cada máquina (%m.bat) o bien de modo general para todos (logon.cmd). Para no complicar las cosas, defina inicialmente un guión general para todos del siguiente modo:
logon script = logon.cmd
El fichero /var/lib/samba/netlogon/logon.cmd deberá contener algo como lo siguiente:
REM windows client logon script REM
net time \mi-servidor /SET /YES net use H: \mi-servidor\homes /PERSISTENT:NO
El Controlador Primario de Dominio va a necesitar también se definan los guiones a ejecutar para distintas tareas como alta de máquinas, usuarios y grupos así como la baja de estos.
add user script = /usr/sbin/useradd %u add machine script = /usr/sbin/useradd -d /dev/null -g 100 -s /bin/false -c "Cuenta de máquina" -M %u delete user script = /usr/sbin/userdel %u delete group script = /usr/sbin/groupdel %g add user to group script = /usr/bin/gpasswd -a %u %g set primary group script = /usr/sbin/usermod -g %g %u
El parámetro add user script sirve para definir lo que se deberá ejecutar en el trasfondo en el sistema para crear una nueva cuenta de usuario. El parámetro add machine script es particularmente importante porque es el mandato utilizado para dar de alta cuentas de máquinas (trust accounts o cuentas de confianza) de modo automático. El parámetro delete user script es para definir lo propio para eliminar usuarios, delete group script para eliminar grupos, add user to group para añadir usuarios a grupos y set primary group script para establecer un grupo como el principal para un usuario.
Si se va a utilizar Samba como Controlador Primario de Dominio, es necesario definir los recursos donde residirá netlogon y también donde se almacenarán los perfiles de los usuarios:
[netlogon] comment = Network Logon Service path = /var/lib/samba/netlogon write list = @administradores, @admins_dominio guest ok = Yes browseable = Yes
[Profiles] path = /var/lib/samba/profiles read only = No guest ok = Yes create mask = 0600 directory mask = 0700
Genere con el mandato mkdir los directorios /var/lib/samba/profiles y /var/lib/samba/netlogon. El directorio /var/lib/samba/profiles deberá pertenecer a root y al grupo users y tener permiso 1777 a fin de permitir crear el directorio de perfil correspondiente para cada usuario.
mkdir -p -m 1777 /var/lib/samba/profiles mkdir -p /var/lib/samba/netlogon chgrp users /var/lib/samba/profiles
Si iniciará Samba por primera vez realice lo siguiente:
/sbin/service smb start
Si va a reiniciar el servicio, realice lo siguiente:
/sbin/service smb restart
Para que Samba inicie automáticamente cada vez que inicie el servidor solo ejecute el siguiente mandato:
/sbin/chkconfig smb on
Indudablemente el método más práctico y seguro es el mandato smbclient. Este permite acceder hacía cualquier servidor Samba o Windows® como si fuese el mandato ftp en modo texto.
Para acceder al cualquier recurso de alguna máquina Windows® o servidor SAMBA determine primero que volúmenes o recursos compartidos posee está. utilice el mandato smbclient del siguiente modo:
smbclient -U usuario -L alguna_maquina
smbclient -N -L alguna_maquina
Lo cual le devolvería más menos lo siguiente:
Anonymous login successful Domain=[MI-DOMINIO] OS=[Unix] Server=[Samba 3.0.7-1.3E]
Sharename Type Comment
homes Disk Home Directories netlogon Disk Network Logon Service ftp Disk ftp IPC$ IPC IPC Service (Servidor Samba 3.0.7-1.3E en mi- servidor) ADMIN$ IPC IPC Service (Servidor Samba 3.0.7-1.3E en mi- servidor) epl5900 Printer Created by redhat-config-printer 0.6.x hp2550bw Printer Created by redhat-config-printer 0.6.x Anonymous login successful Domain=[MI-DOMINIO] OS=[Unix] Server=[Samba 3.0.7-1.3E]
Server Comment
mi-servidor Servidor Samba 3.0.7-1.3E en mi-servidor
Workgroup Master
MI-DOMINIO MI-SERVIDOR
En el ejemplo anterior hay un volumen compartido llamado algún_volumen. Si queremos montar este, debemos crear un punto de montaje. Éste puede crearse en cualquier directorio sobre el que tengamos permisos de escritura. Para montarlo, utilizamos entonces la siguiente línea de mandato:
smbmount //alguna_maquina/algún_volumen /punto/de/montaje/
Si la máquina Windows® requiere un usuario y una clave de acceso, puede añadir a lo anterior las opciones -username=el_necesario -password=el_requerido -workgroup=MIGRUPO
Si la distribución de GNU/Linux utilizada es reciente, también puede utilizar el ya conocido mandato mount del siguiente modo:
mount -t smbfs -o username=el_necesario,password=el_requerido //alguna_maquina/algún_volumen /punto/de/montaje/
Si se genera una cuenta pcguest, similar a la cuenta nobody, podemos montar volúmenes SMB sin ingresar una clave de acceso pero con privilegios restringidos, o aquellos que definamos a un volumen accedido por un usuario invitado. Esto sería el método por elección para compartir volúmenes en una red de área local. Puede generarse una cuenta pcguest o bien dejar que el sistema tome al usuario nobody. Si opta por lo primero, solo de de alta la cuenta NO asigne clave de acceso alguna. Montar volúmenes remotos como usuarios invitado es muy sencillo. Un ejemplo real sería:
mount -t smbfs -o guest //LINUX/FTP //var/ftp
Lo anterior monta un volumen SAMBA de una máquina con GNU/Linux en otra máquina con GNU/Linux.
Puede añadirse también una entrada en /etc/fstab de modo que sólo tenga que ser tecleado mount /punto/de/montaje. Esta línea sería de modo similar al siguiente:
//LINUX/FTP /var/ftp smbfs user,auto,guest,ro,gid=100 0 0
Recuérdese que el volumen compartido debe estar configurado para permitir usuarios invitados:
comment = Programática libre (RPMS) path = /var/ftp/pub public = Yes guest ok = Yes
Si utiliza GNOME 2.x o superior, éste incluye un módulo para Nautilus que permite acceder hacia los recursos compartidos a través de Samba sin necesidad de modificar cosa alguna en el sistema. Solo hay que hacer clic en Servidores de red en el menú de GNOME.
Por su parte, desde Windows deberá ser posible acceder sin problemas hacia Samba como si fuese hacia cualquier otra máquina con Windows. Vaya, ni Windows ni el usuario notarán siquiera la diferencia.
El controlador de dominio permite utilizar a Samba como servidor de autenticación y servidor de archivos que además permite almacenar el perfil, preferencias y documentos del usuario en el servidor automáticamente sin la intervención del usuario.
Bajo algunas circunstancias será necesario crear cuentas de máquinas (trust accounts o cuentas de confianza) a fin de permitir unirse al dominio. el procedimiento es simple:
/usr/sbin/useradd -d /dev/null -g 100 -s /bin/false -c "Cuenta de máquina" -M maquina-windows $ smbpasswd -a maquina-windows $