jueves, febrero 01, 2007

Samba en Solaris 10 x86

Samba viene ya incluido dentro de Solaris 10 x86, en particular la 11/06 trae samba 3.0.21b, no la última 3.0.23d, que por cierto podemos conseguir desde http://www.sunfreeware.com/.

Para verificar que esta en nuestro sistema basta con hacer una busqueda en los servicios: svcs -a | grep samba

La situación es la siguiente: un grupo de estudiantes tendran acceso a archivos comunes que les serán proporcionados por su profesor. Todos podrán en principio leer, escribir y ejecutar. El laboratorio se encuentra en un segmento de red donde el server DCHP proporciona direcciones 192.168.2.X

Iniciamos creando el grupo al que van a perteneces los alumnos y los maestros, después creamos los usuarios y asignamos las contraseñas y por último con la herramienta de samba los definimos como usuarios de este servicio:

  1. groupadd ingles
  2. useradd -d /export/home/recurso -g ingles profesor
  3. useradd -d /export/home/recurso -g ingles alumno
  4. passwd profesor
  5. passwd alumno
  6. /usr/sfw/bin/smbpasswd -a profesor
  7. /usr/sfw/bin/smbpasswd -a alumno

Necesitamos crear el directorio y ajustar los permisos. La partición que prefiero es la /export, pero funciona en cualquiera donde tengan suficiente espacio para contener los archivos a compartir. Los pasos a seguir son:

  1. Crear el directorio: mkdir /export/home/recurso
  2. Asignar los permisos: chmod 1777 /export/home/recurso
  3. Cambiar el propietario: chown profesor /export/home/recurso
  4. Y el grupo de trabajo: chgrp ingles /export/home/recurso

A configurar el servicio, el archivo smb.conf con su editor favorito (claro, vi)

vi /etc/sfw/smb.conf
# Seccion general
[global]
netbios name = SOLARIS10
workgroup = LAB
server string = Servidor de archivos
encrypt passwords = yes
security = user
hosts allow = 192.168.2. 127.
# El recurso compartido
[recurso]
comment = Archivos compartidos
path = /export/home/recurso
valid users = profesor, alumno
read only = no

Posteriormente hacemos la validación, solamente para estar más seguros: /usr/sfw/bin/testparm

Lo interesante esta dado por hosts allow en donde le indicamos que solamente los hosts de la subred 192.168.2.X y localhost podrán accesar al servidor. La seguridad es por usuario (security=user) y, los usuarios que hemos definido anteriormente serán los únicos que harán uso del recurso (valid users = profesor, alumno). Ahora bien, esto tendría el mismo efecto: valid users = +ingles; ya que le estamos indicando que es el grupo ingles en general y bueno, solamente tenemos los dos usuarios en ese grupo.

Verificar en seguida que en /etc/services este definido el servicio swat con el fin de poder ver la configuración de samba con http://localhost:901. De no ser así le agregamos la línea:

swat           901/tcp              # Samba swat

Y en /etc/inetd.conf escribimos dos líneas:
netbios-ssn   stream   tcp   nowait   root   /usr/sfw/sbin/smbd   smbd
swat stream tcp nowait root /usr/sfw/sbin/swat swat

Con esto ya esta listo, lo demás son detalles menores, reinicar el servicio o el servidor; lo que haga falta.