Pourquoi ne puis-je pas écraser des fichiers sur un NAS QNAP lorsque j'y accède via Client pour NFS sur un serveur Windows ?
Produits applicables
- All QNAP NAS series
- Windows Server (any supported version)
Scénario
Un utilisateur accède à un dossier partagé NAS QNAP via les services de fichiers réseau (NFS) depuis un Windows Server exécutant une version prise en charge. Lors de la copie d'un fichier avec le même nom, Windows affiche le Remplacer ou ignorer les fichiers message, indiquant qu'un fichier existant est présent sur le NAS.
Cependant, après avoir sélectionné Remplacer le fichier dans la destination, l'opération échoue avec une erreur d'accès refusé ou de permission, empêchant le fichier d'être écrasé ou mis à jour.
Cause principale
Ce comportement est une limitation connue de la fonctionnalité Client pour NFS dans Windows Server et est indépendant de la configuration du NAS. Le même comportement est observé sur toutes les versions de Windows Server prises en charge qui incluent Client pour NFS.
- Client pour NFS prend en charge uniquement NFSv2 et NFSv3 et ne prend pas en charge les ACL NFSv4. En conséquence, il ne peut pas négocier ou modifier les ACL POSIX sur NFS.
- Par défaut, Client pour NFS accède aux partages NFS en utilisant un UID et un GID anonymes. Si le NAS n'accorde pas de permissions d'écriture à cette identité anonyme, les opérations d'écriture échouent.
- L'accès est refusé à moins que l'UID et le GID anonymes ne soient explicitement mappés à un UID et un GID que le NAS reconnaît et autorise à écrire dans le dossier partagé, indépendamment des permissions d'écriture configurées du dossier partagé.
Solution
Pour résoudre ce problème, mappez l'utilisateur NFS anonyme sur le Windows Server à un UID et un GID que le NAS autorise à écrire dans le dossier partagé.
Vous pouvez appliquer la configuration en utilisant l'une des méthodes suivantes.
Méthode 1 : Configurer avec PowerShell (Recommandé)
- Ouvrez PowerShell en tant que administrateur.
- Lancez PowerShell avec des privilèges administratifs.
- Exécutez les commandes suivantes pour mapper l'UID et le GID anonymes à
0, qui correspond à l'utilisateur root de QNAP.Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\ClientForNFS\CurrentVersion\Default" -Name AnonymousUid -Value 0 -PropertyType DWord Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\ClientForNFS\CurrentVersion\Default" -Name AnonymousGid -Value 0 -PropertyType DWord - Exécutez la commande suivante pour redémarrer Client pour NFS ou redémarrer le système pour appliquer les modifications :
nfsadmin client restartConseilAlternativement, vous pouvez redémarrer le Windows Server.
Méthode 2 : Configurer avec le registre Windows
- Appuyez sur Win + R.
- Type
regedit. - Appuyez sur Entrée.
- Accédez au chemin de registre suivant :
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ClientForNFS\CurrentVersion\Default - Allez à Éditer > N ouveau, puis cliquez sur Valeur DWORD (32 bits).
- Créez les deux valeurs DWORD (32 bits) suivantes dans le dossier par défaut :
- AnonymousUid = 0
- AnonymousGid = 0
- Appliquez les modifications en redémarrant le client NFS :
nfsadmin client restart - ConseilAlternativement, vous pouvez redémarrer le serveur Windows.
- Mapper l'UID et le GID à
0permet au Client pour NFS d'accéder au NAS en tant qu'utilisateur root. Assurez-vous que le dossier partagé du NAS accorde des permissions d'écriture à cette identité. - Appliquez ces paramètres sur chaque serveur Windows qui accède au partage NFS.
- Cela s'applique à toutes les versions de Windows qui prennent en charge la fonctionnalité Client pour NFS.
- Pour les environnements nécessitant un contrôle de permission granulaire ou la prise en charge des ACL NFSv4, le serveur Windows agissant en tant que client NFS n'est pas pris en charge.
Lecture complémentaire
Pour obtenir de l'aide supplémentaire, posez votre question aux autres utilisateurs et aux experts QNAP dans la communauté. Accéder à la communauté QNAP