Configuración do cliente NFS

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

Introdución

  • Xa vimos que o no servidor os usuarios do LDAP xa poden acceder aos seus homes e a comun.
  • Imos agora configurar os clientes para que os usuarios do LDAP a parte de iniciar sesión poidan acceder aos seus datos que están no servidor NFS..

Instalación do cliente NFS

  • Para poder acceder á carpetas compartidas por NFS, no equipo cliente teremos que instalar o paquete nfs-common:
sudo apt-get install nfs-common

Montaxe dunha carpeta por NFS mediante comandos

  • Dende o cliente, baseándose para este punto nas exportacións de dserver00:
/home/iescalquera       172.16.5.0/255.255.255.0(rw)
/comun                  172.16.5.0/255.255.255.0(rw)
  • Podemos montar unha carpeta compartida por NFS noutro equipo sobre una carpeta local utilizando o comando mount. A sintaxe será a seguinte:
sudo mount [-t nfs] equipo_servidor_NFS:carpeta_compartida_NFS punto_de_montaxe
  • A opción de -t nfs podemos utilizala para indicar que o tipo de unidade que imos montar é unha carpeta compartida por NFS, pero non é necesario poñelo xa que o comando detectará o tipo de partición automaticamente.
  • Primeiro imos crear as carpetas no cliente uclient01 onde se montarán as comparticións exportadas por dserver00. Os puntos de montaxe poden ser en calquera carpeta, pero:
    • Se na configuración home de cada usuario LDAP lle indicamos que o seu cartafol persoal están en /home/iescalquera/...
    • Cando esteamos no cliente e iniciemos sesión cun usuario do dominio vai esperar atopar o seu cartafol persoal en /home/iescalquera/...
    • Co cal, debemos crear unha carpeta no cliente que coincida co que se lle indicou na configuración home a cada usuario.
  • Para comun imos montala en /media pois Ubuntu todo dispositivo montado en /media o amosa como unha icona directamente no lanzador, e queda moi cómodo para ir a comun.
sudo mkdir /home/iescalquera 
sudo mkdir /media/comun
  • Imos agora a montar facer probas con un deles até deixalo definitivamente configurado.
sudo mount dserver00:/home/iescalquera /home/iescalquera
#Tamén podemos poñer a IP do servidor, ou dserver00.iescalquera.local
  • Probas de funcionamento. Lembrar que pia é unha alumna de dam2. Imos ver onde pode acceder e onde non e así comprobamos que funcionan os permisos.
uadmin@uclient01:~$ su - pia
  Contrasinal: 

pia@uclient01:~$ pwd
 /home/iescalquera/alumnos/dam2/pia
 
pia@uclient01:~$ ls /home/iescalquera/alumnos/
 dam1  dam2

pia@uclient01:~$ ls /home/iescalquera/alumnos/dam1
 mon  tom

pia@uclient01:~$ ls /home/iescalquera/alumnos/dam1/mon
 ls: non se pode abrir o directorio /home/iescalquera/alumnos/dam1/mon: Permiso denegado 

pia@uclient01:~$ ls /home/iescalquera/profes
 ls: non se pode abrir o directorio /home/iescalquera/profes: Permiso denegado

pia@uclient01:~$ exit
 logout

Montaxe automático dunha carpeta NFS no arranque do sistema

  • O inconveniente de montar a carpeta por NFS utilizando o comando mount é que ao reiniciar o equipo esta montaxe realizada non permanecerá. Se queremos que o equipo cliente monte automaticamente cada vez que arranque algunha carpeta compartida por NFS noutra máquina sobre un directorio local, introduciremos unha liña no ficheiro /etc/fstab coa seguinte sintaxe:
equipo_servidor_NFS:carpeta_compartida_NFS punto_de_montaxe nfs opcións
  • Por exemplo, no caso do apartado anterior a liña sería:
#Pódese usar a IP do servidor
 dserver00:/home/iescalquera    /home/iescalquera    nfs    defaults,_netdev   0   0
 dserver00:/comun               /media/comun         nfs    defaults,_netdev   0   0
  • O parámetro _netdev é para indicarlle ao cliente que ese punto de montaxe é de rede e que non trate de montalo até que a rede estea dispoñible.
  • Podemos utilizar o comando mount para montar todas as carpetas indicadas no ficheiro /etc/fstab que non estean montadas (así podemos simular o que fai o sistema no arranque):
sudo mount -a
  • Comprobación
mount
  /dev/sda1 on / type ext4 (rw,errors=remount-ro)
  ...
  dserver00:/home/iescalquera on /home/iescalquera type nfs4 (rw,relatime,vers=4.0,rsize=65536,wsize=65536,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=172.16.5.20,local_lock=none,addr=172.16.5.10,_netdev)
  dserver00:/comun on /media/comun type nfs4 (rw,relatime,vers=4.0,rsize=65536,wsize=65536,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=172.16.5.20,local_lock=none,addr=172.16.5.10,_netdev)
  • Agora o lector pode validarse en modo consola cos usuarios do dominio e comprobar os permisos aplicados ás carpetas persoais e de comun.

