Acceso dende os clientes Linux ás carpetas compartidas por Samba3: pam mount

De Manuais Informática - IES San Clemente.
Ir a la navegación Ir a la búsqueda

Introdución

  • Nesta sección imos ver en uclient01
    • Como conectarse dende Linux a recursos samba/cifs compartidos tanto por sistemas Linux / Windows / Cabinas, etc.
    • Como facer permanentes os puntos de montaxe cifs/samba.
    • Como xerar un script de inicio de rede para os usuarios do dominio que cargue o mesmo aviso que se carga cando un usuarios inicia unha sesión en Windows.
  • A imaxe amosa o escenario a desenvolver nos clientes Linux:

00 Dominios Linux Escenarios parte 03 B.jpg


  • Para iso comezaremos desmontando os puntos de montaxe nfs.

Desmontar os puntos de montaxe nfs

  • Antes de comezar imos desmontar os puntos de montaxe en uclient01.
  • Iniciar sesión co usuario uadmin.

Montar recursos cifs/samba en modo gráfico

  • Se en nautilus prememos CTR+L podemos escribir que recurso/carpeta podemos abrir.
  • Se usamos o protocolo smb:/// podemos buscar que recursos hai na rede que comparten recursos samba
    • smb://servidor: serve para conectarse a un servidor cifs/samba e ver que recursos comparte.
    • smb://servidor/recurso: serve para conectarse a un recurso cifs/samba dun servidor


Montaxe manual de recursos cifs: cifs-utils

  • A continuación imos ver comandos que podemos usar para xestionar dende consola puntos de montaxe samba/cifs.
  • Para iso instalaremos as cifs-utils que nos van permitir realizar montaxes con tipo de sistema de ficheiros cifs, así como o paquete smbclient.
  • Pero o problema que temos é que se realizamos un punto de montaxe cifs contra un recurso dun servidor hai que indicar que usuario é co que nos imos conectar.
  • Co cal, use quen use ese punto de montaxe usarao como se fora ese usuario que realizou a conexión e ese non ten senso, pois non se vai adaptar ao tipo de usuario.

