web-dev-qa-db-fra.com

Comment puis-je obtenir un accès en lecture / écriture au partage NFS du Synology NAS?

J'ai un accès en lecture uniquement au partage NFS monté.

Avec l'option 'aucun mappage de squash' sur le NAS, l'utilisateur régulier Ubuntu obtient Permission denied en essayant de cddans le partage et ne peut obtenir un accès en lecture qu'à l'aide de Sudoname__.
En utilisant Squash 'mappe tous les utilisateurs sur le paramètre admin', l'utilisateur régulier du client peut cdet n'a qu'un accès en lecture au partage. L'utilisation de Sudone permet pas l'écriture.


Synology NAS:
DS214> id username
uid=1026(username) gid=100(users) groups=100(users),101(administration)

pas de squash (pas de mapping)
DS214> cat /etc/exports
/volume1/Files 10.1.1.2(rw,async,no_wdelay,no_root_squash,insecure_locks,sec=sys,anonuid=1025,anongid=100)

tout squash (mapper tous les utilisateurs sur admin)
DS214> cat /etc/exports
/volume1/Files 10.1.1.2(rw,async,no_wdelay,all_squash,insecure_locks,sec=sys,anonuid=1024,anongid=100)

Client Ubuntu:
$ cat /etc/fstab
10.1.1.214:/volume1/Files /mnt/nfs/Files nfs rw,user,auto 0 0

$ id username
uid=1000 gid=1000(username) groups=1000(username), <etc>

$ ls -n /mnt/nfs
drwxrwxrwx 9 0 0 4096 Sep 25 01:28 Files

$ ls -n /mnt/nfs/Files
drwxr-xr-x 11 1026 100 4096 Sep 24 22:05 Data


(J'ai initialement signalé par erreur que Sudopermettait l'accès en écriture.) Je peux ouvrir un fichier dans le partage NFS monté avec Sudo vi /mnt/nfs/Files/Data/test.file, mais je ne peux pas écrire les modifications dans le fichier, même avec Sudoname__. Le message d'erreur vi lors de la commande :w! est:
"test.file" E212: Can't open file for writing

10
marsilea

NFSv2/3 gère les autorisations uniquement en fonction de l'UID et du GID. Les autorisations de fichier sur le serveur sont comparées aux identifiants d'utilisateur et de groupe sur le client. C’est pourquoi NFSv <4 n’est pas sécurisé par sa conception dans les environnements où les utilisateurs ont un accès root aux ordinateurs clients; Le spoofing UID est trivial dans ce cas.

Notez que NFSv4 offre une authentification client et utilisateur via Kerberos5. Si une authentification avec nom d'utilisateur et mot de passe est nécessaire, il est souvent bien plus facile de recourir à Samba (SMB/CIFS) au lieu de configurer un Kerberos, même dans des environnements Linux pur.

Pour éviter au moins l'escalade des privilèges root, les partages NFS sont exportés par défaut avec l'option root_squash, qui mappera toutes les demandes client provenant de root (uid=0, gid=0) en anonuid et anongid. Ce comportement peut être remplacé par no_root_squash, en accordant un accès root à l'exportation.

Ici, nous voyons un autre inconvénient. Pour fonctionner correctement, NFS requiert fondamentalement que vous ayez le même UID/GID sur toutes les machines. Les fichiers auxquels vous souhaitez accéder appartiennent à 1026 et ont les permissions 755. Votre utilisateur sur le client a uid=1000. Les GID ne correspondent pas non plus, vous n'obtenez que les autorisations du monde. D'où aucun accès en écriture.

Pour résoudre ce problème, vous pouvez effectuer plusieurs opérations:

  • Sur le NAS, changez le propriétaire des fichiers en 1000. Vous devrez peut-être créer ce compte particulier. Je ne saurais dire comment cela va affecter d'autres services.

  • Changez l'UID de votre utilisateur local en 1026.

  • Étant donné que vous êtes le seul à accéder aux fichiers sur le serveur, vous pouvez demander au serveur de prétendre que toutes les demandes proviennent du bon UID. Pour cela, NFS a l'option all_squash. Il indique au serveur de mapper toutes les demandes à l'utilisateur anonyme, spécifiées par anonuid,anongid.

    Ajoutez les options all_squash,anonuid=1026,anongid=100 à l'exportation dans /etc/exports.

Soyez prudent bien, car cela fera n'importe qui monter l'exportation efficacement le propriétaire de ces fichiers!

Si vous partagez votre réseau avec des personnes et leurs clients à qui vous ne faites pas complètement confiance pour ne pas créer de problèmes avec vos fichiers, vous devriez vraiment vous pencher sur une méthode de partage de fichiers offrant une authentification. À mon avis, Samba est le moyen le plus simple d'y parvenir.

9
Nephente

Faites showmount -e 10.1.1.214 pour voir les options d’exportation. Permission denied erreur provient du serveur NFS lui-même. Essayez de changer l'option de rw,user,auto à defaults.

0
Muhammad Aizuddin