Samba-2.2.8a

Introducción a Samba

El paquete Samba proporciona servicios de ficheros e impresión a clientes SMB/CIFS.

Información sobre el paquete

Instalación de Samba

Instala Samba ejecutando los siguientes comandos:

cd source &&
mkdir -p /etc/samba/private &&
mkdir -p /var/cache/samba &&
./configure \
   --prefix=/usr \
   --sysconfdir=/etc \
   --localstatedir=/var \
   --with-piddir=/var/run \
   --with-fhs \
   --with-smbmount &&
make &&
make install &&

rm -rf /usr/private &&
echo "swat 901/tcp" >> /etc/services &&
echo "swat stream tcp nowait.400 root /usr/sbin/swat swat" >> \
   /etc/inetd.conf

Explicación de los comandos de instalación

mkdir -p /etc/samba/private
mkdir -p /var/cache/samba
Directorios necesarios para el correcto funcionamiento de los demonios smbd y nmbd.

--prefix=/usr : Establece el prefijo para casi todas las rutas de los ficheros a /usr.

--sysconfdir=/etc : Establece el directorio de los ficheros de configuración para evitar que se use el directorio por defecto, que es /usr/etc.

--localstatedir=/var : Establece el directorio para datos variables para evitar que se use el directorio por defecto, que es /usr/var.

--with-fhs : Asigna todas las otras rutas de los ficheros de modo que sean compatibles con la norma FHS.

--with-smbmount : Ordena la creación de un programa que usará el comando mount para que montar volúmenes remotos SMB compartidos (windows) sea tan sencillo como montar sistemas de ficheros NFS remotos.

rm -rf /usr/private : Elimina un directorio creado erróneamente por source/scripts/installbin.sh en la fase make install.

Configuración de Samba

Configuraremos un servidor Samba (SAMBABOX) para actuar como controlador primario de dominio, así como configuraremos un cliente del dominio que ejecute Windows 2000 Server (WIN2KBOX) y actúe como servidor miembro del dominio. Se darán instrucciones detalladas para añadir WIN2KBOX al dominio, debido a los pasos extra necesarios. Se pueden encontrar instrucciones para añadir clientes Windows 95/98/XP en la documentación recién instalada, apuntando un navegador web a:

file:///usr/share/samba/swat/using_samba/ch03_01.html#ch03-55770.

Ficheros de configuración

/etc/samba/smb.conf, /etc/rc.d/init.d/samba

Primero crearemos algunos directorios que necesita Samba :

mkdir /var/lib/samba &&
mkdir /var/lib/samba/netlogon &&
mkdir /var/lib/samba/ntprofile &&
mkdir /var/lib/samba/profiles &&
chmod -R 1777 /var/lib/samba

Y el fichero de configuración de Samba:

cat > /etc/samba/smb.conf << "EOF"
[global]
    netbios name = SAMBABOX
    workgroup = DOMAIN01
    os level = 64
    preferred master = yes
    domain master = yes
    local master = yes
    security = user
    encrypt passwords = yes
    domain logons = yes
    log file = /var/log/log.%m
    log level = 1
    logon path = \\%N\home\%u\windows
    logon drive = H:
    logon home = \\homeserver\%u\windows
    logon script = logon.cmd
[netlogon]
      path = /var/lib/samba/netlogon
      read only = yes
      write list = ntadmin
[profiles]
      path = /var/lib/samba/ntprofile
      read only = no
      create mask = 0600
      directory mask = 0700
; Corpartido escribible por todos para pruebas
[tmp]
comment = Espacio para ficheros temporales
        path = /tmp
        read only = no
        public = yes
[home]
comment = Derectorios personales de los usuarios
        path = /home
        read only = no
        public = no
EOF

Ahora añade la cuenta de máquina de confianza para WIN2KBOX:

/usr/sbin/useradd -g 100 -d /dev/null -c \
    "machine nickname" -s /bin/false win2kbox$ &&
passwd -l win2kbox$ &&
smbpasswd -a -m win2kbox

Crea el guión de arranque de Samba:

