Partage
  • Partager sur Facebook
  • Partager sur Twitter

Partage NFS, config. A fonctionne, config. B non ?

    29 août 2022 à 3:31:31

    Bonjour,

    il s'agit de partage NFS. Je décris grossièrement puis je précise tout cela avec les fichiers de configurations…

    La question est tout à la fin du message.


    ** Si je n'utilise pas "bind" (dans le /etc/fstab du serveur) mais simplement des dossiers déjà existant, alors j'ai un soucis avec les droits en écriture, le client ne peut pas créer de fichier, mais il peut naviguer.
    ** Si j'utilise "bind" pour monter un dossier sur un autre (toujours côté serveur dans /etc/fstab), tout se passe bien, le client navigue et les droits.

    Le serveur est Opensuse Leap 15.4

    Le client est Ubuntu Jammy 22.04.1

    Le port TCP 2049 est ouvert sur le serveur:

    thierry@localhost:/mnt> sudo firewall-cmd --zone=home --list-all
    [sudo] Passwort für root: 
    home (active)
      target: default
      icmp-block-inversion: no
      interfaces: eth0
      sources: 
      services: dhcpv6-client mdns samba samba-client ssh
      ports: 445/tcp 139/tcp 137/udp 138/udp 9751-9760/tcp 2049/tcp
      protocols: 
      forward: no
      masquerade: no
      forward-ports: 
      source-ports: 
      icmp-blocks: 
      rich rules: 

    Quelques informations concernant les droits et les dossiers concernés sur le SERVEUR. Elles sont constantes peu importe la configuration de NFS…

    thierry@localhost:/mnt> ll
    insgesamt 60
    drwxr-xr-x 3 root    root     4096 28. Aug 01:19 cle_usb
    drwxrwxr-x 5 thierry users    4096  5. Mär 18:59 Dateien_Arbeit
    drwxr-xr-x 4 root    root     4096 26. Aug 17:13 export
    drwxrwxrwx 1 root    root    40960 18. Aug 16:49 Nouveau_Nom
    drwxr-xr-x 3 root    root     4096 27. Aug 04:18 racine_home
    drwxr-xr-x 2 nobody  nogroup  4096 27. Aug 04:25 racine_shared

    thierry@localhost:/mnt> ll -d /mnt/
    drwxr-xr-x 8 root root 4096 28. Aug 23:21 /mnt/
    thierry@localhost:/mnt> ll -d /mnt/racine_home/
    drwxr-xr-x 3 root root 4096 27. Aug 04:18 /mnt/racine_home/
    thierry@localhost:/mnt> ll -d /mnt/racine_home/thierry/
    drwxr-xr-x 2 thierry users 4096 29. Aug 01:55 /mnt/racine_home/thierry/
    thierry@localhost:/mnt> ll -d /mnt/racine_shared/
    drwxr-xr-x 2 nobody nogroup 4096 29. Aug 02:22 /mnt/racine_shared/
    
    thierry@localhost:/mnt> id
    uid=1000(thierry) gid=100(users) Gruppen=100(users),459(wireshark),462(vboxusers)
    thierry@localhost:/mnt> ll -d export/home/thierry/
    drwxr-xr-x 2 thierry users 4096 29. Aug 01:55 export/home/thierry/
    thierry@localhost:/mnt> ll -d export/shared/
    drwxr-xr-x 2 nobody nogroup 4096 29. Aug 02:22 export/shared/
    thierry@localhost:/mnt> ll -d export
    drwxr-xr-x 4 root root 4096 26. Aug 17:13 export
    

    L'ID du client (elle ne change pas…):

    thierry@serv-kerb:~$ id
    uid=1000(thierry) gid=1000(thierry) groupes=1000(thierry),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),120(lpadmin),131(lxd),132(sambashare),139(ubridge),140(libvirt)

    Le serveur tourne…

    thierry@localhost:/mnt> systemctl status nfsserver.service 
    ● nfsserver.service - Alias for NFS server
         Loaded: loaded (/usr/lib/systemd/system/nfsserver.service; disabled; vendor preset: disabled)
         Active: active (exited) since Mon 2022-08-29 00:42:14 CEST; 45min ago
        Process: 9180 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
       Main PID: 9180 (code=exited, status=0/SUCCESS)




    Quand ça fonctionne:

    La configuration du serveur

    Le fstab, je "bind" le dossier /mnt/racine_home sur /mnt/export/home, et /mnt/racine_shared sur /mnt/export/shared.


    thierry@localhost:/mnt> cat /etc/fstab 
    UUID=e3ece1de-d3ed-4326-82b9-4e7207b22454    /                    ext4     defaults      0  1
    UUID=050e52e7-bfc6-4e19-b3a7-33235da0326a    /home                ext4     data=ordered  0  2
    UUID=09c97bb2-c8d3-4f97-b551-8ce684c55457    swap                 swap     defaults      0  0
    #UUID=fea36f54-1a3e-4bfb-8f24-9e1d9cf13eb5    swap                 swap     defaults      0  0
    UUID=4632D33B32D32F25                        /mnt/Nouveau_Nom     ntfs-3g  defaults      0  0
    UUID="5c2c9399-fd64-43d6-9086-7f72f8c26dbd"  /mnt/Dateien_Arbeit  ext4     defaults      0  0
    /mnt/racine_home /mnt/export/home none rw,bind 0 0
    /mnt/racine_shared /mnt/export/shared none rw,bind 0 0


    Le reste de la configuration du serveur…

    thierry@localhost:/mnt> cat /etc/exports 
    /mnt/export     192.168.0.0/24(ro,root_squash,sync,no_subtree_check,fsid=0)
    /mnt//export/home       192.168.0.0/24(rw,root_squash,sync,no_subtree_check)
    /mnt/export/shared      192.168.0.0/24(rw,all_squash,sync,no_subtree_check)
    thierry@localhost:/mnt> 
    
    thierry@localhost:/mnt> sudo exportfs -r
    thierry@localhost:/mnt> sudo showmount -e localhost
    Export list for localhost:
    /mnt/export/shared 192.168.0.0/24
    /mnt/export/home   192.168.0.0/24
    /mnt/export        192.168.0.0/24
    
    thierry@localhost:/mnt> tree export
    export
    ├── home
    │   └── thierry
    │       ├── fichier_A
    │       └── thierry_file
    └── shared
        ├── fichier_B
        └── fichier_shared
    
    3 directories, 4 files
    thierry@localhost:/mnt> ll -d export/home/thierry/
    drwxr-xr-x 2 thierry users 4096 29. Aug 01:55 export/home/thierry/
    thierry@localhost:/mnt> ll -d export/shared/
    drwxr-xr-x 2 nobody nogroup 4096 29. Aug 01:55 export/shared/
    thierry@localhost:/mnt> ll export/home/thierry/fichier_A
    -rw-rw-r-- 1 thierry 1000 0 29. Aug 01:55 export/home/thierry/fichier_A
    thierry@localhost:/mnt> ll export/shared/fichier_B
    -rw-rw-r-- 1 nobody nobody 0 29. Aug 01:55 export/shared/fichier_B
    thierry@localhost:/mnt> 


    La configuration du client (Ubuntu jammy 22.04.1):

    Le fstab:

    thierry@serv-kerb:~$ cat /etc/fstab 
    # /etc/fstab: static file system information.
    #
    # Use 'blkid' to print the universally unique identifier for a
    # device; this may be used with UUID= as a more robust way to name devices
    # that works even if disks are added and removed. See fstab(5).
    #
    # <file system> <mount point>   <type>  <options>       <dump>  <pass>
    # / was on /dev/sda5 during installation
    UUID=ad82ee56-dd4d-4f8b-bce1-978fcdcfbc61 /               ext4    errors=remount-ro 0       1
    # /boot/efi was on /dev/sda1 during installation
    UUID=8C37-F838  /boot/efi       vfat    umask=0077      0       1
    /swapfile                                 none            swap    sw              0       0
    #//192.168.0.81/Try_Samba        /home/thierry/Dir_Thierry       cifs    rw,guest      0       0
    192.168.0.81:/	/mnt/reseau nfs4 rw,hard,intr,_netdev 0 0

    Les droits que le client voit, puis des touch…

    thierry@serv-kerb:~$ ls -ld /mnt/reseau/
    drwxr-xr-x 4 root root 4096 Aug 26 17:13 /mnt/reseau/
    thierry@serv-kerb:~$ ls -ld /mnt/reseau/home/
    drwxr-xr-x 3 root root 4096 Aug 27 04:18 /mnt/reseau/home/
    thierry@serv-kerb:~$ ls -ld /mnt/reseau/shared/
    drwxr-xr-x 2 nobody 65533 4096 Aug 27 04:25 /mnt/reseau/shared/
    thierry@serv-kerb:~$ ls -ld /mnt/reseau/home/thierry/
    drwxr-xr-x 2 thierry users 4096 Aug 27 04:25 /mnt/reseau/home/thierry/
    thierry@serv-kerb:~$ 
    thierry@serv-kerb:~$ touch /mnt/reseau/home/thierry/fichier_A
    thierry@serv-kerb:~$ touch /mnt/reseau/shared/fichier_B
    thierry@serv-kerb:~$ 
    thierry@serv-kerb:~$ ls -l /mnt/reseau/home/thierry/fichier_A
    -rw-rw-r-- 1 thierry thierry 0 Aug 29 01:55 /mnt/reseau/home/thierry/fichier_A
    thierry@serv-kerb:~$ ls -l /mnt/reseau/shared/fichier_B
    -rw-rw-r-- 1 nobody nogroup 0 Aug 29 01:55 /mnt/reseau/shared/fichier_B

    Ça marche… :)

    Du client je peux:

    • écrire dans /mnt/reseau/home/thierry
    • écrire dans /mnt/reseau/shared

    Je teste maintenant avec un autre utilisateur que thierry, ca fonctionne comme attendu (impossible de touch dans /mnt/reseau/home/thierry, mais possible dans /mnt/reseau/shared)

    thierry@serv-kerb:~$ su obelix
    Password: 
    obelix@serv-kerb:/home/thierry$ id
    uid=1001(obelix) gid=1001(obelix) groupes=1001(obelix),1006(zaubertrank),1009(zutaten),20000(projekt_zaubertrank),20001(projekt_hinkelstein)
    obelix@serv-kerb:/home/thierry$ cd /mnt/reseau/
    obelix@serv-kerb:/mnt/reseau$ ls
    home  shared
    obelix@serv-kerb:/mnt/reseau$ touch home/thierry/ficher_C
    touch: impossible de faire un touch 'home/thierry/ficher_C': Permission non accordée
    obelix@serv-kerb:/mnt/reseau$ touch shared/ficher_D
    obelix@serv-kerb:/mnt/reseau$ ls -l shared/ficher_D
    -rw-rw-r-- 1 nobody nogroup 0 Aug 29 02:22 shared/ficher_D

    Quand ça ne marche pas (sans "bind"):

    Le serveur - le fstab (j'ai juste commenté les deux dernières lignes):

    thierry@localhost:/mnt> cat /etc/fstab 
    UUID=e3ece1de-d3ed-4326-82b9-4e7207b22454    /                    ext4     defaults      0  1
    UUID=050e52e7-bfc6-4e19-b3a7-33235da0326a    /home                ext4     data=ordered  0  2
    UUID=09c97bb2-c8d3-4f97-b551-8ce684c55457    swap                 swap     defaults      0  0
    #UUID=fea36f54-1a3e-4bfb-8f24-9e1d9cf13eb5    swap                 swap     defaults      0  0
    UUID=4632D33B32D32F25                        /mnt/Nouveau_Nom     ntfs-3g  defaults      0  0
    UUID="5c2c9399-fd64-43d6-9086-7f72f8c26dbd"  /mnt/Dateien_Arbeit  ext4     defaults      0  0
    #/mnt/racine_home /mnt/export/home none rw,bind 0 0
    #/mnt/racine_shared /mnt/export/shared none rw,bind 0 0

    (j'ai aussi fait un # mount -a)

    Configuration NFS:

    thierry@localhost:/mnt> cat /etc/exports 
    /mnt    192.168.0.0/24(ro,root_squash,sync,no_subtree_check,fsid=0)
    /mnt/racine_home        192.168.0.0/24(rw,root_squash,sync,no_subtree_check)
    /mnt/racine_shared      192.168.0.0/24(rw,all_squash,sync,no_subtree_check)
    thierry@localhost:/mnt> sudo exportfs -r
    thierry@localhost:/mnt> sudo showmount -e localhost
    Export list for localhost:
    /mnt/racine_shared 192.168.0.0/24
    /mnt/racine_home   192.168.0.0/24
    /mnt               192.168.0.0/24



    Le client maintenant: (je l'ai redémarré)

    Je remets son fstab (il n'a pas bougé…)

    thierry@serv-kerb:~$ cat /etc/fstab 
    # /etc/fstab: static file system information.
    #
    # Use 'blkid' to print the universally unique identifier for a
    # device; this may be used with UUID= as a more robust way to name devices
    # that works even if disks are added and removed. See fstab(5).
    #
    # <file system> <mount point>   <type>  <options>       <dump>  <pass>
    # / was on /dev/sda5 during installation
    UUID=ad82ee56-dd4d-4f8b-bce1-978fcdcfbc61 /               ext4    errors=remount-ro 0       1
    # /boot/efi was on /dev/sda1 during installation
    UUID=8C37-F838  /boot/efi       vfat    umask=0077      0       1
    /swapfile                                 none            swap    sw              0       0
    #//192.168.0.81/Try_Samba        /home/thierry/Dir_Thierry       cifs    rw,guest      0       0
    192.168.0.81:/	/mnt/reseau nfs4 rw,hard,intr,_netdev 0 0

    J'affiche les droits, puis je touch…


    thierry@serv-kerb:~$ ls -l /mnt
    total 8
    drwxr-xr-x 2 thierry root 4096 Aug 26 02:52 droplet
    drwxr-xr-x 8 root    root 4096 Aug 28 23:21 reseau
    thierry@serv-kerb:~$ ls -l /mnt/reseau/
    total 24
    drwxr-xr-x 2 root   root  4096 Aug 28 23:21 cle_usb
    drwxr-xr-x 2 root   root  4096 Mai  7  2021 Dateien_Arbeit
    drwxr-xr-x 4 root   root  4096 Aug 26 17:13 export
    drwxr-xr-x 2 root   root  4096 Dez 31  2020 Nouveau_Nom
    drwxr-xr-x 3 root   root  4096 Aug 27 04:18 racine_home
    drwxr-xr-x 2 nobody 65533 4096 Aug 27 04:25 racine_shared
    thierry@serv-kerb:~$ ls -l /mnt/reseau/racine_home/
    total 4
    drwxr-xr-x 2 thierry users 4096 Aug 27 04:25 thierry
    thierry@serv-kerb:~$ 
    thierry@serv-kerb:~$ touch /mnt/reseau/racine_home/thierry/fichier1
    touch: impossible de faire un touch '/mnt/reseau/racine_home/thierry/fichier1': Système de fichiers accessible en lecture seulement
    thierry@serv-kerb:~$ touch /mnt/reseau/racine_shared/fichier2
    touch: impossible de faire un touch '/mnt/reseau/racine_shared/fichier2': Système de fichiers accessible en lecture seulement

    Je ne peux pas: :o

    • écrire dans /mnt/reseau/racine_home/thierry
    • écrire dans /mnt/reseau/racine_shared


    Ça ne marche pas comme attendu, je peux naviguer mais pas faire des "touch" comme je le souhaiterais…

    J'espère n'avoir pas fait d'erreurs dans la présentation (pas facile…).

    Question:


    Pourquoi ça marche quand je "bind" (dans le fstab du serveur) les dossiers alors que ça ne marche pas si je configure NFS directement sur des dossiers non "bindés" ?

    Merci pour avoir pris le temps de lire…

    -
    Edité par DenebeDenebe 29 août 2022 à 20:09:47

    • Partager sur Facebook
    • Partager sur Twitter

    Partage NFS, config. A fonctionne, config. B non ?

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    • Editeur
    • Markdown