Acceso dende os clientes Linux ás carpetas compartidas por Samba3: pam mount
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:
- 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.
- 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.
- A continuación amósase o ficheiro pam_mount.conf.xml
- As liñas que se engadiron son da 42 á 57.
- No seguinte enlace: http://manpages.ubuntu.com/manpages/lucid/man5/pam_mount.conf.5.html, pódese atopar información sobre os parámetros do ficheiro.
<?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
- Pam-mount le cada liña que comeza por volume e chama ao comando de montar, mount, indicando:
- 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.
Agora toca no cliente uclient01 chamar a ese script que esta no servidor. O mellor sitio para facelo é no script que se executa cada vez que un usuario inicia sesión: /etc/profile
Como vimos no xml anterior, no cliente, o recurso netlogon do servidor vai estar montado en /netlogon. Por tanto só temos que chamar ao script do servidor como: sh /netlogon/inicio.sh.
- 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