cat > /etc/rc.d/init.d/samba << "EOF"
#!/bin/bash
# Inicio de $rc_base/init.d/samba
# Basado en el guión sysklogd de LFS-3.1 y anteriores.
# Reescrito por Gerard Beekmans  - gerard@linuxfromscratch.org
source /etc/sysconfig/rc
source $rc_functions
case "$1" in
	start)
		echo "Iniciando nmbd..."
		loadproc /usr/sbin/nmbd -D
		echo "Iniciando smbd..."
		loadproc /usr/sbin/smbd -D
		;;
	stop)
		echo "Parando smbd..."
		killproc /usr/sbin/smbd
		echo "Parando nmbd..."
		killproc /usr/sbin/nmbd
		;;
	reload)
		echo "Recargando smbd..."
		reloadproc /usr/sbin/smbd
		echo "Recargando nmbd..."
		reloadproc /usr/sbin/nmbd
		;;
	restart)
		$0 stop
		sleep 1
		$0 start
		;;
	status)
		statusproc /usr/sbin/nmbd
		statusproc /usr/sbin/smbd
		;;
	*)
		echo "Uso: $0 {start|stop|reload|restart|status}"
		exit 1
		;;
esac
# Fin de $rc_base/init.d/samba
EOF

Añade los enlaces simbólicos de los niveles de arranque:

chmod 754 /etc/rc.d/init.d/samba &&
ln -s  /etc/rc.d/init.d/samba /etc/rc.d/rc0.d/K48samba &&
ln -s  /etc/rc.d/init.d/samba /etc/rc.d/rc1.d/K48samba &&
ln -s  /etc/rc.d/init.d/samba /etc/rc.d/rc2.d/K48samba &&
ln -s  /etc/rc.d/init.d/samba /etc/rc.d/rc3.d/S24samba &&
ln -s  /etc/rc.d/init.d/samba /etc/rc.d/rc4.d/S24samba &&
ln -s  /etc/rc.d/init.d/samba /etc/rc.d/rc5.d/S24samba &&
ln -s  /etc/rc.d/init.d/samba /etc/rc.d/rc6.d/K48samba

Ahora, utilizaremos nuestro nuevo guión de arranque para iniciar Samba:

/etc/rc.d/init.d/samba start

Tenemos que añadir la cuenta root de SAMBABOX a la lista de usuarios de Samba para unir WIN2KBOX al dominio DOMAIN01:

smbpasswd -a root

Una vez ejecutado Samba y añadido root a la lista de usuarios de Samba, la primera máquina que uniremos a DOMAIN01 será WIN2KBOX, la máquina Windows 2000 Server para la que hemos creado la cuenta de máquina de confianza. En WIN2KBOX:

1.  Pulsa con el botón derecho en "Mi PC".
2.  Pulsa en "Propiedades".
3.  Pulsa en la pestaña "Identificación de red".
4.  Pulsa el botón "Propiedades".
5.  En el campo de edición "Nombre:" introduce WIN2KBOX.
6.  Pulsa el botón de radio "Dominio:", introduce DOMAIN01 en el campo de 
    edición y pulsa "Aceptar".
7.  Cuando aparezca el cuadro de diálogo "Nombre de usuario del dominio y 
    contraseña", introduce root y su contraseña en SAMBABOX, y pulsa "Aceptar".
8.  Después de que se negocie la confianza entre máquinas, pulsa el botón 
    "Aceptar" en el cuadro de diálogo de bienvenida al dominio DOMAIN01.
9.  Pulsa "Aceptar" en el cuadro de diálogo que te recuerda que reinicies.
10. Pulsa "Aceptar" para cerrar la ventana "Propiedades del Sistema".
11. Pulsa "Si" para reiniciar WIN2KBOX.

Añadir un nuevo usuario al dominio DOMAIN01.

Antes de entrar en WIN2KBOX, crearemos una nueva cuenta de usuario con los siguientes comandos:

useradd -m win2kuser01 &&
passwd win2kuser01 &&
smbpasswd -a win2kuser01

Entrar en DOMAIN01.

Ahora iniciaremos la sesión en el dominio, con nuestro usuario recién creado, de esta forma:

1. Pulsa Ctrl-Alt-Del para que aparezca el cuadro de
	diálogo "Conectarse a Windows".
2. Introduce el nombre de usuario win2kuser01 y su contraseña.
3. Selecciona DOMAIN01 en la caja de combinación "Conectarse a:" y pulsa "Aceptar".

Añade la entrada swat a /etc/services con el siguiente comando:

echo "swat            901/tcp" >> /etc/services

Si utilizas inetd, el siguiente comando añadirá la entrada swat en /etc/inetd.conf:

