Samba

Demonios Samba y relacionados.

  • admin 

Lo siguientes es una breve introducción a los demonios individuales y servicios de Samba, así como también detalles sobre como arrancarlos y detenerlos.

Descripción general de los demonios

Samba está compuesto por tres demonios (smbdnmbd y winbindd). Dos servicios (smb y windbind) controlan los demonios son detenidos arrancados y otras funcionalidades relacionadas a servicios. Cada demonio se lista en detalle, así como también qué servicio específico tiene control sobre él.

  • El demonio smbd

El demonio de servidor smbd suministra servicios para compartir archivos e impresión a clientes Windows. Además, es responsable por la autenticación de usuarios, el bloqueo de recursos y compartir datos a través del protocolo SMB. Los puertos predeterminados en los cuales el servidor escucha por tráfico SMB, son los puertos TCP 139 y 445.

El demonio smbd es controlado por el servicio smb.

  • El demonio nmbd

El demonio del servidor nmbd entiende y responde a las peticiones de servicio de nombres NetBIOS tales como aquellas producidas por SMB/CIFS en sistemas basados en Windows. Estos sistemas incluyen clientes 95/98/ME, Windows NT, Windows 2000, Windows XP y LanManager. También participa en los protocolos de navegación que forman la vista Entorno de red de Windows. El puerto predeterminado en el que el servidor escucha por tráfico NMB es el puerto UDP 137.

El demonio nmbd es controlado por el servicio smb.

  •  El demonio winbindd

El servicio winbind resuelve la información de usuarios y grupos en un servidor Windows NT y lo hace entendible para las plataformas UNIX. Esto se logra usando las llamadas RPC, Pluggable Authentication Modules (PAM) y el Name Service Switch (NSS). Esto permite que los usuarios del dominio Windows NT aparezcan y operen como usuarios UNIX en un máquina UNIX. Aunque está enlazado con la distribución Samba, el servicio winbind se controla separadamente de smb.

El servicio winbind controla al demonio winbindd y no requiere que el servicio smb arranque para poder funcionar. Debido a que winbind es un servicio del lado del cliente utilizado para conectar a los servidores Windows NT, una discusión más detallada de winbind está fuera del ámbito de este manual.

Arrancar y detener el Samba

Para arrancar el servidor Samba, escriba el comando siguiente en un intérprete de comandos conectado como root:

/sbin/service smb start

 NOTA IMPORTANTE: Para configurar un servidor miembro de dominio, primero debe unirse al dominio o Active Directory usando el comando net join antes de arrancar el servicio smb.

Para detener el servidor, escriba el comando siguiente en un intérprete de comandos mientras está conectado como root:

/sbin/service smb stop

La opción restart es una forma fácil de detener y luego arrancar Samba. Esta es la forma más confiable de hacer que los cambios tomen lugar después de editar el archivo de configuración Samba. Observe que la opción de reinicio arranca el demonio aún si no estaba ejecutándose originalmente.

Para reiniciar el servidor, escriba el comando siguiente en un intérprete de comandos mientras está conectado como usuario root:

 /sbin/service smb restart 

La opción condrestart (reinicio condicional) solamente arranca smb con la condición de que se esté ejecutando actualmente. Esta opción es útil para los scripts, debido a que no arranca el demonio si este no se está ejecutando.

Nota Importante: Cuando el archivo smb.conf cambia, Samba automáticamente vuelve a cargarlo después de unos minutos. Es igualmente efectivo ejecutar un restart o un reload manualmente.

Para reiniciar condicionalmente el servidor, desde el indicador de comandos, escriba el comando siguiente como root:

 /sbin/service smb condrestart 

Una recarga manual del archivo smb.conf puede ser útil en caso de que una recarga automática del servicio smb falle. Para asegurarse de que el archivo de configuración del servidor Samba es recargado sin reiniciar el servicio, escriba el comando siguiente como usuario root:

 /sbin/service smb reload 

Por defecto, el servicio smb no se inicia automáticamente al momento del arranque. Para configurar Samba para que inicie al momento del arranque, utilice una utilidad de initscript tal como /sbin/chkconfig/sbin/ntsysv o el programa Herramienta de configuración de servicios. Consulte el capítulo Control de acceso a servicios en el Manual de administración del sistema de Red Hat Enterprise Linux para más información sobre estas herramientas.

Usuarios Samba

  • admin 

Para que un usuario del sistema sea usuario de samba tenemos que agregarlo explícitamente con la orden smbpasswd.

Para añadir un usuario tendremos que ejecutar:

smbpasswd -a usuario

Si omitimos la opción -a entonces simplemente se cambia la contraseña para samba del usuario.

La lista de usuarios de samba se almacena en el fichero /etc/samba/smbpasswd o bien según indiquemos en el parámetro passwd backend.

Usuarios virtuales

Existe la posibilidad de asignar múltiples nombres a un mismo usuario en el fichero /etc/samba/smbusers. Por ejemplo:

# Unix_name = SMB_name1 SMB_name2 …

root = administrator admin

nobody = guest pcguest smbguest

indicaría que los usuarios reales serían root y nobody, pero los usuarios admin y administrator serían en realidad el usuario root.

