Próbuję połączyć się z folderem NFS na moim serwerze deweloperskim. Właścicielem folderu na serwerze deweloperskim jest darren i grupa darren.
Kiedy eksportuję i montuję go na komputerze Mac za pomocą narzędzia dyskowego, montuje, ale kiedy próbuję otworzyć folder, mówi, że nie mam uprawnień. Ustawiłem rw, synchronizację i no_subtree_check. Użytkownik komputera Mac ma wiele grup.
Czy muszę mieć tę samą grupę i użytkownika, aby uzyskać dostęp do folderu?
Odpowiedzi:
NFS jest oparty na uwierzytelnianiu RPC. W NFS w wersji 3 najczęstszym mechanizmem uwierzytelniania jest AUTH_UNIX. Identyfikator użytkownika i identyfikator grupy systemu klienta są wysyłane w każdym wywołaniu RPC, a uprawnienia, które mają te identyfikatory w dostępie do pliku, są sprawdzane na serwerze. Aby to zadziałało, UID i GID muszą być takie same na serwerze i klientach. Możesz jednak zmusić cały dostęp do wystąpienia jako pojedynczy użytkownik i grupa, łącząc opcje eksportu all_squash, anonuid i anongid. all_squash zmapuje wszystkie UID i GID do anonimowego użytkownika, a anonuid i anongid ustawią UID i GID anonimowego użytkownika. Na przykład, jeśli zarówno UID, jak i GID na serwerze deweloperskim wynoszą 1001, możesz wyeksportować swój katalog domowy za pomocą linii
/home/darren 192.168.1.1/24(rw,all_squash,anonuid=1001,anongid=1001)
Mniej znam NFS w wersji 4, ale myślę, że możesz skonfigurować rpc.idmapd na klientach, aby zmienić UID i GID, które wysyłają na serwer.
źródło
Kiedy montujesz NFS, twoje uprawnienia, z którymi go instalujesz, muszą pasować do tego, co masz na serwerze. Na przykład, jeśli użytkownik ma dostęp tylko do odczytu, zamontowanie go za pomocą odczytu i zapisu spowoduje, że zobaczysz te same błędy, o których wspomniałeś w swoim poście, gdy spróbujesz faktycznie załadować mount. Niestety, pojawi się TYLKO podczas uzyskiwania dostępu do folderu, a nie podczas jego rzeczywistego zamontowania.
Chcesz także upewnić się, że użytkownik NFS działa tak jak na serwerze, a użytkownik na kliencie używa tego samego UID i GID. Możesz sprawdzić te wartości, uruchamiając
id darren
zarówno na serwerze, jak i na kliencie. Jeśli wartości UID i GID nie pasują do siebie, możesz edytować,/etc/passwd
aby to zrobić - ale upewnij się, że rozumiesz, co robisz, zanim arbitralnie zmienisz wartości!Niektóre dobre źródła:
Mam nadzieję, że to pomoże!
źródło
Czy Twoje identyfikatory UID i GID są zgodne na obu serwerach? Tego używa do kontrolowania dostępu, a nie loginu i nazwy grupy.
źródło
Dla mnie problem został rozwiązany poprzez udostępnienie
_netdev
opcji montażu na kliencie.Dodaj to do
/etc/fstab
:źródło