echo "swat stream tcp nowait.400 root /usr/sbin/swat swat" \
    >> /etc/inetd.conf

Si utilizas xinetd, el siguiente comando añadirá la entrada swat en /etc/xinetd.conf:

cat >> /etc/xinetd.conf << "EOF"
service swat
{
    port            = 901
    socket_type     = stream
    wait            = no
    only_from       = 127.0.0.1
    user            = root
    server          = /usr/sbin/swat
    log_on_failure  += USERID
}
EOF

La Herramienta de Administración Web de Samba, SWAT, puede lanzarse con el siguiente comando en SAMBABOX:

lynx http://localhost:901

Nota: Asegúrate que inetd está ejecutándose, y ejecuta killall -HUP inetd antes de inciar SWAT.

El navegador Lynx se utiliza en esta demostración, pero no es necesario.

Explicación de los comandos de configuración

cat > /etc/samba/smb.conf << "EOF" : Crea un fichero de configuración por defecto de Samba. Esta configuración permitirá a Samba actuar como Controlador Primario de Dominio para una red basada en Microsoft Windows. Si no deseas esto, se incluye un fichero simple smb.conf predefinido con la distribución de Samba. Mira el fichero samba2.2.8a/examples/smb.conf.default. La configuración como Controlador Primario de Dominio (PDC) es ligeramente más complicada que la configuración de un servidor ordinario, por lo que aquí se muestran las instrucciones para la configuración de un PDC.

cat > /etc/rc.d/init.d/samba << "EOF" : Crea el guión de arranque de Samba, utilizado para iniciar y parar automáticamente Samba durante el arranque y cierre del sistema.

/usr/sbin/useradd -g 100 -d /dev/null -c \
    "Win2k Server" -s /bin/false win2kbox$
: Este comando crea una cuenta de máquina de confianza, necesaria sólo para que los servidores Windows 2000/NT se autentifiquen a nuestro nuevo PDC. No son necesarias cuentas de máquinas de confianza para clientes Win95/98.

echo "swat 901/tcp" >> /etc/services : Registra el programa swat para usar el puerto 901.

echo "swat stream tcp nowait.400 root /usr/sbin/swat swat" >> /etc/inetd.conf : Indica a inetd dónde encontrar y cómo ejecutar swat.

ln -s /etc/rc.d/init.d/samba /etc/rc.d/rc3.d/S600samba etc : Crean los guiones de arranque de Samba, usados para iniciar y parar automáticamente Samba durante el arranque y cierre del sistema.

Contenido

El paquete Samba contiene make_smbcodepage, make_unicodemap, mount.smbfs, nmbd, nmblookup, rpcclient, smbcacls, smbclient, smbcontrol, smbd, smbpasswd, smbspool, smbstatus, swat, testparm, testprns, wbinfo y winbindd.

Descripciones

make_smbcodepage

make_smbcodepage convierte descripciones de texto de páginas de código en ficheros binarios de páginas de código y viceversa.

make_unicodemap

make_unicodemap convierte ficheros de mapa de texto Unicode a binario, para utilizarlo en el mapeado de caracteres a Unicode de 16 bits.

mount.smbfs

mount.smbfs proporciona a /bin/mount una forma de montar unidades compartidas windows (o samba).

nmbd

nmbd es el servidor de nombres NetBIOS de Samba.

nmblookup

nmblookup se usa para consultar nombres NetBIOS y mapearlos a direcciones IP.

rpcclient

rpcclient se usa para ejecutar las funciones MS-RPC del lado cliente.

smbcacls

smbcacls se usa para manipular las listas de control de acceso de NT.

smbclient

smbclient es una utilidad de acceso SMB/CIFS, similar a FTP.

smbcontrol

smbcontrol se usa para controlar la ejecución de los demonios smbd, nmbd y winbindd.

smbd

smbd es el demonio principal de Samba.

smbpasswd

smbpasswd cambia las contraseñas de los usuarios Samba.

smbspool

smbspool envía un trabajo de impresión a una impresora SMB.

smbstatus

smbstatus informa de las conexiones Samba actuales.

swat

swat es la Herramienta de Administración por Web de Samba.

testparm

testparm comprueba la sintaxis del fichero smb.conf.

testprns

testprns comprueba los nombres de impresoras.

wbinfo

wbinfo consulta un demonio winbindd en ejecución.

winbindd

winbindd resuelve nombres de servidores NT.