Puede resultar útil si varias personas tienen que acceder a los mismos datos crear una sola cuenta en samba y luego asignarle diferentes nombres en este fichero.

 

Tendremos que crear los usuarios primero en unix:

useradd -d /var/www/html/direccion direccion 
useradd -d /var/www/html/secretaria secretaria
useradd -d /var/www/html/publico publico

Observamos como estos usuarios los estamos creando con sus directorios personales en unas ubicaciones distintas a las habituales para los directorios personales para hacerlas coincidir con el DOCUMENT_ROOT de los servidores virtuales de Apache definidos anteriormente. En nuestro caso lo que nos interesea es que el directorio personal del usuario aparezca directamente en en el raíz árbol de documentos web, y esto lo tenemos que hacer combinando el DOCUMENT_ROOT de un VirtualHost con el directorio personal del usuario.

También podríamos haber hecho creando un enlace simbólico o definiendo el VirtualHost directamente en un directorio personal en /home.

Ahora asignarle una contraseña unix a esos usuarios. Ejecutamos:

passwd direccion 
passwd secretaria 
passwd publico

Por último tendremos que crear los usuarios en samba:

smbpasswd -a direccion 
smbpasswd -a secretaria 
smbpasswd -a publico

Para modificar la constraseña de un usuario samba siempre podemos ejecutar, como root, por ejemplo:

smbpasswd publico

Y con esto tenemos configurado el acceso mediante clientes Win32 a los directorios personales de los usuarios integrados en el árbol del servidor web apache.

En los clientes 9X tendremos que configurar el cliente para redes microsoft para que inicie una sesión en el dominio.

En los clientes 2000/XP tendremos que integrarlos en el dominio siguiendo el proceso habitual.

Una vez hecho esto, cada vez que iniciemos una sesión en el dominio por alguno es estos usuario, dispondrá de una unidad h: asociada al DOCUMENT_ROOT de un VirtualHost. Todo lo que contenga esta unidad es también accesible por parte del servidor web.

Tenemos que asegurarnos que el usuario que ejecuta el servidor web tiene permisos de lectura sobre los contenidos que queremos publicar.

Lo fundamental además es la configuración del fichero smb.conf que se explica en el siguiente link

http://dns.bdat.net/documentos/entorno_publicacion_web/x1752.html

 

Permisos servidor Samba

  • admin 

En este artículo se verá la relación entre los permisos del sistema de ficheros y la configuración de samba.

El software de samba es una implementación libre y de fuente abierta de los protocolos de red para compartir ficheros entre UNIX/Linux y ordenadores Windows.

Samba proporciona:

  • Servicios de archivo y de impresión
  • Integración con dominio de servidores windows / PDC
  • Formar parte de un dominio de directorio activo., etc

Prioridad en los permisos.

Samba viene con diferentes tipos de permiso por share. Recordemos algo sobre los permisos Unix y los permisos samba.

(a) Los permisos del sistema linux toman prioridad sobre los permisos samba. Por ejemplo si un directorio no tiene permisos de escritura Linux, configurando la opción de samba «writeable = yes» (mirar más abajo) no permitirá escribir en ese directorio que este como share.

(b) Los permisos del filesystem no pueden ser prioritarios sobre los permisos en samba. Por ejemplo, si un filesystem montando como readonly y configuramos en samba «writeable = yes» no permitira escribir en ningún share de ese directorio.

¿Como configuro los permisos en los shares de samba?

Los permisos básicos en samba, son los siguientes (el archivo de configuración es smb.conf [/etc/samba/smb.conf]:

  • read only: Este parámetro controla si un usuario tiene la habilidad para crear o modificar archivos de un share. Este es por defecto.
  • guest ok: Si este parámetro se configura a «Yes» , los usuarios tendrán acceso a al share sin necesidad de introducir una contraseña. Esto puede plantear riesgos de seguridad.
  • writeable: Especifica los usuarios que deberían tener acceso de escritura en el share.

Puedes crear el share llamado helpfiles con permisos de sólo lectura

[helpfiles]
path = /usr/share/docs
read only = Yes

O puedes crear otro share llamado salesdoc con permisos de escritura

[salesdoc]
path = /home/shared/sales
writeable = yes

Tambien puedes crear una lista de usuarios para darles acceso de escritura a dicho share con la opción «write list», por ejemplo permite a carlos y dani escribir en el share llamado salesdoc.

[salesdoc]
path = /home/shared/sales
write list = carlos dani

Puedes usar las siguientes opciones:

  • read list: Esta opción acepta una lista de nombres de usuario o un grupo como su valor. A estos usuarios se les dará acceso de sólo lectura en el share.
  • valid users: Se puede crear un share disponible sólo para unos usuarios especificados. Nombres de usuario o de grupo se pueden pasar como valor.
  • invalid users: A los usuarios o grupos listados aquí, se les denegará el acceso en ese share.

La máscara de permisos de samba

Tambien es posible especificar permisos de samba por defecto cuando se crea un archivo, usando una máscara.

  • create mask: Esta opción se configura usando un valor octal cuando se configuran los permisos para los archivos.
  • directory mask: Los directorios deben tener el bit de ejecución para el acceso apropiado. El parámetro por defecto es 0755.

[salesdoc]
path = /home/shared/sales
write list = rocky sys
create mask = 0775