web-dev-qa-db-fra.com

Comment définir correctement les autorisations pour le dossier NFS? Autorisation refusée à la fin du montage.

J'essaie de me connecter à un dossier NFS sur mon serveur de développement. Le propriétaire du dossier sur le serveur de développement est Darren et le groupe Darren.

Lorsque je l'exporte et le monte sur mon Mac à l'aide de l'utilitaire de disque, il se monte, mais lorsque j'essaie d'ouvrir le dossier, je dis que je n'ai pas les autorisations. J'ai défini rw, sync et no_subtree_check. L'utilisateur sur Mac est Darren avec un groupe de groupes.

Dois-je avoir le même groupe et le même groupe d'utilisateurs pour accéder au dossier?

47
Darren

NFS est construit au-dessus de l'authentification RPC. Avec NFS version 3, le mécanisme d'authentification le plus courant est AUTH_UNIX. L'ID utilisateur et l'ID groupe du système client sont envoyés dans chaque appel RPC, et les autorisations dont ces ID disposent sur le fichier en cours d'accès sont vérifiées sur le serveur. Pour que cela fonctionne, l'UID et les GID doivent être identiques sur le serveur et les clients. Cependant, vous pouvez forcer tous les accès à se produire en tant qu'utilisateur et groupe uniques en combinant les options d'exportation all_squash, anonuid et anongid. all_squash mappera tous les UID et GID à l'utilisateur anonyme, et anonuid et anongid définira l'UID et le GID de l'utilisateur anonyme. Par exemple, si votre UID et GID sur votre serveur de développement sont tous deux 1001, vous pouvez exporter votre répertoire personnel avec une ligne comme

/home/darren 192.168.1.1/24(rw,all_squash,anonuid=1001,anongid=1001)

Je suis moins familier avec NFS version 4, mais je pense que vous pouvez configurer rpc.idmapd sur les clients pour modifier l'uid et le gid qu'ils envoient au serveur.

66
sciurus

Lorsque vous montez NFS, vos autorisations avec lesquelles vous le montez doivent correspondre à ce que vous avez sur le serveur. Par exemple, si votre utilisateur n'a qu'un accès en lecture seule, le monter en lecture-écriture vous fera voir les mêmes erreurs que vous avez mentionnées dans votre message lorsque vous essayez de charger réellement le montage. Malheureusement, cela n'apparaîtra QUE lors de l'accès au dossier, pas lorsque vous le monterez réellement.

Vous voulez également vous assurer que l'utilisateur NFS s'exécute comme sur le serveur et que l'utilisateur sur le client utilise les mêmes UID et GID. Vous pouvez vérifier ces valeurs en exécutant id darren sur le serveur et le client. Si les valeurs UID et GID ne correspondent pas, vous pouvez modifier /etc/passwd pour qu'il en soit ainsi - mais assurez-vous de bien comprendre ce que vous faites avant de changer arbitrairement des valeurs!

Quelques bonnes sources:

J'espère que ça aide!

28
Andrew M.

Vos UID et GID correspondent-ils sur les deux serveurs? C'est ce qu'il utilise pour contrôler l'accès et non le nom de connexion et de groupe.

2
JOTN