Scenariusz
Użytkownik uzyskuje dostęp do folderu współdzielonego na serwerze QNAP NAS za pośrednictwem Network File Services (NFS) z serwera Windows Server z obsługiwaną wersją systemu. Podczas kopiowania pliku o takiej samej nazwie system Windows wyświetla monit Zamień lub pomiń pliki, wskazując, że na serwerze NAS istnieje już taki plik.
Jednak po wybraniu opcji Zamień plik w miejscu docelowym operacja kończy się niepowodzeniem z komunikatem o odmowie dostępu lub błędzie uprawnień, co uniemożliwia nadpisanie lub zaktualizowanie pliku.
Przyczyna źródłowa
To zachowanie jest znanym ograniczeniem funkcji Klient NFS w systemie Windows Server i jest niezależne od konfiguracji serwera NAS. To samo zachowanie występuje we wszystkich obsługiwanych wersjach Windows Server, które zawierają Klienta NFS.
- Klient NFS obsługuje wyłącznie protokoły NFSv2 i NFSv3 oraz nie obsługuje list ACL protokołu NFSv4. W rezultacie nie jest w stanie negocjować ani modyfikować list POSIX ACL za pośrednictwem NFS.
- Domyślnie Klient NFS uzyskuje dostęp do udziałów NFS przy użyciu anonimowych identyfikatorów UID i GID. Jeśli serwer NAS nie udzieli uprawnień zapisu tej anonimowej tożsamości, operacje zapisu zakończą się niepowodzeniem.
- Dostęp jest odmawiany, dopóki anonimowe identyfikatory UID i GID nie zostaną jawnie zmapowane na identyfikatory UID i GID, które serwer NAS rozpoznaje i którym zezwala na zapis w folderze współdzielonym, niezależnie od skonfigurowanych uprawnień zapisu folderu współdzielonego.
uwaga
Te ustawienia należy skonfigurować na serwerze Windows Server.
Te ustawienia należy skonfigurować na serwerze Windows Server.
Rozwiązanie
Aby rozwiązać ten problem, należy zmapować anonimowego użytkownika NFS na serwerze Windows Server na identyfikatory UID i GID, którym serwer NAS zezwala na zapis w folderze współdzielonym.
Konfigurację można zastosować przy użyciu jednej z następujących metod.
- Otwórz program PowerShell jako Administrator.
- Uruchom program PowerShell z uprawnieniami administratora.
- Uruchom następujące polecenia, aby zmapować anonimowe identyfikatory UID i GID na wartość
0, która odpowiada użytkownikowi root na serwerze QNAP.Kod: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 - Uruchom następujące polecenie, aby ponownie uruchomić Klienta NFS lub uruchom ponownie system, aby zastosować zmiany:Kod:
nfsadmin client restartwskazówka
Alternatywnie możesz ponownie uruchomić serwer Windows Server.
- Naciśnij klawisze Win + R.
- Wpisz
regedit. - Naciśnij klawisz Enter.
- Przejdź do następującej ścieżki rejestru:Kod:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ClientForNFS\CurrentVersion\Default - Przejdź do menu Edycja > Nowy, a następnie kliknij opcję Wartość DWORD (32-bitowa).
- Utwórz następujące dwie wartości DWORD (32-bitowe) wewnątrz folderu domyślnego:
- AnonymousUid = 0
- AnonymousGid = 0
- Zastosuj zmiany, ponownie uruchamiając klienta NFS:Kod:
nfsadmin client restart - wskazówka
Alternatywnie możesz ponownie uruchomić serwer Windows Server.
- Zmapowanie identyfikatorów UID i GID na wartość
0umożliwia Klientowi NFS dostęp do serwera NAS jako użytkownik root. Upewnij się, że folder współdzielony na serwerze NAS ma przyznane uprawnienia zapisu dla tej tożsamości. - Zastosuj te ustawienia na każdym serwerze Windows Server, który uzyskuje dostęp do udziału NFS.
- Dotyczy to wszystkich wersji systemu Windows, które obsługują funkcję Klient NFS.
- W środowiskach wymagających szczegółowej kontroli uprawnień lub obsługi list ACL protokołu NFSv4 użycie serwera Windows Server w roli klienta NFS nie jest obsługiwane.