Sr-08-lab-1.0

From Studia Informatyczne

Spis treści

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

  1. Udostępnij katalog do zapisu dla wszystkich użytkowników łącznie z użytkownikiem root.
  2. 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.
  3. Udostępnij katalog w trybie WebNFS.
  4. 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.
  5. Sprawdź możliwość zwiększania niezawodności dostępu do replikowanych danych poprzez odpowiednią konfigurację automontera.