Iniciar sesión en modo gráfico

  • Pero agora se desexamos iniciar sesión en modo gráfico imos ver que non hai maneira de teclear o nome de usuario dun membro do dominio, só usuarios locais.

Dl 2014 nfs 33.jpeg

  • Para iso editamos o seguinte ficheiro:
sudo nano /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf
  • E engadimos esta liña:
greeter-show-manual-login=true
  • Reiniciamos o ordenador ou o servizo lightdm
sudo service lightdm restart

Experimentación e modo gráfico

  • E agora xa podemos iniciar sesión cun usuario do dominio.
  • Imos iniciar con noe: profesor de dam2.
  • O seguinte amosa un tree dende o servidor dserver00 para mostrar que as carpetas creadas no home de noe cando iniciou sesión en modo gráfico en realidade está almacenadas no servidor.
root@dserver00:~# tree /home/iescalquera/profes/
 /home/iescalquera/profes/
 ├── noe
 │   ├── Descargas
 │   ├── Documentos
 │   ├── Escritorio
 │   ├── examples.desktop
 │   ├── Imaxes
 │   ├── Modelos
 │   ├── Música
 │   ├── Público
 │   └── Vídeos
 └── sol
     └── examples.desktop
 
 10 directories, 2 files

Agregar accesos directos (Marcadores) ás carpetas montadas por NFS

  • No visto até agora, cando entra un usuario:
    • Alumno, ten a súa carpeta persoal e comun facilmente accesibles.
    • Profe, tamén ten facilmente accesible a súa carpeta persoal e comun, pero non así coa carpeta dos alumnos para cando quere ir ver o traballo realizado por un dos seus alumnos.
    • Neste último caso tería que navegar pola estrutura de carpetas, home -> iescalquera -> alumnos -> curso -> alumno.
  • Sería interesante que aos usuarios profesores lles aparecera automaticamente un marcador (acceso directo ou favorito) no nautilus, como se amosa na imaxe:

Dl 2014 nfs 44.jpeg


  • Pois co uso de marcadores (Acceso directo) (Carpetas favoritas) podemos facilitar esta operación, creando un script de inicio de sesión que se execute cando entra o usuario.
    • Se o usuario que entra é un:
      • profe: creamos ese marcador
      • alumno: non facemos nada.


  • O que faremos no script é modificar o ficheiro .config/gtk-3.0/bookmarks, que é onde se almacenan os marcadores, e está almacenado na carpeta persoal do usuario, para engadir unha liña por cada carpeta á que queiramos enlazar da seguinte forma:
file://RutaDaCarpeta NomeFavorito

Así, por exemplo, se queremos engadir enlaces ás carpetas /home/iescalquera/alumnos engadiremos a liña:

file:////home/iescalquera/alumnos Alumnos
  • Imos crear un script para que cree este ficheiro: sudo nano /opt/engadir_marcadores.sh (ou gedit no canto de nano)
  • Lembrar que se vai executar xusto no momento no que un usuario calquera inicia sesión:
#!/bin/bash
#Comprobamos se o usuario que inicia sesión é un profe.
#E non ten creado o favorito
if (groups ${u} | grep profes) && !(cat ~/.config/gtk-3.0/bookmarks| grep Alumnos)
then
         #Engadimos o favorito ao ficheiro pero non machacamos o ficheiro porque
         #o usuario xa pode ter por se mesmo creados marcadores dende o contorno gráfico.
	echo file:///home/iescalquera/alumnos Alumnos>>~/.config/gtk-3.0/bookmarks
fi


  • E poderiamos invocar ese script dende o script /etc/profile, que se executa no inicio de sesión dos usuarios.
  • Engadiríamos a liña en negriña (editalo con sudo nano ou sudo gedit):
# /etc/profile: system-wide .profile file for the Bourne shell (sh(1))
# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).
sh /opt/engadir_marcadores.sh

if [ "$PS1" ]; then
 if [ "$BASH" ] && [ "$BASH" != "/bin/sh" ]; then
   # The file bash.bashrc already sets the default PS1.
   # PS1='\h:\w\$ '
   if [ -f /etc/bash.bashrc ]; then
     . /etc/bash.bashrc
   fi
 else
   if [ "`id -u`" -eq 0 ]; then
     PS1='# '
   else
     PS1='$ '
   fi
 fi
fi
 
# The default umask is now handled by pam_umask.
# See pam_umask(8) and /etc/login.defs.

if [ -d /etc/profile.d ]; then
 for i in /etc/profile.d/*.sh; do
   if [ -r $i ]; then
     . $i
   fi
 done
 unset i
fi


Na seguinte imaxe podemos ver o efecto na sesión dun usuario profesor/a, co acceso que se creou grazas ao script:


Instantáneas do escenario 2-A: NFS

  • Configuramos o cliente uclient02 ao igual que uclient01.
  • Ao igual que nos escenarios anteriores, imos facer instantáneas do escenario 2.A



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