common-universal.jpg


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.
50c3d2614779717fd72b5a3aa8952bd9.png


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.
09463de7f09a0f88bb0e5f0a8a0e6a79.png




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.




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.

  1. Otwórz program PowerShell jako Administrator.
  2. Uruchom program PowerShell z uprawnieniami administratora.
  3. 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
  4. Uruchom następujące polecenie, aby ponownie uruchomić Klienta NFS lub uruchom ponownie system, aby zastosować zmiany:
    Kod:
    nfsadmin client restart

    wskazówka
    Alternatywnie możesz ponownie uruchomić serwer Windows Server.

  1. Naciśnij klawisze Win + R.
  2. Wpisz regedit.
  3. Naciśnij klawisz Enter.
  4. Przejdź do następującej ścieżki rejestru:
    Kod:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ClientForNFS\CurrentVersion\Default
  5. Przejdź do menu Edycja > Nowy, a następnie kliknij opcję Wartość DWORD (32-bitowa).
  6. Utwórz następujące dwie wartości DWORD (32-bitowe) wewnątrz folderu domyślnego:
    • AnonymousUid = 0
    • AnonymousGid = 0
  7. Zastosuj zmiany, ponownie uruchamiając klienta NFS:
    Kod:
    nfsadmin client restart
  8. wskazówka
    Alternatywnie możesz ponownie uruchomić serwer Windows Server.
Ważne
  • Zmapowanie identyfikatorów UID i GID na wartość 0 umoż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.



Materiały dodatkowe​