Montaxe de recursos en función do usuario que inicie a sesión: pam-mount

  • A solución ao problema anterior pasa por que o montaxe por cifs se realice xusto no momento en que o usuario inicie sesión.
  • Para iso instalaremos libpam-mount (http://pam-mount.sourceforge.net/) que monta volumes cando o usuario inicia sesión e en función de como estea configurado o ficheiro xml onde se definen os recursos a montar, onde montalos e para que tipo de usuarios montalos.


  • Instalar libpam-mount.

Dl 2014 ubuntu smb 19.jpeg



  • Configurar o ficheiro asociado ao paquete anterior: /etc/security/pam_mount.conf.xml
  • Aconsellámolo facer con gedit porque así é máis fácil manexar o documento.

Dl 2014 ubuntu smb 27.jpeg


<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE pam_mount SYSTEM "pam_mount.conf.xml.dtd">
<!--
	See pam_mount.conf(5) for a description.
-->

<pam_mount>

		<!-- debug should come before everything else,
		since this file is still processed in a single pass
		from top-to-bottom -->

<debug enable="0" />

		<!-- Volume definitions -->


		<!-- pam_mount parameters: General tunables -->

<!--
<luserconf name=".pam_mount.conf.xml" />
-->

<!-- Note that commenting out mntoptions will give you the defaults.
     You will need to explicitly initialize it with the empty string
     to reset the defaults to nothing. -->
<mntoptions allow="nosuid,nodev,loop,encryption,fsck,nonempty,allow_root,allow_other" />
<!--
<mntoptions deny="suid,dev" />
<mntoptions allow="*" />
<mntoptions deny="*" />
-->
<mntoptions require="nosuid,nodev" />

<logout wait="0" hup="0" term="0" kill="0" />


		<!-- pam_mount parameters: Volume-related -->

<mkmountpoint enable="1" remove="true" />

<!-- Montamos comun -->
<volume sgrp="g-usuarios" fstype="cifs" server="dserver00" path="comun" mountpoint="/media/%(USER)/comun" options="iocharset=utf8"/>
 
<!-- Montamos carpeta alumnos para os profes -->
<volume sgrp="g-profes" fstype="cifs" server="dserver00" path="alumnos" mountpoint="/media/%(USER)/alumnos" options="iocharset=utf8"/>

<!-- Montamos netlogon para lanzar tamén os avisos en Linux -->
<volume sgrp="g-usuarios" fstype="cifs" server="dserver00" path="netlogon" mountpoint="/netlogon" options="iocharset=utf8"/>

<!-- Montamos carpetas persoais dos usuarios profes -->
<volume sgrp="g-profes" fstype="cifs" server="dserver00" path="%(USER)" mountpoint="/home/iescalquera/profes/%(USER)" options="iocharset=utf8,uid=%(USER)"/>

<!-- Montamos carpetas persoais dos usuarios alumnos -->
<volume sgrp="g-dam1-alum" fstype="cifs" server="dserver00" path="%(USER)" mountpoint="/home/iescalquera/alumnos/dam1/%(USER)" options="iocharset=utf8,uid=%(USER),gid=g-dam1-profes"/>

<volume sgrp="g-dam2-alum" fstype="cifs" server="dserver00" path="%(USER)" mountpoint="/home/iescalquera/alumnos/dam2/%(USER)" options="iocharset=utf8,uid=%(USER),gid=g-dam2-profes"/>

</pam_mount>
  • Cada liña que comeza por volume é un punto de montaxe que se indica para que usuario ou grupo de usuarios se vai realizar:
    • o tipo de sistema de ficheiros: cifs, neste caso.
    • o punto de montaxe, se non existe no cliente a carpeta na que realizar o punto de montaxe pam-mount vaina crear.
    • de que servidor
    • que recurso do servidor
    • con que opcións montar o recurso
  • Funcionamento (Semellante a como fixemos antes á man con mount.cifs que equivale a mount -t cifs):
    • Pam-mount le cada liña que comeza por volume e chama ao comando de montar, mount, indicando:
      • O tipo de sistema de ficheiros, neste caso, cifs
      • A que servidor conectarse, neste caso dserver00
      • A que recurso, neste caso o indicado en cada liña
      • Con que usuario e contrasinal?: co que acaba de iniciar sesión
  • Observar que tamén imos montar o recurso netlogon, ao igual que en Windows para poder tamén lanzar en Ubuntu os avisos para o alumnado.
  • As carpetas comun e de alumnos ímolas montar dentro de /media nunha carpeta co nome do usuario para que se varios usuarios iniciasen sesión no mesmo equipo cliente de forma simultánea (na contorna gráfica, usando terminais virtuais en modo comandos ou de forma remota por ssh) non teñan problema de acceso a recursos compartidos que non lles correspondan.
  • No caso das carpetas persoais, introducimos os parámetros uid e gid na montaxe para que o equipo cliente estableza como propietario da carpeta que se usa para a montaxe o usuario da sesión e o seu grupo principal. Así evitamos tamén que un usuario puidese acceder á carpeta persoal de outro usuario se está montada nese momento.

Crear un script de rede de inicio de sesión para clientes Ubuntu

  • Ao igual que fixemos en Windows, que creamos inicio.bat en /netlogon en dserver00 para que cando os usuarios inician sesión nos clientes Windows se execute ese script, imos facer o mesmo para os clientes Ubuntu.
  • Crearemos inicio.sh en /netlogon do servidor.
  • Pero nesta ocasión imos conectarnos dende uclient01 ao recurso de netlogon do servidor para crear ese script.
  • Isto de ter un script de inicio na rede tamén se pode facer usando nfs. Dá igual o sistema co que nos conectemos ao recurso do servidor, o importante é poder conectarse é poder lanzar un script de rede de inicio de sesión cada vez que un usuario inicia sesión nun cliente e así non ter o contido dese script en cada cliente.
  • Así podemos ter ese contido centralizado e modificalo cando desexemos e automaticamente todo cliente executará o que ese script indique cando un usuario inicie sesión.
  • Visto isto, se o desexásemos o contido do script /opt/engadir_marcador.sh tamén se podería pasar para o ficheiro inicio.sh de netlogon e deste xeito en /etc/profile só teríamos que chamar a inicio.sh e neste script que está no servidor poderíamos facer o que desexáramos e afectaría inmediatamente a todos os clientes.

Iniciar sesión cun usuario do dominio

  • Antes de que inicie sesión un usuario non hai puntos de montaxe creados aos recursos do servidor.
  • No momento de entrar un usuario pam-mount vai ler o ficheiro /etc/security/pam_mount.conf.xml e montar os volumes nel indicados.


Instantánea escenario 3.B - SAMBA 3 Linux

  • Ao igual que nos escenarios anteriores crear unha instantánea para o escenario 3.B: Samba3 - Clientes Linux, para as seguintes MVs:
    • dserver00
    • uclient01
    • uclient02


-- Antonio de Andrés Lema e Carlos Carrión Álvarez