NFS
Na maszynie, która ma być serwerem plików instalujemy:
Kod: Zaznacz cały
apt-get install nfs-common
apt-get install nfs-kernel-server
Konfiguracja NFS-a sprowadza się, do edytowania pliku exports:
W pliku tym wskazujemy katalogi, które chcemy udostępnić, komu chcemy je udostępnić oraz z jakimi prawami.
Co oznacza udostępnij katalog home dla sieci 192.168.1.0/24.
Inaczej mówiąc katalog ten będą mogły, podmontować (bo o to nam tutaj chodzi) na swój system lokalny. Komputery, które znajdują się w tej sieci.
Litery rw w nawiasach oznaczają, że katalog ten będzie do odczytu oraz będzie również w nim możliwość zapisu.
Udostępnienie katalogu /var/log dla komputera o adresie IP 192.168.1.220 z prawami tylko do odczytu tego katalogu.
W pliku /etc/exports możemy również posługiwać się zamiast adresami IP nazwami hosta. Ważne jest jednak żeby NFS „wiedział”, co kryje się pod daną nazwą.
Nazwa ta musi być rozwinięta na adres ip w pliku /etc/hosts.
Hostowi o nazwie rafal udostępnij katalog /home/rafal z możliwością odczytu i zapisu.
Kod: Zaznacz cały
/home/rafal Rafal(rw) Marcin(rw,no_root_squash)
Komputer o nazwie hosta Rafal otrzyma prawo zapisu i prawo odczytu do katalogu /home/rafal. Komputer o nazwie hosta Marcin otrzyma również prawo odczytu i zapisu oraz nazwa użytkownika root nie będzie mapowana (no_root_squash).
Standardowo użytkownikowi root, który ma konto na serwerze przypisywany jest (mapowany) UID użytkownika nfsnobody, dzięki czemu użytkownik root na komputerze lokalnym ma ograniczone prawa do katalogów na serwerze gdyż działa z prawami użytkownika, nfnobody, które są minimalne.
Demon NFS na podstawie numeru użytkownika UID oraz numeru grupy GID stwierdza czy użytkownik może uzyskać dostęp do zasobu. Jeżeli np. na komputerze, który chce uzyskać dostęp do zasobu serwera istnieje użytkownik Rafal o identyfikatorze 1010 i na serwerze istnieje użytkownik o tym samym numerze UID to uzyska on dostęp do zasobu.
Przykład:
Kod: Zaznacz cały
komputer_lokalny------------------serwer
Rafał UID: 1020 Mariusz UID: 1020
Mimo że nazwy użytkowników są inne to zgadzają się numery UID.
W takim przypadku użytkownik Rafal uzyska dostęp do zasobu na serwerze, którego właścicielem jest Mariusz.
Najważniejsze opcje, jakie możemy użyć w pliku /etc/exports rw (domyślna) - katalog będzie zarówno do odczytu jak i zapisu.
ro - katalog będzie tylko do odczytu.
insecure - do katalogu będzie miał dostęp każdy komputer. Nawet te które nie używają bezpiecznego portu < 1024.
root_squash (domyślna) - zamienia żądania, które przychodzą od użytkownika z
UID lub GID o numerze 0 na identyfikator anonimowego użytkownika.
no_root_squash - nie zamienia żądań z UID lub GID o numerze 0 na żądania od anonimowych użytkowników dzięki czemu użytkownik z prawami administratora na komputerze lokalnym będzie miał prawa do wszystkich katalogów na serwerze.
Konfiguracja klienta:
Po udostępnieniu katalogu na serwerze należy go jeszcze zamontować w systemie klienta. Jednak na samym początku na kliencie również musimy zainstalować protokół NFS.Możemy to uzyskać na dwa sposoby. Montując katalog za pomocą polecenia mount.
Gdzie:
192.168.1.100:/home - katalog home który został udostępniony
na serwerze NFS.
/home - lokalny katalog home.
Jednak po zrestartowaniu komputera nie będzie on już zamontowany. Lepszym sposobem jest zamontowanie go na stałe wpisując do pliku /etc/fstab poniższa linijkę.
Kod: Zaznacz cały
192.168.1.102:/home /home nfs rw,hard,tcp 0 0
Składnia w pliku export wygląda następująco:
Kod: Zaznacz cały
katalog_ktory_chcemy_udostępnić nazwa_komputera_lub_IP(Opcję)
Jeżeli liczba opcji jest większa niż jedną podajemy je po przecinku.
Szczegółowe informacje na temat wszystkich dostępnych opcji: