Sr-08-lab-1.0: Różnice pomiędzy wersjami
Lab 08 - NFS (2) |
(Brak różnic)
|
Aktualna wersja na dzień 20:01, 1 wrz 2006
Network File System
Mapowanie użytkowników
Identyfikacja użytkowników w systemie NFS odbywa się wg. ich identyfikatorów numerycznych. Oznacza to, że w przypadku niezgodności w konfiguracji użytkowników pomiędzy systemami klienta i serwera może dojść do nieuprawnionego dostępu do danych. Z tego powodu w domyślnej konfiguracji konto użytkownika root podlega mapowaniu na użytkownika o identyfikatorze -2 (65534). Działanie to można kontrolować następującymi parametrami eksportowania katalogów:
root_squash- włączenie mapowania użytkownika o identyfikatorze 0 (
root) na użytkownika o identyfikatorze -2 (nobody) no_root_squash- wyłączenie mapowania użytkownika 0
all_squash- mapowanie wszystkich użytkowników do użytkownika o identyfikatorze -2
anonuid- identyfikator użytkownika anonimowego
anonguid- identyfikator grupy użytkownika anonimowego
Poniższy przykład pokazuje konfigurację serwera NFS udostępniającego katalogi domowe użytkownikom systemów innych niż Unix:
/home/pc1 pc1(rw,all_squash,anonuid=1001,anongid=100) /home/pc2 pc2(rw,all_squash,anonuid=1002,anongid=100) /home/pc3 pc3(rw,all_squash,anonuid=1003,anongid=100)
W przykładzie użytkownik użytkownik o identyfikatorze 1001 korzysta z komputera o nazwie pc1 i należy do grupy o identyfikatorze 100. Serwer NFS udostępnia jego katalog domowy tylko dla komputera pc1. Analogicznie użytkownicy 1002 i 1003 korzystają z komputerów pc2 i pc3.
Mapowanie statyczne
Serwer może wprowadzić statyczną tabelę odwzorowań użytkowników z systemu klienta na użytkowników serwera. Wymaga to wyspecyfikowania dodatkowej opcji w konfiguracji wskazującej na plik z odwzorowaniami:
/home *.cs.put.poznan.pl(rw,map_static=/etc/nfs/home.map)
Zawartość pliku /etc/nfs/home.map definiuje odwzorowania poszczególnych użytkowników:
uid 0-99 - # mapowanie do nobody uid 100-500 1000 # mapowanie 100-500 na 1000-1400 gid 0-49 - # mapowanie id grup 0-49 na -2 gid 50-100 700 # mapowanie grup 50-100 na 700-750
Mapowanie dynamiczne
Wadą mapowania statycznego jest oczywiście jego statyczność. Rozwiązanie dynamiczne polega na uruchomieniu po stronie klienta dodatkowej usługi, której zadaniem jest udostępnianie informacji o odwzorowaniach identyfikatorów użytkowników na nazwy. W celu należy po stronie klienta uruchomić proces:
# rpc.ugidd
a do konfiguracji serwera dopisać nową opcję:
/home *.cs.put.poznan.pl(rw,map_daemon)
WebNFS
WebNFS to rozszerzenie standardowego protokołu NFS o możliwość pobierania plików za pośrednictwem publicznego uchwytu do plików. Umożliwi to proste pobieranie plików np. przez przeglądarki internetowe. Konfiguracja wymaga wskazania głównego katalogu dla WebNFS i udostępnienia wybranych katalogów w zwykły sposób. Oto przykładowa konfiguracja:
/test =public /test *.cs.put.poznan.pl(ro,all_squash,insecure)
W przeglądarce należy wpisać odpowiedni adres URL:
nfs://galio.cs.put.poznan.pl/plik.txt
Przeglądarka Konqueror obsługuje rozszerzenie WebNFS.
Automonter
Dołączanie systemów plików może być automatyzowane za pomocą uzupełniającego oprogramowania uruchamianego po stronie klienta o nazwie automounter. Konfiguracja automontera opiera się na głównym pliku konfiguracyjnym /etc/auto.master oraz na plikach uzupełniających /etc/auto.*. W pliku /etc/auto.master wskazywane są katalogi, które będą kontrolowane przez oprogramowanie automontera:
/home /etc/auto.home /a /etc/auto.a
Nazwa pliku pojawiająca się po nazwie katalogu wskazuje na szczegółowy plik konfiguracyjny opisujący dany katalog. Skrypt startowy automontera dla każdego katalogu wymienionego w pliku /etc/auto.master uruchamia komendę automount wskazując plik konfiguracyjny. W przypadku katalogu /home zostanie więc wydana komenda:
# automount /home file /etc/auto.home
Argument file wskazuje, że konfiguracja znajduje się w zwykłym pliku o nazwie wskazanej trzecim argumentem. Dane dla automontera mogą również pochodzić z systemu NIS (zobacz punkt) lub mogą być generowane dynamicznie przez program. Szczegółowy opis konfiguracji znajduje się stronie pomocy systemowej autofs(5).
Działanie automontera sprowadza się do monitorowania odwołań do podkatalogów kontrolowanego katalogu. W przypadku stwierdzenia odwołania do zdefiniowanego katalogu następuje jego dołączenie, zgodnie ze wskazaniami z pliku konfiguracyjnego. Poniższy przykład prezentuje konfigurację z pliku /etc/auto.home:
user1 unixlab:/home/user1 user2 galio:/export/home/user2 user3 -fstype=ext3,rw :/dev/sda4
W pierwszej kolumnie znajdują się nazwy podkatalogów konfigurowanego katalogu. Druga kolumna (opcjonalna) zawiera dodatkowe opcje montowania systemu plików. Trzecia kolumna to wskazanie na system plików. Zakładając powyższą konfigurację wykonanie komendy:
# ls /home/user1
spowoduje dołączenie katalogu zdalnego /home/user1 z systemu unixlab. Katalog domowy użytkownika user3 dołączany jest z lokalnego systemu plików, co powoduje wykonanie przez automontera komendy:
# mount -o rw -t ext3 /dev/sda4 /home/user3
W przypadku konfiguracji katalogów domowych użytkowników, których pliki znajdują się w podkatalogach jednego wspólnego katalogu, można zastosować zapis skrócony:
* unixlab:/export/home/&
Znak * oznacza w tym miejscu dowolny ciąg znaków, który zostanie następnie użyty w miejscu wystąpienia znaku &. Odwołanie do katalogu /home/abc spowoduje więc próbę dołączania katalogu /export/home/abc z systemu unixlab.
Zwiększanie dostępności
Automonter umożliwia zwiększanie dostępności zdalnych katalogów poprzez ich replikację. Zakładając, że serwery srv1 i srv2 udostępniają to samo oprogramowanie w katalogu /usr/local, można rozważyć następującą konfigurację:
local / srv2:/usr/local / srv1:/usr/local
W przykładzie wskazano na dwa źródła dla podkatalogu local co oznacza, że niemożność dołączenia tego katalogu z systemu srv1 spowoduje dołączenie go z srv2. Ponieważ cała operacja będzie niewidoczna dla użytkownika, jedynym efektem tej konfiguracji będzie zwiększona niezawodność zdalnego katalogu. Parametr poprzedzający wskazanie na dalszy serwer oznacza dodatkowy podkatalog katalogu local, który pojawi się w momencie dołączenia systemu plików, co może umożliwić rozróżnienie przez użytkownika źródła danych.
Dynamiczna konfiguracja
Dane dla automontera mogą pochodzić z programu dynamicznie generującego konfigurację. Wymaga to uruchomienia programu automount z opcją program:
# automount /a program /etc/auto.sh
W powyższym przykładzie konfigurację dostarcza skrypt /etc/auto.sh. Program ten jest wywoływany z argumentem będącym nazwą podkatalogu, do którego odwołuje się użytkownik. Oto przykładowa implementacja w języku sh:
#!/bin/sh echo "unixlab.cs.put.poznan.pl:/export/home/$1"
Skrypt umożliwia dostęp do katalogów domowych wszystkich użytkowników. Specjalnym zastosowaniem programów generujących zapisy konfiguracyjne jest równoważenie obciążenia serwerów. Zakładając konfigurację z poprzedniego punktu (podkatalog local), program konfiguracyjny mógłby zwracać naprzemiennie wskazania na serwery srv1 i srv2.
Dokumentacja
Strony pomocy systemowej: mount(8), nfs(5), autofs(5), autofs(8), automount(8), auto.master(5).
Zadania
- Udostępnij katalog do zapisu dla wszystkich użytkowników łącznie z użytkownikiem
root. - Skonfiguruj serwer NFS do pracy w trybie statycznego mapowania użytkownika ze stacji roboczej o identyfikatorze 1500 na użytkownika o tej samej nazwie i identyfikatorze 1600 po stronie serwera. Zastosuj mapowanie statyczne i dynamiczne.
- Udostępnij katalog w trybie WebNFS.
- Skonfiguruj oprogramowanie automontera tak, aby umożliwiało dołączanie systemów plików z napędów CD-ROM i zdalnego katalogu poprzez system plików NFS.
- Sprawdź możliwość zwiększania niezawodności dostępu do replikowanych danych poprzez odpowiednią konfigurację automontera.