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.

5 comentarios:

Anónimo dijo...

Interesante aportación Ghost, pero seria interesante que le pusieras manzanas, limones y toronjas, para los usuarios menos experimentados, que no es mi caso, pero bueno , hay muchos.....
Saludos
Xandro
Sindicato de maestros CONALEP

Fantasma dijo...

Hola Xandro... no entiendo tu comentario... pero si se trata de conceptos más básicos, entonces te recomiendo el Curso de Implementación de Servidores Linux Edición 2007 que desde el Sitio de Amigos en la sección de descargas puedes optener. Claro, además de la Wikipedia y google :-)

Fernando dijo...

Hola ! ! !

Gracias... pero no se como iniciar samba o reiniciarlo encontre por ejemplo esto

Iniciar servicio Samba
#/usr/local/samba/bin/smbd -D
# /usr/local/samba/bin/nmbd -D

pero yo no tengo eso en esa ruta
y voy a la que se instalo pero no inicia me dice que no se encontre el archivo o ruta..

tengo instalado opensolaris200805

gracias por la info ya configure el archivo smb.conf con tu tutorial

vaLar dijo...

Fernando, siempre puedes hacer un find en tu terminal (como root):

find / -name smbd

Por ejemplo:
root@bdigital # find / -name smbd
/var/samba/log/cores/smbd
/usr/sfw/sbin/smbd
/usr/local/samba/sbin/smbd

Igual para nmbd.

Saludos

vaLar dijo...

También puedes usar este script maletilla que acabo de hacer para iniciar y detener el servicio, guárdalo en /etc/init.d/samba:


#! /bin/sh
#
# start/stop the samba daemon

case "$1" in

'start')
# Start the samba daemon
if [ -f /usr/sfw/sbin/smbd ] && [ -f /usr/sfw/sbin/nmbd ] ; then
echo "starting SAMBA daemon"
/usr/sfw/sbin/smbd -D
/usr/sfw/sbin/nmbd -D
fi
;;

'stop')
# Stop the SAMBA deamon
PID=`/usr/bin/ps -e -u 0 | /usr/bin/fgrep smbd | /usr/bin/awk '{print $1}'`
if [ ! -z "$PID" ] ; then
/usr/bin/kill ${PID} >/dev/null 2>&1
fi
# Stop de NETBIOS daemon
PID2=`/usr/bin/ps -e -u 0 | /usr/bin/fgrep nmbd | /usr/bin/awk '{print $1}'`
if [ ! -z "$PID2" ] ; then
/usr/bin/kill ${PID2} >/dev/null 2>&1
fi
echo "stoping SAMBA daemon"
;;

*)
echo "usage: /etc/init.d/samba {start|stop}"
;;

esac