Varför kan jag inte skriva över filer på en QNAP NAS när jag kommer åt den via Client for NFS på en Windows Server?
Tillämpliga produkter
- All QNAP NAS series
- Windows Server (any supported version)
Scenario
En användare kommer åt en delad mapp på en QNAP NAS via Network File Services (NFS) från en Windows Server som kör en stödd version. När en fil med samma namn kopieras, visar Windows Ersätt eller hoppa över filer uppmaningen, vilket indikerar att en befintlig fil finns på NAS:en.
Men efter att ha valt Ersätt filen i målet, misslyckas operationen med ett åtkomst nekad- eller behörighetsfel, vilket förhindrar att filen skrivs över eller uppdateras.
Grundorsak
Detta beteende är en känd begränsning av funktionen Client for NFS i Windows Server och är oberoende av NAS-konfigurationen. Samma beteende observeras i alla stödda Windows Server-versioner som inkluderar Client for NFS.
- Client for NFS stöder endast NFSv2 och NFSv3 och stöder inte NFSv4 ACL:er. Som ett resultat kan den inte förhandla eller ändra POSIX ACL:er över NFS.
- Som standard kommer Client for NFS åt NFS-resurser med en anonym UID och GID. Om NAS:en inte ger skrivbehörighet till denna anonyma identitet misslyckas skrivoperationer.
- Åtkomst nekas om inte den anonyma UID och GID uttryckligen mappas till en UID och GID som NAS:en känner igen och tillåter att skriva till den delade mappen, oavsett den delade mappens konfigurerade skrivbehörigheter.
Lösning
För att lösa detta problem, mappa den anonyma NFS-användaren på Windows Server till en UID och GID som NAS:en tillåter att skriva till den delade mappen.
Du kan tillämpa konfigurationen med en av följande metoder.
Metod 1: Konfigurera med PowerShell (Rekommenderas)
- Öppna PowerShell som en administratör.
- Starta PowerShell med administrativa rättigheter.
- Kör följande kommandon för att mappa den anonyma UID och GID till
0, vilket motsvarar QNAP root-användaren.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 - Kör följande kommando för att starta om Client for NFS eller starta om systemet för att tillämpa ändringarna:
nfsadmin client restartTipsAlternativt kan du starta om Windows Server.
Metod 2: Konfigurera med Windows-registret
- Tryck på Win + R.
- Typ
regedit. - Tryck på Enter.
- Navigera till följande registerväg:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ClientForNFS\CurrentVersion\Default - Gå till Edit > N ew, och klicka sedan på DWORD (32-bit) Value.
- Skapa följande två DWORD (32-bit) värden i standardmappen:
- AnonymousUid = 0
- AnonymousGid = 0
- Tillämpa ändringarna genom att starta om NFS-klienten:
nfsadmin client restart - TipsAlternativt kan du starta om Windows Server.
- Att mappa UID och GID till
0tillåter Client for NFS att komma åt NAS:en som root-användare. Se till att den delade NAS-mappen ger skrivbehörighet till denna identitet. - Tillämpa dessa inställningar på varje Windows Server som har åtkomst till NFS-delningsmappen.
- Detta gäller alla Windows-versioner som stöder funktionen Client for NFS.
- För miljöer som kräver detaljerad behörighetskontroll eller stöd för NFSv4 ACL, stöds inte Windows Server som agerar som en NFS-klient.
Vidare läsning
För ytterligare hjälp kan du fråga andra användare och QNAP-experter i vår community. Gå till QNAP Community