Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > c271e9e583b3924e0de744696831c936 > files > 24

howto-text-pl-2006-5mdv2010.0.noarch.rpm

  Opis systemów NIS(YP)/NYS/NIS+ na Linux-ie.
  Autor:Thorsten Kukuk kukuk@suse.de
  v1.0, 9 Marca 1999
  WWeerrssjjaa ppoollsskkaa:: BBaarrttoosszz MMaarruusszzeewwsskkii BB..MMaarruusszzeewwsskkii@@jjttzz..oorrgg..ppll
  v3.0, 9 Sierpnia 1999






  Dokument ten opisuje jak skonfigurowaæ Linux-a, aby dzia³a³ jako
  klient NIS(YP) czy NIS+ oraz jako serwer. Dokument ten zosta³ napisany
  w standardzie ISO-8859-2.
  ______________________________________________________________________

  Spis tre¶ci

















































  1. Wprowadzenie.

     1.1 Nowe wersje tego dokumentu.
     1.2 Zrzeczenie.
     1.3 Komentarze i poprawki.
     1.4 Podziêkowania.
     1.5 Od t³umacza.

  2. S³owniczek i informacje ogólne.

     2.1 S³owniczek terminów.
     2.2 Trochê ogólnych informacji.

  3. NIS , NYS czy NIS+ ?

     3.1 libc 4/5 z tradycyjnym NIS czy NYS ?
     3.2 NIS czy NIS+ ?

  4. Jak to dzia³a.

     4.1 Jak dzia³a NIS.
     4.2 Jak dzia³a NIS+.

  5. Portmapper RPC

  6. Czego potrzebujesz, aby ustawiæ NIS?

     6.1 Sprawd¼ czy jeste¶ serwerem, serwerem slave czy klientem.
     6.2 Oprogramowanie.
     6.3 Demon ypbind.
     6.4 Ustawianie kilenta NIS przy u¿yciu Tradycyjnego NIS-a.
     6.5 Ustawianie klienta NIS u¿ywaj±c NYS.
     6.6 Ustawianie klienta NIS u¿ywaj±c glibc 2.x
     6.7 Plik nsswitch.conf
     6.8 Shadow Passwords z NIS i PAM.
        6.8.1 Linux
        6.8.2 Solaris
        6.8.3 PAM

  7. Czego potrzebujesz do ustawienia NIS+?

     7.1 Oprogramowanie.
     7.2 Konfiguracja klienta NIS+.
     7.3 NIS+, keylogin, login i PAM.
     7.4 Plik nsswitch.conf.

  8. Konfiguracja serwera NIS.

     8.1 Program ypserv.
     8.2 Program serwera yps.
     8.3 Program rpc.ypxfrd
     8.4 Program rpc.yppasswdd

  9. Weryfikacja instalacji NIS/NYS.

  10. Popularne problemy i rozwi±zywanie ich.

  11. Czêsto zadawane pytania.



  ______________________________________________________________________




  11..  WWpprroowwaaddzzeenniiee..


  Coraz wiêcej komputerów z Linux-em instalowanych jest jako czê¶æ sieci
  komputerowych. Aby upro¶ciæ administracjê sieci± wiêkszo¶æ sieci
  (g³ównie oparte na Sun-ach) posiada Network Information Service.
  Maszyny Linux-owe mog± w pe³ni korzystaæ z serwera NIS albo samemu
  dostarczaæ tak± us³ugê. Linux mo¿e tak¿e dzia³aæ jako pe³ny klient
  NIS+, obs³uga tego jest jeszcze w fazie beta.

  Dokument ten próbuje odpowiedzieæ na pytania dotycz±ce ustawienia
  NIS(YP) i NIS+ na twoim komputerze. Nie zapomnij przeczytaæ sekcji na
  temat ``Portmapper-a RPC''.

  NIS-HOWTO zajmuje siê



               Thorsten Kukuk, <tt/kukuk@vt.uni-paderborn.de/




  Pierwotnym ¼ród³em informacji dla pierwszej wersji NIS-HOWTO byli:



       Andrea Dell'Amico       <adellam@ZIA.ms.it>
       Mitchum DSouza          <Mitch.DSouza@NetComm.IE>
       Erwin Embsen            <erwin@nioz.nl>
       Peter Eriksson          <peter@ifm.liu.se>




  którym powinni¶my podziêkowaæ za napisanie pierwszych wersji tego
  dokumentu.


  11..11..  NNoowwee wweerrssjjee tteeggoo ddookkuummeennttuu..



  Najnowsz± wersjê tego dokumentu mo¿esz zawsze znale¼æ pod adresem
  http://www.suse.de/~kukuk/linux/HOWTO/NIS-HOWTO.html.

  Najnowsze wersje bêd± tak¿e umieszczane na ró¿nych serwerach WWW i FTP
  zwi±zanych z Linux-em w³±cznie ze stron± LDP.

  Odno¶niki do t³umaczeñ tego dokumentu mo¿na znale¼æ pod adresem
  http:///www.suse.de/~kukuk/linux/nis-howto.html.


  11..22..  ZZrrzzeecczzeenniiee..


  Pomimo, i¿ dokument ten powsta³ w jak najlepszej intencji mo¿e i
  pewnie zawiera b³êdy. Czytaj proszê wszystkie pliki README znajduj±ce
  siê wraz z oprogramowaniem wymienianym tutaj w celu uzyskania jak
  naj¶wie¿szych informacji. Bêdê sie stara³ aby by³o tu jak najmniej
  b³êdów.





  11..33..  KKoommeennttaarrzzee ii ppoopprraawwkkii..


  Je¶li masz jakie¶ pytania czy poprawki dotycz±ce tego dokumentu, pisz
  ¶mia³o do Thorstena Kukuk na adres kukuk@suse.de. Przyjmujê wszelkie
  sugestie czy krytykê. Je¶li znajdziesz jaki¶ b³±d daj mi znaæ proszê,
  ¿ebym móg³ go poprawiæ w nastêpnej wersji. Dziêki.

  Proszê _n_i_e przysy³aj mi pytañ na temat problemów dotycz±cych twojej
  dystrybucji Linux-a. Nie znam ka¿dej dystrybucji. Ale bêdê siê stara³
  dodaæ ka¿de rozwi±zanie jaki mi przy¶lecie.


  11..44..  PPooddzziiêêkkoowwaanniiaa..


  Chcieliby¶my podziêkowaæ wszystkim ludziom, którzy przyczynili siê w
  jaki¶ sposób do powstania i rozwoju tego dokumentu. W porz±dku
  alfabetycznym:




       Byron A Jeff            <byron@cc.gatech.edu>
       Markus Rex              <msrex@suse.de>
       Miquel van Smoorenburg  <miquels@cistron.nl>




  Theo de Raadt jest odpowiedzialny za oryginalny kod yp-klienta. Swen
  Thuemmler przeniós³ ten kod na Linux-a jak równie¿ procedury yp do
  biblioteki libc (znowu na podstawie pracy Theo). Thorsten Kukuk
  napisa³ od zera procedury NIS(YP) i NIS+ dla GNU libc 2.x.


  11..55..  OOdd tt³³uummaacczzaa..


  T³umaczenie to jest chronione prawami autorskimi © Bartosza
  Maruszewskiego.  Dozwolone jest rozprowadzanie i dystrybucja na
  prawach takich samych jak dokument oryginalny.

  Je¶li znalaz³e¶ jakie¶ ra¿±ce b³êdy ortograficzne, gramatyczne,
  sk³adniowe, techniczne to pisz do mnie. Zaznaczam, ¿e nie jestem
  bieg³y w terminologii kryptografii wiêc wystepuj± tu pewnie jakie¶
  dziwne wyra¿enia, które powinienem zapisaæ inaczej. Je¶li wiesz jak to
  ma brzmieæ, napisz;

  B.Maruszewski@jtz.org.pl

  Oficjaln± stron± t³umaczeñ HOWTO jest http://www.jtz.org.pl/

  Aktualne wersje przet³umaczonych dokumentów znajduj± siê na tej¿e
  stronie. Dostêpne s± tak¿e poprzez anonimowe ftp pod adresem
  ftp.jtz.org.pl w katalogu /JTZ/.

  Przet³umaczone przeze mnie dokumenty znajduj± siê tak¿e na mojej
  stronie WWW. <http://www.jtz.org.pl/bartek/tlumaczenie.html> S± tam
  te¿ odwo³ania do Polskiej Strony T³umaczeniowej.

  Kontakt z nasz± grup±, grup± t³umaczy mo¿esz uzyskaæ poprzez listê
  dyskusyjn± jtz@ippt.gov.pl. Je¶li chcesz sie na ni± zapisaæ, to wy¶lij
  list o tre¶ci subscribe jtz Imiê Nazwisko na adres
  majordomo@ippt.gov.pl

  Zmiany w tym dokumencie wprowadzone przez t³umacza to odwo³ania do
  polskich serwerów ftp.


  22..  SS³³oowwnniicczzeekk ii iinnffoorrmmaaccjjee ooggóóllnnee..



  22..11..  SS³³oowwnniicczzeekk tteerrmmiinnóóww..


  W dokumencie tym wystêpuje wiele akronimów. Oto te najwa¿niejsze i
  krótkie wyja¶nienie:


     DDBBMM
        DataBase Management - biblioteka funkcji, które obs³uguj± pary z
        kluczem (-key-content) w bazie danych.


     DDLLLL
        Dynamically Linked Library - biblioteka do³±czana do
        wykonywalnego programu podczas jego dzia³ania.


     ddoommaaiinnnnaammee
        "Nazwa-klucz", która jest u¿ywana przez klientów NIS, aby
        zlokalizowaæ pasuj±cy serwer NIS, który udostepnia klucz dla
        domeny (domainname key). Zauwa¿ proszê, ¿e to nie koniecznie ma
        co¶ wspólnego z domen± DNS-ow± (nazw± maszyny).


     FFTTPP
        File Transfer Protocol - protokó³ u¿ywany do przenoszenia plików
        pomiêdzy komputerami.


     lliibbnnssll
        Name services library - biblioteka odwo³añ "name service"
        (getpwnam, getservbyname itp.) na unix-ach SVR4. GNU libc u¿ywa
        tego do funkcji NIS (YP) i NIS+.


     lliibbssoocckkeett
        Socket services library - biblioteka odwo³añ obs³ugi gniazdek
        (socket, bind, listen itp.) na unix-ach SVR4.


     NNIISS
        Network Information Service - serwis który udostêpnia
        informacjê, która musi byæ znana poprzez sieæ dla wszystkich
        maszyn w sieci. W standardowej bibliotece Linux-a - libc - jest
        obs³uga dla NIS, która dalej zwana jest "tradycyjnym NIS-em".


     NNIISS++
        Network Information Service (Plus :-) - w³a¶ciwie to taki NIS na
        sterydach. NIS+ zosta³ zaprojektowany przez Sun Microsystems
        Inc. jako zastêpca NIS-a z lepszym bezpieczeñstwem i lepsz±
        obs³ug± _wielkich_ instalacji.


     NNYYSS
        Jest to nazwa projektu, który powsta³ z NIS+, YP i Switch i
        zarz±dzany jest przez Petera Erikssona <peter@ifm.liu.se>.
        Miêdzy innymi zawiera powtórn± implementacjê kodu NIS-a (=YP),
        która u¿ywa funkcjonalno¶ci Name Service Switch biblioteki NYS.


     NNSSSS
        Name Service Switch. Plik /etc/nsswitch.conf okre¶la kolejno¶æ,
        w jakiej sprawdza siê pewne ¿±dane informacje.


     RRPPCC
        Remote Procedure Call. Procedury RPC pozwalaj± programom w C
        odwo³ywaæ siê do procedur na odleg³ej maszynie poprzez sieæ.
        Kiedy ludzie mówi± o RPC to najczê¶ciej maj± na my¶li wariant
        Sun-a RPC.


     YYPP Yellow Pages(TM) - zarejestrowany znak towarowy w UK firmy
        British Telecom plc.


     TTCCPP--IIPP
        Transmission Control Protocol/Internet Protocol. To protokó³
        komunikacji danych najczê¶ciej u¿ywany na maszynach unix-owych.


  22..22..  TTrroocchhêê ooggóóllnnyycchh iinnffoorrmmaaccjjii..


  Nastêpuj±ce 3 linijki to cytat z podrêcznika Sun(TM) System & Network
  Administration Manual:



       "NIS znany by³ wcze¶niej jako Sun Yellow Pages (YP), ale nazwa Yellow
       Pages(TM) jest zarejestrowanym znakiem towarowym w Zjednoczonym
       Królestwie firmy British Telecom plc i nie mo¿e byæ u¿ywana bez zgody."




  NIS to skrót od Network Information Service. Celem jego jest
  dostarczanie informacji, która musi byæ znana na sieci dla wszystkich
  komputerów. Informacja, która najprawdopodobniej bêdzie dystrybuowana
  to:


  ·  login/has³a/katalogi domowe (/etc/passwd)

  ·  informacje o grupach (/etc/group)

  Je¶li na przyk³ad informacja o twoim ha¶le jest zapisana w bazie hase³
  NIS, bêdziesz móg³ siê zalogowaæ na wszystkich maszynach na sieci,
  które maj± uruchomionego klienta NIS.

  Sun jest znakiem towarowym Sun Microsystems, Inc. licencjonowane dla
  SunSoft, Inc.


  33..  NNIISS ,, NNYYSS cczzyy NNIISS++ ??



  33..11..  lliibbcc 44//55 zz ttrraaddyyccyyjjnnyymm NNIISS cczzyy NNYYSS ??


  Wybór pomiêdzy "tradycyjnym NIS" czy kodem NIS w bibliotece NYS jest
  wyborem pomiêdzy lenistwem i rozwojem a elastyczno¶ci± i zami³owaniem
  do przygody.

  Kod "tradycjnego NIS" jest w standardowej bibliotece C i istnieje ju¿
  d³ugo i czasem cierpi z powodu swojego wieku i pewnej
  nieelastyczno¶ci.

  Kod NIS w bibliotece NYS wymaga rekompilacji biblioteki libc, aby
  w³±czyæ do niej kod NYS (albo mo¿esz wzi±æ ju¿ skompilowan± wersjê
  libc od kogo¶ kto ju¿ j± skompilowa³).

  Inn± ró¿nic± jest to, ¿e "tradycyjny NIS" ma pewn± obs³ugê NIS
  Netgroups, której  NYS nie ma. Z drugiej strony NYS pozwala obs³ugiwaæ
  Shadow Passwords w sposób przezroczysty. "Tradycyjny NIS" nie
  obs³uguje Shadow passwords przez NIS.

  Zapomnij o tym wszystkim je¶li u¿ywasz nowej biblioteki GNU C 2.x (aka
  libc6). Ma ona rzeczywist± obs³ugê NSS (Name Switch Service), co czyni
  j± bardzo elastyczn± oraz zawiera obs³ugê nastêpuj±cych map NIS/NIS+:
  aliases, ethers, group, hosts, netgroups, networks, protocols,
  publickey, passwd, rpc, services i shadow. Biblioteka GNU C nie ma
  ¿adnych problemów z shadow password przez NIS.


  33..22..  NNIISS cczzyy NNIISS++ ??


  Wybór miêdzy NIS a NIS+ jest prosty - u¿yj NIS-a je¶li nie musisz
  u¿ywaæ NIS+ czy nie musisz stosowaæ zaostrzonego bezpieczeñstwa. Z
  NIS+ jest _o wiele_ wiêcej k³opotów je¶li chodzi o administracjê (jest
  nim ca³kiem ³atwo zarz±dzaæ od strony klienta, ale serwer to horror).
  Innym problemem jest fakt, ¿e wsparcie dla NIS+ w Linux-ie jest ci±gle
  w fazie rozwoju - potrzebujesz najnowszej biblioteki glibc, albo
  musisz poczekaæ na glibc 2.1. Istnieje wersja zastêpcza glibc z
  obs³ug± NIS+ dla libc5.


  44..  JJaakk ttoo ddzziiaa³³aa..



  44..11..  JJaakk ddzziiaa³³aa NNIISS..


  W ca³ej sieci musi byæ przynajmniej jedna maszyna dzia³aj±ca jako
  serwer NIS. Mo¿esz zrobiæ wiêcej serwerów NIS, ka¿dy dla innej
  "domeny" NIS - albo mo¿esz mieæ wspó³pracuj±ce serwery NIS, gdzie
  jeden ma byæ g³ównym serwerem NIS (master) a wszystkie inne s± tak
  zwanymi slave NIS servers (to znaczy dla pewnej "domeny" NIS!) - albo
  mo¿esz to pomieszaæ.

  Serwery slave posiadaj± tylko kopiê baz danych NIS i otrzymuj± te
  kopie od g³ównego serwera NIS kiedy tylko robione s± jakie¶ zmiany w
  g³ównej bazie. W zale¿no¶ci od liczby komputerów w twojej sieci,
  mo¿esz zdecydowaæ siê na instalacjê jednego lub wiêkszej ilo¶ci
  serwerów slave. Kiedy tylko serwer NIS jest unieruchamiany (goes down)
  albo jest zbyt wolny w odpowiedziach na ¿±dania, klient NIS-a
  pod³±czony do tego serwera spróbuje znale¼æ ten, który dzia³a albo
  jest szybszy.

  Bazy danych NIS s± w tak zwanym formacie DBM, pochodz±cym od baz
  danych ASCII. Na przyk³ad, pliki /etc/passwd i /etc/group mog± byæ
  bezpo¶rednio zamienione na DBM przy pomocy oprogramowania
  translacyjnego ASCII-na-DBM ("makedbm" - dostarczanym wraz z
  serwerem). G³ówny serwer NIS powinien posiadaæ obie bazy - tak ASCII
  jak i DBM.

  Serwery slave zostan± powiadomione o ka¿dej zmianie w mapach NIS,
  (poprzez program "yppush") i automatycznie uaktualni± owe zmiany, aby
  zsynchronizowaæ swoje bazy danych. Klienci NIS nie musz± tego robiæ
  poniewa¿ oni zawsze ³±cz± siê z serwerem NIS, aby odczytaæ informacje
  zapisane w bazach danych DBM.

  Stare wersje ypbind wysy³aj± adres rozg³oszeniowy (broadcast), aby
  znale¼æ dzia³aj±cy serwer NIS. Jest to niebezpieczne poniewa¿ ka¿dy
  mo¿e zainstalowaæ serwer NIS i odpowiedzieæ na takie zapytanie.
  Nowsze wersje ypbind (3.3 czy mt) pobieraj± adres serwera z pliku
  konfiguracyjnego - i nie ma potrzeby wysy³ania adresu
  rozg³oszeniowego.


  44..22..  JJaakk ddzziiaa³³aa NNIISS++..


  NIS+ to nowa wersja "network information nameservice" z Sun-a.
  Najwiêksz± ró¿nic± pomiêdzy NIS i NIS+ jest obs³uga kodowania danych i
  autentykacja poprzez bezpieczne RPC w NIS+.

  Model nazewnictwa w NIS+ jest zbudowany w postaci struktury
  drzewiastej. Ka¿dy wêze³ w drzewie odpowiada objektowi NIS+, których
  mamy sze¶æ typów: katalog, pozycja (entry), grupa, do³±czenie, tablica
  i prywatne.

  Katalog NIS+, który tworzy podstawê przestrzeni nazw w NIS+ nazywa siê
  katalogiem "root". S± dwa specjalne katalogi NIS+: org_dir i
  groups_dir. Katalog org_dir sk³ada siê z wszystkich tablic
  administracyjnych, takich jak passwd, hosts i mail_aliases.  Katalog
  groups_dir sk³ada siê z grup objektów NIS+, które u¿ywane s± do
  kontroli dostêpu. Kolekcja org_dir, groups_dir i ich katalogów
  nadrzêdnych to domena NIS+.


  55..  PPoorrttmmaappppeerr RRPPCC


  Aby móc uruchomiæ jakikolwiek z wymienionych poni¿ej programów,
  bêdziesz musia³ uruchomiæ program /usr/bin/portmap. Niektóre
  dystrybucje maj± skrypt uruchamiaj±cy ten demon w plikach startowych
  /sbin/init.d/ czy /etc/rc.d/. Wszystko co musisz zrobiæ, to uaktywniæ
  go i zrestartowaæ komputer. Przeczytaj dokumenctajê dostarczon± wraz z
  dystrybucj±, aby siê dowiedzieæ jak to zrobiæ.

  Portmapper RPC (portmap(8)) jest serwerem, który zamienia numery
  programowe RPC na numery portów protoko³u TCP/IP (albo UDP/IP).  Musi
  byæ on uruchomiony, aby móc u¿ywaæ na tej maszynie odwo³añ RPC (co
  w³a¶nie robi oprogramowanie klienta NIS/NIS+) do serwerów RPC (takich
  jak serwer NIS czy NIS+). Kiedy serwer RPC jest startowany,
  poinformuje on portmap-a na których portach nas³uchuje, i jakimi
  numerami programowymi RPC mo¿e s³u¿yæ. Kiedy klient chce odwo³aæ siê
  przez RPC do danego numeru programowego, najpierw skontaktuje siê z
  portmap-em na maszynie serwerowej, aby okre¶liæ numer portu, do
  którego nale¿y wys³aæ pakiety RPC.

  Normalnie, standardowe serwery RPC s± startowane przez inetd(8), wiêc
  portmap musi dzia³aæ zanim wystartuje inetd.

  Dla bezpieczeñstwa portmapper potrzebuje serwisu czasu (Time Service).
  Upewnij siê czy serwis ten jest w³±czony w /etc/inetd.conf na
  wszystkich hostach:




  #
  # Time service is used for clock syncronization.
  #
  time    stream  tcp     nowait  nobody  /usr/sbin/tcpd  in.timed
  time    dgram   udp     wait    nobody  /usr/sbin/tcpd  in.timed




  WA¯NE: Nie zapomnij zresetowaæ (kill -HUP) inetd-a po dokonaniu zmian
  jego pliku konfiguracyjnym !


  66..  CCzzeeggoo ppoottrrzzeebbuujjeesszz,, aabbyy uussttaawwiiææ NNIISS??



  66..11..  SSpprraawwdd¼¼ cczzyy jjeessttee¶¶ sseerrwweerreemm,, sseerrwweerreemm ssllaavvee cczzyy kklliieenntteemm..


  Aby odpowiedzieæ na to pytanie musisz rozwa¿yæ dwa przypadki:


  1. Twoja maszyna bêdzie czê¶ci± sieci z istniej±cymi serwerami NIS.

  2. Nie masz jeszcze ¿adnego serwera NIS w sieci.

  W pierwszym przypadku potrzebujesz tylko programów klienta (ypbind,
  ypwhich, ypcat, yppoll, ypmatch). Najwa¿niejszym programem jest
  ypbind. Program ten musi byæ uruchomiony przez ca³y czas, to znaczy
  powinien zawsze pojawiaæ siê w li¶cie procesów. Jest to proces-demon i
  musi byæ startowany z plików startowych systemu (np. /etc/init.d/nis,
  /sbin/init.d/ypclient, /etc/rc.local, /etc/rc.d/init.d/ypbind).
  Jak tylko ypbind jest uruchomiony, twój komputer staje siê klientem
  NIS.

  W drugim przypadku, je¶li nie masz serwerów NIS, to bêdziesz tak¿e
  potrzebowa³ programu serwera NIS (zwykle zwanego ypserv). Sekcja
  ``Konfiguracja serwera NIS'' opisuje jak ustawiæ serwer NIS na twojej
  maszynie Linux-owej przy pomocy implementacji "ypserv" Petera
  Erikssona i Thorstena Kukuka.
  Zauwa¿, ¿e od wersji 0.14 implementacja ta obs³uguje koncept master-
  slave omówiony w sekcji 4.1.

  Jest jeszcze jeden darmowy serwer NIS, zwany "yps", napisany przez
  Tobiasa Rebera w Niemczech, który obs³uguje koncept master-slave, ale
  ma inne ograniczenia i nie jest wspierany od d³ugiego czasu.


  66..22..  OOpprrooggrraammoowwaanniiee..


  Biblioteka systemowa "/usr/lib/libc.a" (wersja 4.4.2 i nowsza) czy
  biblioteka dzielona "/lib/libc.so.x" zawieraj± wszystkie odwo³ania
  systemowe niezbêdne do skompilowania oprogramowania klienta i serwera
  NIS. Do biblioteki glibc 2.x, potrzebujesz tak¿e biblioteki
  /lib/libnsl.so.1.

  Niektórzy podawali, ¿e NIS dzia³a tylko z "/usr/lib/libc.a" w wersji
  4.5.21 i nowszej, wiêc je¶li chcesz byæ zabezpieczony, to nie u¿ywaj
  starszych bibliotek.  Oprogramowanie klienckie NIS mo¿na znale¼æ w:





    Adres                 Katalog                          Nazwa Pliku


    ftp.kernel.org        /pub/linux/utils/net/NIS         yp-tools-2.2.tar.gz
    ftp.kernel.org        /pub/linux/utils/net/NIS         ypbind-mt-1.4.tar.gz
    ftp.kernel.org        /pub/linux/utils/net/NIS         ypbind-3.3.tar.gz
    ftp.kernel.org        /pub/linux/utils/net/NIS         ypbind-3.3-glibc5.diff.gz
    ftp.uni-paderborn.de  /linux/local/yp                  yp-clients-2.2.tar.gz
    ftp.icm.edu.pl        /pub/Linux/sunsite/system/network/admin yp-clients-2.2.tar.gz




  [Od t³umacza: Je¶li jeste¶ w Polsce, to u¿yj raczej tego ostatniego
  adresu.]

  Jak ju¿ masz oprogramowanie, postêpuj zgodnie z instrukcjami
  przychodz±cymi wraz z nim. yp-clients 2.2 nadaje siê do u¿ytku z libc4
  i libc5 a¿ do 5.4.20. libc 5.4.21 i glibc 2.x potrzebuj± yp-tools
  1.4.1 lub nowsze. Nowe yp-tools 2.0 bêd± dzia³±æ z ka¿d± bibliotek±
  libc dla Linux-a. Poniewa¿ by³ pewien b³±d w kodzie NIS-a nie
  powiniene¶ u¿ywaæ libc 5.4.21-35. W zamian u¿yj 5.4.36 lub nowszej,
  inaczej wiêkszo¶æ programów YP nie bêdzie dzia³a³a. ypbind 3.3 bêdzie
  dzia³aæ tak¿e ze wszystkimi bibliotekami. Je¶li u¿ywasz gcc 2.8.x lub
  nowszej wersji, egcs lub glibc 2.x, to powiniene¶ na³o¿yæ ³atê
  ypbind-3.3-glibc5.diff na ypbind 3.3. Nie powiniene¶ nigdy u¿ywaæ
  ypbind z yp-clients 2.2. ypbind-mt jest nowym, wielow±tkowym demonem;
  do dzia³ania potrzebuje  j±dra w wersji 2.2 i glibc 2.1 lub nowszej.


  66..33..  DDeemmoonn yyppbbiinndd..


  Zak³adaj±c, ¿e uda³o ci siê skompilowaæ oprogramowanie jeste¶ gotowy
  do zainstalowania go. Odpowiednim miejscem dla demona ypbind bêdzie
  /usr/sbin. Niektórzy mog± ci mówiæ, ¿e nie potrzebujesz ypbind w
  systemie z NYS. Jest to b³êdne, gdy¿ ypwhich i ypcat potrzebuj± go.

  Bêdziesz to oczywi¶cie musia³ zrobiæ jako root. Inne programy
  (ypwhich, ypcat, yppoll, ypmatch) powinny znale¼æ siê w katalogu
  dostêpnym dla wszystkich u¿ytkowników, zwykle /usr/bin.

  Nowsze wersje ypbind posiadaj± plik konfiguracyjny - /etc/yp.conf.
  Mo¿esz tam na sta³e wpisaæ serwer NIS - wiêcej informacji w
  podrêczniku systemowym - man ypbind(8).
  Potrzebujesz tego pliku tak¿e do NYS. Przyk³ad:



         ypserver voyager
         ypserver defiant
         ypserver ds9




  Je¶li system mo¿e rozwin±æ nazwê bez NIS, to móg³by¶ u¿yæ tej nazwy. W
  przeciwnym wypadku musisz u¿yæ adresu IP. W ypbind 3.3 jest b³±d;
  tylko ostatni adres zostanie u¿yty (ds9 w tym przyk³adzie). Wszystkie
  pozosta³e pozycje zostan± zignorowane.  ypbind-mt obs³u¿y to poprawnie
  i u¿yje tego, który odpowiedzia³ pierwszy.

  Dobrym pomys³em bêdzie przetestowanie ypbind przed wprowadzeniem go do
  plików startowych. Aby to zrobiæ postêpuj tak:


  ·  Upewnij siê, ¿e masz ustawion± nazwê domeny YP. Je¶li nie, to wydaj
     polecenie:



                   /bin/domainname domena.nis





  gdzie domena.nis powinno byæ jakim¶ ³añcuchem zwykle _NIE_ zwi±zanym z
  DNS-em twojej maszyny! Powodem tego jest, to ¿e zewnêtrznym w³amywac­
  zom jest wtedy trochê trudniej zdobyæ bazê danych z has³ami z twojego
  serwera NIS. Je¶li nie wiesz jaka jest nazwa domeny NIS w twojej
  sieci, to zapytaj swojego administratora.


  ·  uruchom "/usr/bin/portmap" je¶li nie jest jeszcze uruchomiony.

  ·  stwórz katalog "/var/yp" je¶li go nie ma.

  ·  uruchom "/usr/bin/ypbind"

  ·  u¿yj polecenia "rpcinfo -p localhost", aby sprawdziæ czy ypbind
     zarejestrowa³ swój serwis u portmapper-a.  Co¶ takiego powinno siê
     pojawiæ na ekranie:



              program vers proto   port
               100000    2   tcp    111  portmapper
               100000    2   udp    111  portmapper
               100007    2   udp    637  ypbind
               100007    2   tcp    639  ypbind





  lub



              program vers proto   port
               100000    2   tcp    111  portmapper
               100000    2   udp    111  portmapper
               100007    2   udp    758  ypbind
               100007    1   udp    758  ypbind
               100007    2   tcp    761  ypbind
               100007    1   tcp    761  ypbind





  Zale¿nie od wersji ypbind jakiej u¿ywasz.

  ·  mo¿esz tak¿e uruchomiæ "rpcinfo -u localhost ypbind". Polecenie to
     powinno daæ mniej wiêcej taki wynik:



               program 100007 version 2 ready and waiting


  lub



               program 100007 version 1 ready and waiting
               program 100007 version 2 ready and waiting





  Wynik ten zale¿y od wersji ypbind, któr± zainstalowa³e¶. Wa¿n±
  wiadomo¶ci± jest tutaj tylko "version 2".

  W tym momencie powiniene¶ móc u¿ywaæ programów klienckich NIS takich
  jak ypcat itp... Na przyk³ad "ypcat passwd.byname" poda ci ca³± bazê
  danych NIS z has³ami.

  WA¯NE: Je¶li pomin±³e¶ test, to upewnij siê, ¿e ustawi³e¶ nazwê domeny
  i stworzy³e¶ katalog



           /var/yp




  Ten katalog MUSI istnieæ, aby ypbind poprawnie siê uruchomi³.

  Aby sprawdziæ czy nazwa domeny zosta³a ustawiona poprawnie u¿yj
  programu /bin/ypdomainname z pakietu yp-tools 2.2. U¿ywa on funkcji
  yp_get_default_domain(), która jest bardziej restrykcyjna. na przyk³ad
  nie pozwala na domenê "(none)", która jest domy¶ln± w Linux-ie. i
  stwarza wiele k³opotów.

  Je¶li test siê powiód³ mo¿esz tera¿ zmodyfikowaæ pliki w skryptach
  startowych twojego systemu, tak ¿eby ypbind startowa³ podczas startu
  systemu.  Upewnij siê, ¿e nazwa domeny zostanie ustawiona zanim
  wystartujesz ypbind.

  Có¿, to wszystko. Zresetuj komputer i obserwuj komunikaty podczas
  startu, ¿eby zobaczyæ czy ypbind w³a¶ciwie wystartowa³.


  66..44..  UUssttaawwiiaanniiee kkiilleennttaa NNIISS pprrzzyy uu¿¿yycciiuu TTrraaddyyccyyjjnneeggoo NNIISS--aa..


  Do sprawdzania nazw musisz ustawiæ (albo dodaæ) "nis", do linii
  kolejno¶ci sprawdzania w pliku /etc/host.conf. Przeczytaj stronê
  podrêcznika systemowego "resolv+.8", aby dowiedzieæ siê wiêcej
  szczegó³ów.

  Na maszynach klienckich dodaj nastêpuj±c± liniê w /etc/passwd:



       +::::::




  Mo¿esz tak¿e u¿yæ znaczków +/-, aby w³±czyæ/wy³±czyæ lub zmieniæ
  u¿ytkowników. Je¶li chcesz wy³±czyæ u¿ytkownika guest dodaj -guest do
  swojego pliku /etc/passwd. Chcesz u¿yæ innej pow³oki (np. ksh) dla
  u¿ytkownika "linux"? Nie ma problemu, po prostu dodaj do swojego
  /etc/passwd "+linux::::::/bin/ksh" (bez cudzys³owiów). Pola, których
  nie chcesz zmieniaæ musz± pozostaæ puste. Móg³by¶ tak¿e u¿yæ Netgroups
  do kontroli u¿ytkowników.

  Na przyk³ad, aby pozwoliæ tylko miquels, dth, ed i wszystkim cz³onkom
  grupy sieciowej sysadmin na login, ale ¿eby dane o kontach wszystkich
  innych u¿ytkowników by³y dostêpne u¿yj:



             +miquels:::::::
             +ed:::::::
             +dth:::::::
             +@sysadmins:::::::
             -ftp
             +:*::::::/etc/NoShell




  Zauwa¿, ¿e na Linuksie mo¿esz tak¿e zmieniæ pole z has³em, jak to
  zrobili¶my w tym przyk³adzie. Usunêli¶my tak¿e login "ftp", tak wiêc
  nie jest on ju¿ znany i anonimowe ftp nie bêdzie dzia³aæ.

  Netgroup wygl±da³oby tak:



       sysadmins (-,software,) (-,kukuk,)




  WA¯NE: Cecha netgroup jest zaimplementowana pocz±wszy od libc 4.5.26.
  Je¶li masz wersjê biblioteki wcze¶niejsz± ni¿ 4.5.26, ka¿dy u¿ytkownik
  w bazie danych z has³ami ma dostêp do twojego Linux-a je¶li masz
  uruchomiony "ypbind".


  66..55..  UUssttaawwiiaanniiee kklliieennttaa NNIISS uu¿¿yywwaajj±±cc NNYYSS..


  Wszystko co jest potrzebne, to to, ¿eby plik konfiguracyjny
  (/etc/yp.conf) wskazywa³ na poprawn-y/e serwer(y). Tak¿e plik
  konfiguracyjny Name Service Switch (/etc/nsswitch.conf) musi byæ
  poprawnie ustawiony.

  Powiniene¶ zainstalowaæ ypbind. Nie jest on potrzebny dla libc, ale
  narzêdzia NIS(YP) go potrzebuj±.

  Je¶li chcesz u¿ywaæ cechy w³±czania/wy³±czania u¿ytkownika
  (+/-guest/+@admins), musisz u¿yæ "passwd: compat" i "group: compat" w
  pliku nsswitch.conf. W tym przypadku musisz u¿yæ "shadow: files nis"

  ¬ród³a NYS s± czê¶ci± ¼róde³ libc 5. Kiedy uruchamiasz configure, za
  pierwszym razem odpowiedz "NO" na pytanie "Values correct", potem
  odpowiedz "YES", na "Build a NYS libc from nys".


  66..66..  UUssttaawwiiaanniiee kklliieennttaa NNIISS uu¿¿yywwaajj±±cc gglliibbcc 22..xx


  Glibc u¿ywa "tradycyjnego NIS", tak wiêc musisz uruchomiæ ypbind. Plik
  konfiguracyjny Name Service Switch (/etc/nsswitch.conf) musi byæ
  poprawnie ustawiony. Je¶li  u¿ywasz trybu kompatybilnego z passwd,
  shadow czy group, musisz dodaæ "+" na koñcu tego pliku, i mo¿esz
  u¿ywaæ cechy w³±czania/wy³±czania u¿ytkownika. Konfiguracja jest
  dok³adnie taka sama jak pod Solaris-em 2.x.


  66..77..  PPlliikk nnsssswwiittcchh..ccoonnff


  Plik /etc/nsswitch.conf okre¶la kolejno¶æ w jakiej odbywa siê
  sprawdzanie kiedy pojawi siê ¿±danie pewnej informacji, tak samo jak
  plik /etc/host.conf, który okre¶la kolejno¶æ sprawdzania adresów
  hostów. Na przyk³ad linia:



           hosts: files nis dns




  okre¶la, ¿e funkcje sprawdzania adresów hostów powinny najpierw szukaæ
  w lokalnym pliku /etc/hosts, potem w bazie NIS i na koñcu w DNS-ie
  (/etc/resolv.conf i named), gdzie je¶li nie znaleziono odpowiedzi
  pojawia siê b³±d. Ten plik musi byæ czytelny dla ka¿dego u¿ytkownika.
  Wiêcej informacji znajdziesz na stronie podrêcznika systemowego
  nsswicth.5 lub nsswitch.conf.5.

  Poprawny plik /etc/nsswitch.conf dla NIS:







































  #
  # /etc/nsswitch.conf
  #
  # An example Name Service Switch config file. This file should be
  # sorted with the most-used services at the beginning.
  #
  # Pozycja '[NOTFOUND=return]' oznacza, ¿e poszukiwania powinny
  # zakoñczyæ siê, je¶li poszukiwania w poprzedniej pozycji nic nie
  # da³y. Zauwa¿, ¿e je¶li poszukiwania nie powiod³y siê z
  # jakich¶ innych powodów (jak nie odpowiadaj±cy serwer NIS), to
  # poszukiwania s± kontynuowane z nastêpn± pozycj±.
  #
  # Poprawne pozycje to:
  #
  #       nisplus                 Use NIS+ (NIS version 3)
  #       nis                     Use NIS (NIS version 2), also called YP
  #       dns                     Use DNS (Domain Name Service)
  #       files                   Use the local files
  #       db                      Use the /var/db databases
  #       [NOTFOUND=return]       Stop searching if not found so far
  #

  passwd:     compat
  group:      compat
  # Je¶li masz libc5 musisz u¿yæ shadow: files nis
  shadow:     compat

  passwd_compat: nis
  group_compat: nis
  shadow_compat: nis

  hosts:      nis files dns

  services:   nis [NOTFOUND=return] files
  networks:   nis [NOTFOUND=return] files
  protocols:  nis [NOTFOUND=return] files
  rpc:        nis [NOTFOUND=return] files
  ethers:     nis [NOTFOUND=return] files
  netmasks:   nis [NOTFOUND=return] files
  netgroup:   nis
  bootparams: nis [NOTFOUND=return] files
  publickey:  nis [NOTFOUND=return] files
  automount:  files
  aliases:    nis [NOTFOUND=return] files




  passwd_compat, group_compat i shadow_compat s± obs³ugiwane tylko przez
  glibc 2.x. Je¶li nie ma zasad (rules) shadow w /etc/nsswitch.conf,
  glibc u¿yje zasady (rule) passwd do sprawdzenia. Jest wiêcej modu³ów
  szukania dla glibc jak hesoid. Wiêcej informacji znajdziesz w
  dokumentacji glibc.


  66..88..  SShhaaddooww PPaasssswwoorrddss zz NNIISS ii PPAAMM..


  Shadow passwords przez NIS to zawsze z³y pomys³. Straci³e¶ ochronê,
  któr± daje shadow passwords i tylko niewiele bibliotek C ma obs³ugê
  takiej kombinacji. Dobrym pomys³em na unikniêcie przesy³ania shadow
  paswords przez NIS jest umie¶ciæ tylko u¿ytkowników lokalnego systemu
  do pliku /etc/shadow. Usuñ pozycje dotycz±ce u¿ytkowników NIS z bazy
  shadow i umie¶æ has³o spowrotem w passwd. Tak ¿e mo¿esz u¿ywaæ shadow
  dla logowania siê jako root i normalnych hase³ dla u¿ytkowników NIS.
  Ma to tê zaletê, ¿e bêdzie to dzia³a³o z ka¿dym klientem NIS.
  66..88..11..  LLiinnuuxx


  Jedyn± bibliotek± jaka obs³uguja kombinacjê Shadow passwords prze NIS
  jest libc 2.x. Libc5 nie potrafi tego obs³u¿yæ. Libc5 skompilowana z
  obs³ug± NYS posiada trochê kodu na ten temat. Jednak kod ten jest
  miernej warto¶ci i nie dzia³a poprawnie z wszystkimi pozycjami shadow.


  66..88..22..  SSoollaarriiss


  Solaris nie obs³uguje takiej kombinacji w ogóle.


  66..88..33..  PPAAMM


  PAM nie obs³uguje Shadow Passwords przez NIS,a szczególnie
  pam_pwdb/libpwdb. Jest to powa¿ny problem dla u¿ytkowników RedHat 5.x.
  Je¶li masz glibc i PAM, to musisz zmieniæ pozycje w plikach
  /etc/pam.d/*. Zamieñ wszystkie zasady dotycz±ce pam_pwdb na modu³y
  pam_unix_*. Z powodu b³êdu w module pam_unix_auth.so nie bêdzie on
  zawsze dzia³a³.

  Przyk³adowy plik /etc/pam.d/login mo¿e wygl±daæ tak:



       #%PAM-1.0
       auth       required    /lib/security/pam_securetty.so
       auth       required    /lib/security/pam_unix_auth.so
       auth       required    /lib/security/pam_nologin.so
       account    required    /lib/security/pam_unix_acct.so
       password   required    /lib/security/pam_unix_passwd.so
       session    required    /lib/security/pam_unix_session.so





  Do autoryzacji potrzbujesz modu³u pam_unix_auth.so, do kont
  pam_unix_acct.so, do hase³ pam_unix_passwd.so a do sesji
  pam_unix_session.so.


  77..  CCzzeeggoo ppoottrrzzeebbuujjeesszz ddoo uussttaawwiieenniiaa NNIISS++??



  77..11..  OOpprrooggrraammoowwaanniiee..


  Klient dla NIS+ na Linuxa zosta³ napisany dla biblioteki GNU C 2.
  Jest tak¿e wersja dla libc5, poniewa¿ wiêkszo¶æ komercyjnych aplikacji
  jest z ni± skompilowane i nie mo¿na ich przekompilowaæ z bibliotek±
  glibc. Z bibliotek± t± i NIS+ s± problemy: Nie móg³by¶ do³±czyæ
  statycznie tej biblioteki do programów i programy skompilowane z t±
  bibliotek± nie bêd± dzia³a³y z inn±.

  Musisz ¶ci±gn±æ i skompilowaæ najnowsz± bibliotekê GNU C 2.1 dla
  platformy Intela albo biblioteki GNU C 2.1.1 dla platform 64-bitowych.
  Potrzebujesz tak¿e systemu opartego na glibc jak RedHat 5.x, Debian
  2.x czy SuSE Linux 6.x.


  W ka¿dej dystrybucji musisz przekompilowaæ kompilator gcc/g++,
  libstdc++ i ncurses. W RedHat musisz wiele zmieniæ w konfiguracji PAM.
  W SuSE 6.0 musisz przekompilowaæ pakiet Shadow Passwords.

  Oprogramowanie klienckie NIS+ mo¿na pobraæ z:



         Adres                  Katalog                    Nazwa Pliku

         ftp.funet.fi     /pub/gnu/funet                libc-*, glibc-crypt-*,
                                                        glibc-linuxthreads-*
         ftp.kernel.org   /pub/linux/utils/net/NIS+     nis-utils-19990223.tar.gz
         ftp.kernel.org   /pub/linux/utils/net/NIS+     pam_keylogin-1.2.tar.gz




  Dystrybucje oparte na glibc mo¿na ¶ci±gn±æ z:



         Adres                  Katalog

         ftp.redhat.com         /pub/redaht/redhat-5.2
         ftp.debian.org         /pub/debian/dists/stable
         ftp.icm.edu.pl         /pub/Linux/redhat
         ftp.icm.edu.pl         /pub/Linux/debian





  [Od t³umacza: Je¶li jeste¶ w Polsce, to u¿yj dwóch ostatnich adresów.]

  Aby skompilowaæ bibliotekê GNU C postêpuj zgodnie z instrukcjami
  do³±czonymi do niej. Tutaj mo¿esz znale¼æ za³atan± libc5, opart± o
  ¼ród³a NYS i glibc zamiast standardowej libc5:



         Adres                  Katalog                    Nazwa Pliku
         ftp.kernel.org     /pub/linux/utils/net/NIS+  libc-5.4.44-nsl-0.4.10.tar.gz




  Powiniene¶ tak¿e zajrzeæ do
  http://www.suse.de/~kukuk/linux/nisplus.html
  <http://www.suse.de/~kukuk/linux/nisplus.html>, aby zdobyæ wiêcej
  informacji i najnowsze ¼ród³a.


  77..22..  KKoonnffiigguurraaccjjaa kklliieennttaa NNIISS++..


  WA¯NE: Aby ustawiæ klienta NIS+, przeczytaj dokumenctajê do NIS+ na
  Solaris-a, aby siê dowiedzieæ co zrobiæ po stronie serwera !  Dokument
  ten opisuje tylko co zrobiæ po stronie klienta !

  Po zainstalowaniu nowej biblioteki libc i nis-tools stwórz listy
  uwierzytelniaj±ce dla nowego klienta na serwerze NIS+. Upewnij siê, ¿e
  dzia³a portmap. Potem sprawd¼ czy na twoim Linux-ie jest ten sam czas
  co na serwerze. W bezpiecznym RPC masz tylko 3 minuty, w ci±gu których
  listy uwierzytelniaj±ce s± aktualne. Dobrym pomys³em jest uruchomienie
  na wszystkich hostach xntpd. Potem uruchom
       domainname domena.nisplus
       nisinit -c -H <serwer NIS+>




  aby zainicjalizowaæ zimny start file. Przeczytaj stronê podrêcznika
  systemowego o nisinit i znajd¼ jego opcje. Upewnij siê, ¿e nazwa
  domeny bêdzie zawsze ustawiona po resecie. Je¶li nie wiesz jaka jest
  nazwa domeny w twojej sieci, zapytaj administratora.

  Teraz powiniene¶ zmieniæ swój plik konfiguracyjny /etc/nsswitch.conf.
  Upewnij siê, ¿e jedynym serwisem po publickey jest nisplus
  ("publickey: nisplus") i nic wiêcej !

  Potem uruchom keyserv i upewnij siê, ¿e zawsze bêdzie startowany jako
  nastêpy demon po portmaperze podczas startu. Uruchom:



       keylogin -r




  aby zapisaæ tajny klucz (secretkey) root-a na twoim systemie. (Mam
  nadziejê, ¿e doda³e¶ klucz publiczny dla nowego hosta na serwerze
  NIS+?).

  "niscat passwd.org_dir" powinno pokazaæ ci teraz wszystkie pozycje w
  bazie danych z has³ami.


  77..33..  NNIISS++,, kkeeyyllooggiinn,, llooggiinn ii PPAAMM..


  Kiedy u¿ytkownik siê loguje musi ustawiæ swój tajny klucz dla keyserv-
  a. Robi siê to przez wywo³anie "keylogin".  Login z pakietu shadow
  zrobi to za u¿ytkownika je¶li zosta³ skompilowany z bibliotek± glibc
  2.1. W przypadku login-u PAM musisz zainstalowaæ
  pam_keylogin-1.2.tar.gz i zmodyfikowaæ plik /etc/pam.d/login, tak aby
  u¿ywa³ pam_unix_auth, a nie pwdb, które nie obs³uguje NIS+. Na
  przyk³ad:



       #%PAM-1.0
       auth       required     /lib/security/pam_securetty.so
       auth       required     /lib/security/pam_keylogin.so
       auth       required     /lib/security/pam_unix_auth.so
       auth       required     /lib/security/pam_nologin.so
       account    required     /lib/security/pam_unix_acct.so
       password   required     /lib/security/pam_unix_passwd.so
       session    required     /lib/security/pam_unix_session.so





  77..44..  PPlliikk nnsssswwiittcchh..ccoonnff..


  Plik /etc/nsswitch.conf okre¶la kolejno¶æ w jakiej odbywa siê
  sprawdzanie kiedy pojawi siê ¿±danie pewnej informacji, tak samo jak
  plik /etc/host.conf, który okre¶la kolejno¶æ sprawdzania adresów
  hostów. Na przyk³ad linia:
           hosts: files nis dns




  okre¶la, ¿e funkcje sprawdzania adresów hostów powinny najpierw szukaæ
  w lokalnym pliku /etc/hosts, potem w bazie NIS i na koñcu w DNS-ie
  (/etc/resolv.conf i named), gdzie je¶li nie znaleziono odpowiedzi, to
  zwracany jest b³±d.

  Poprawny plik /etc/nsswitch.conf dla NIS:



       #
       # /etc/nsswitch.conf
       #
       # An example Name Service Switch config file. This file should be
       # sorted with the most-used services at the beginning.
       #
       # Pozycja '[NOTFOUND=return]' oznacza, ¿e poszukiwania powinny
       # zakoñczyæ siê, je¶li poszukiwania w poprzedniej pozcyji nic nie
       # da³y. Zauwa¿, ¿e je¶li poszukiwania nie powiod³y siê z
       # jakich¶ innych powodów (jak nie odpowiadaj±cy serwer NIS), to
       # poszukiwania s± kontynuowane z nastêpn± pozycj±.
       #
       # Poprawne pozycje to:
       #
       #       nisplus                 Use NIS+ (NIS version 3)
       #       nis                     Use NIS (NIS version 2), also called YP
       #       dns                     Use DNS (Domain Name Service)
       #       files                   Use the local files
       #       db                      Use the /var/db databases
       #       [NOTFOUND=return]       Stop searching if not found so far
       #

       passwd:     compat
       # dla libc5: passwd: files nisplus
       group:      compat
       # dla libc5: group: files nisplus
       shadow:     compat
       # dla libc5: shadow: files nisplus

       passwd_compat: nisplus
       group_compat: nisplus
       shadow_compat: nisplus

       hosts:      nisplus files dns

       services:   nisplus [NOTFOUND=return] files
       networks:   nisplus [NOTFOUND=return] files
       protocols:  nisplus [NOTFOUND=return] files
       rpc:        nisplus [NOTFOUND=return] files
       ethers:     nisplus [NOTFOUND=return] files
       netmasks:   nisplus [NOTFOUND=return] files
       netgroup:   nisplus
       bootparams: nisplus [NOTFOUND=return] files
       publickey:  nisplus [NOTFOUND=return] files
       automount:  files
       aliases:    nisplus [NOTFOUND=return] files






  88..  KKoonnffiigguurraaccjjaa sseerrwweerraa NNIISS..



  88..11..  PPrrooggrraamm yyppsseerrvv..


  Dokument ten opisuje tylko jak skonfigurowaæ serwer NIS oparty na
  "ypserv".

  Oprogramowanie serwera NIS mo¿na znale¼æ na:



         Adres                  Katatlog                      Nazwa pliku

         ftp.kernel.org     /pub/linux/utils/net/NIS     ypserv-1.3.6.tar.gz




  Mo¿esz tak¿e zajrzeæ do http://www.suse.de/~kukuk/linux/nis.html
  <http://www.suse.de/~kukuk/linux/nis.html> po wiêcej informacji i
  najnowsze ¼ród³a.

  Ustawianie serwera jest takie samo dla tradycyjnego NIS i NYS.

  Skompiluj oprogramowanie, aby wygenerowaæ programy "ypserv" i
  "makedbm". Mo¿esz skonfigurowaæ program ypserv, aby u¿ywa³ pliku
  securenets albo tcp_wrappers.  Tcp_wrappers sa o wiele bardziej
  elastyczne, ale wielu ludzi ma z tym powa¿ne k³opoty. A niektóre pliki
  konfiguracyjne mog± powodowaæ przeciek w pamiêci (?? memory leak: mo¿e
  autor mia³ na my¶li brak pamiêci ?? - lack of memory). Je¶li masz
  problemy z ypserv skompilowanym dla tcp_wrappers, to przekompiluj go
  do u¿ywania pliku securenets. ypserv --version, poka¿e jak± masz
  wersjê.

  Je¶li uruchamiasz swój serwer jako g³ówny, okre¶l jakie pliki maj± byæ
  dostêpne przez NIS i wtedy dodaj lub usuñ odpowiednie pozycje w
  /var/yp/Makefile. Zawsze powiniene¶ zagl±daæ do plików Makefile i
  zapoznaæ siê z opcjami na pocz±tku pliku.

  Pomiêdzy ypserv 1.1 a 1.2 by³a jedna du¿a zmiana. Od wersji 1.2,
  ypserv "keszuje" uchwyty plików (file handles). Oznacza to, ¿e zawsze
  kiedy stworzysz now± mapê musisz wywo³aæ makedbm z opcj± -c. Upewnij
  siê, ¿e u¿ywasz nowego /var/yp/Makefile z ypserv 1.2 lub nowszego,
  albo dodaj opcjê -c do makedbm w pliku Makefile. Je¶li tego nie
  zrobisz, ypserv bêdzie wci±¿ u¿ywa³ starych map zamiast
  uaktualnionych.

  Teraz zmodyfikuj /var/yp/securenets i /etc/ypserv.conf.
  Wiêcej informacji na stronach podrêcznika man o ypserv(8) i
  ypserv.conf(5).

  Upewnij siê czy portmapper (portmap(8)) jest uruchomiony i uruchom
  serwer ypserv. Polecenie:



           % rpcinfo -u localhost ypserv




  powinno pokazaæ co¶ takiego:

           program 100004 version 1 ready and waiting
           program 100004 version 2 ready and waiting




  Linii z "version 1" mo¿e nie byæ; zale¿nie od wersji ypserv i
  konfiguracji, której u¿ywasz. Tylko w klientach SunOS 4.x jest to
  wymagane.

  Teraz wygeneruj bazê danych NIS (YP). Na serwerze g³ównym uruchom:



           % /usr/lib/yp/ypinit -m




  na slave upewnij siê, ¿e dzia³a ypwhich -m. Potem uruchom



           % /usr/lib/yp/ypinit -s masterhost




  To wszystko, twój serwer ju¿ dzia³a.

  Je¶li masz wiêksze problemy, mo¿esz wystartowaæ ypserv i ypbind i
  trybie ¶ledzenia (debug) w innym oknie. Komunikaty pojawiaj±ce siê w
  tym trybie powinny ci powiedzieæ co jest nie tak.

  Je¶li musisz uaktualniæ mapê, to uruchom make w katalogu /var/yp na
  master serwerze NIS. Uaktualni to mapê je¶li plik ¼ród³owy jest nowszy
  i prze¶le pliki do serwerów slave. Nie u¿ywaj ypinit do uaktualniania
  map.

  Mo¿esz zmodyfikowaæ crontab root-a *na serwerze slave* i dodaæ
  poni¿sze linie:



             20 *    * * *    /usr/lib/yp/ypxfr_1perhour
             40 6    * * *    /usr/lib/yp/ypxfr_1perday
             55 6,18 * * *    /usr/lib/yp/ypxfr_2perday




  To upewni nas, ¿e mapy NIS s± aktualne, nawet je¶li jakie¶
  uaktualnienie zosta³o przeoczone z powodu np. wy³±czenia serwera slave
  podczas modyfikowania bazy g³ównej.

  Serwer slave mo¿esz dodaæ kiedykolwiek pó¼niej. Najpierw upewnij siê,
  ¿e nowy serwer slave ma pozwolenie na kontaktowanie siê z masterem
  NIS. Potem uruchom



           % /usr/lib/yp/ypinit -s masterhost




  na nowym slavie. Na serwerze master dodaj nazwê nowego serwera slave
  do pliku /var/yp/ypservers  uruchom make w </var/yp, aby uaktualniæ
  mapy.

  Je¶li chcesz ograniczyæ dostêp do twojego serwera NIS bêdziesz musia³
  ustawiæ serwer NIS tak¿e jako klienta przez uruchomienie ypbind i
  dodanie pozycji + do /etc/passwd _w po³owie_ (halfway) pliku z
  has³ami. Funkcje biblioteczne zignoruj± wszystkie normalne pozycje po
  pierwszej pozycji NIS i i resztê informacji zdobêd± przez NIS.W ten
  sposób obs³ugiwany jest dostêp NIS.  Przyk³ad:



            root:x:0:0:root:/root:/bin/bash
            daemon:*:1:1:daemon:/usr/sbin:
            bin:*:2:2:bin:/bin:
            sys:*:3:3:sys:/dev:
            sync:*:4:100:sync:/bin:/bin/sync
            games:*:5:100:games:/usr/games:
            man:*:6:100:man:/var/catman:
            lp:*:7:7:lp:/var/spool/lpd:
            mail:*:8:8:mail:/var/spool/mail:
            news:*:9:9:news:/var/spool/news:
            uucp:*:10:50:uucp:/var/spool/uucp:
            nobody:*:65534:65534:noone at all,,,,:/dev/null:
            +miquels::::::
            +:*:::::/etc/NoShell
       [ PO tej linii normalni u¿ytkownicy ! ]
            tester:*:299:10:Just a test account:/tmp:
            miquels:1234567890123:101:10:Miquel van Smoorenburg:/home/miquels:/bin/zsh




  U¿ytkownik tester bêdzie istnia³, ale bêdzie mia³ ustawion± pow³okê na
  /etc/NoShell. miquels bêdzie mia³ normalny dostêp.

  Alternatywnie móg³by¶ zmodyfikowaæ plik /var/yp/Makefile i ustawiæ
  NIS, tak ¿eby u¿ywa³ innego ¼ród³owego pliku z has³ami. W du¿ych
  systemach NIS-owe pliki z has³ami i grupami znajduj± siê zwykle w
  /etc/yp/. Je¶li tak zrobisz, to zwyk³e narzêdzia jak passwd, chfn,
  adduser nie bêd± ju¿ dzia³aæ i bêdziesz potrzebowa³ specjalnych
  w³asnorêcznie zrobionych wersji.

  Chocia¿ yppsswd, ypchsh i ypchfn bêd± oczywi¶cie dzia³aæ.


  88..22..  PPrrooggrraamm sseerrwweerraa yyppss..


  Aby ustawiæ serwer NIS "yps" przeczytaj poprzedni paragraf. Ustawianie
  serwera "yps" jest podobne, _ale_ nie dok³adnie takie samo, wiêc
  uwa¿aj jak bêdziesz stosowa³ instrukcje dla "ypserv-a" do "yps" !
  "yps" nie jest wspierany przez ¿adnego autora i zawiera parê dziur w
  bezpieczeñstwie. Na prawdê nie powiniene¶ go u¿ywaæ !

  Oprogramowane do serwera NIS "yps" mo¿na znale¼æ na:



         Adres               Katalog                           Nazwa pliku

         ftp.lysator.liu.se    /pub/NYS/servers            yps-0.21.tar.gz
         ftp.kernel.org        /pub/linux/utils/net/NIS    yps-0.21.tar.gz


  88..33..  PPrrooggrraamm rrppcc..yyppxxffrrdd


  Program rpc.ypxfrd s³u¿y do przyspieszania przesy³u bardzo du¿ych map
  z serwera master na slave. Je¶li serwer NIS slave otrzyma informacje,
  ¿e jest nowa mapa wystartuje program ypxfr, aby j± pobraæ. ypxfr
  przeczyta zawarto¶æ mapy z serwera master przy pomocy funkcji
  yp_all(). Proces ten mo¿e zaj±æ do kilku minut je¶li s± bardzo du¿e
  mapy, które musz± byæ zapisane przez biblioteki bazy danych.

  Program rpc.ypxfrd przyspiesza proces pobrania przez pozwolenie
  serwerowi slave na skopiowanie mapy serwera master zamiast tworzenia
  jej od nowa. rpc.ypxfrd u¿ywa protoko³u do przesy³u plików na
  podstawie RPC, tak ¿e nie ma potrzby na tworzenie nowej mapy.

  rpc.ypxfrd mo¿e byæ uruchomiony przez inetd. Ale poniewa¿ startuje
  bardzo wolno, powinien byc startowany przez ypserv. Musisz wystartowaæ
  rpc.ypxfrd tyko na serwerze NIS master.


  88..44..  PPrrooggrraamm rrppcc..yyppppaasssswwdddd


  Kiedy u¿ytkownicy zmieniaj± swoje has³a, baza danych NIS z has³ami i
  przypuszczalnie inne bazy danych NIS, które zale¿± od bazy danych z
  has³ami, powinny byæ uaktualnione. Program "rpc.yppasswdd" jest
  serwerem, który odpowiedzialny jest za zmiany hase³ i uaktualnianie
  baz danych NIS. rpc.yppasswdd jest zintegrowany z ypserv. Nie
  potrzebujesz starszych oddzielnych yppasswd-0.9.tar.gz czy
  yppasswd-0.10.tar.gz i nie powiniene¶ ich ju¿ u¿ywaæ. rpc.yppasswdd z
  ypserv 1.3.2 ma pe³n± obs³ugê shadow.  yppasswd jest teraz czê¶ci± yp-
  tool-.2.2.tar.gz.

  Musisz uruchomiæ rpc.yppaswdd tylko na serwerze NIS master.  Domy¶lnie
  u¿ytkownicy nie maj± prawa zmieniaæ swoich "pe³nych nazw" czy pow³oki.
  Mo¿esz na to pozwoliæ opcj± -e chfn czy -e chsh.

  Je¶li twoje pliki passwd i shadow nie s± umieszczone w innym katalogu
  ni¿ /etc, musisz dodaæ opcjê -D. Na przyk³ad je¶li umie¶ci³e¶
  wszystkie pliki ¼ród³owe w /etc/yp i chcesz udostêpniæ swoim
  u¿ytkownikom mo¿liwo¶æ zmiany pow³oki, musisz uruchomiæ rpc.yppasswdd
  z nastêpuj±cymi parametrami:



          rpc.yppasswdd -D /etc/yp -e chsh




  lub



          rpc.yppasswdd -s /etc/yp/shadow -p /etc/yp/passwd -e chsh




  Nic wiêcej do zrobienia ju¿ nie zosta³o. Musisz siê tylko upewniæ, ¿e
  rpc.yppasswdd u¿ywa tych samych plików co /var/yp/Makefile. B³êdy bêd±
  logowane za pomoc± syslog.




  99..  WWeerryyffiikkaaccjjaa iinnssttaallaaccjjii NNIISS//NNYYSS..


  Je¶li wszystko jest w porz±dku (jak powinno byæ), powiniene¶ móc
  zwersyfikowaæ instalacjê kilkoma prostymi poleceniami. Zak³adaj±c na
  przyk³ad, ¿e twój plik z hs³ami jest dostarczany prze NIS, polecenie



           % ypcat passwd




  powinno pokazaæ ci zawarto¶æ pliku z has³ami z NIS. Polecenie



           % ypmatch userid passwd




  (gdzie userid jest login-em jakiego¶ u¿ytkownika) powinno pokazaæ ci
  pozycjê w pliku z has³ami dotycz±c± tego u¿ytkownika. Programy "ypcat"
  i "ypmatch" powinny byæ zawarte w dystrybucji NIS lub NYS.

  Je¶li u¿ytkownik nie mo¿e sie zalogowaæ, uruchom nastêpuj±cy program
  po stronie klienta:



       #include <stdio.h>
       #include <pwd.h>
       #include <sys/types.h>

       int
       main(int argc, char *argv[])
       {
         struct passwd *pwd;

         if(argc != 2)
           {
             fprintf(stderr,"Stosowanie: getwpnam nazwa-uzytkownika\n");
             exit(1);
           }

         pwd=getpwnam(argv[1]);

         if(pwd != NULL)
           {
             printf("name.....: [%s]\n",pwd->pw_name);
             printf("password.: [%s]\n",pwd->pw_passwd);
             printf("user id..: [%d]\n", pwd->pw_uid);
             printf("group id.: [%d]\n",pwd->pw_gid);
             printf("gecos....: [%s]\n",pwd->pw_gecos);
             printf("directory: [%s]\n",pwd->pw_dir);
             printf("shell....: [%s]\n",pwd->pw_shell);
           }
         else
           fprintf(stderr,"Nie znaleziono uzytkownika \"%s\"!\n",argv[1]);

         exit(0);
       }


  Uruchomienie tego programu z u¿ytkownikiem jako parametr, spowoduje
  wy¶wietlenie wszystkich informacji jakie uzyska funkcja getpwnam dla
  tego u¿ytkownika. Powinno ci to pokazaæ, która pozycja jest
  niepoprawna. Najpopularniejszym problemem jest zapisanie "*" w polu
  has³a.

  Razem z bibliotek± GNU C 2.1 (glibc 2.1) dostarczane jest narzêdzie
  getent. U¿yj tego programu zamiast powy¿szego na systemie z t±
  bibliotek±. Mo¿esz spróbowaæ:



          getent passwd




  lub



          getent passwd login






  1100..  PPooppuullaarrnnee pprroobblleemmyy ii rroozzwwii±±zzyywwaanniiee iicchh..



  1. Biblioteki do 4.5.19 s± niepoprawne. NIS nie bêdzie z nimi
     wspó³pracowa³.

  2. Je¶li uaktualnisz biblioteki z 4.5.19 na 4.5.24, to polecenie su
     nie dzia³a. Potrzebujesz tego polecenia ze Slackware 1.2.0.
     Przypadkowo tam mo¿esz znale¼æ uaktulanione biblioteki.

  3. Kiedy serwer NIS siê wy³±czy i potem uruchomi ponownie ypbind
     zaczyna wypisywaæ co¶ takiego:


              yp_match: clnt_call:
                          RPC: Unable to receive; errno = Connection refused



  i u¿ytkownicy zarejestrowani w bazie danych NIS nie mog± siê zalo­
  gowaæ. Spróbuj zalogowaæ siê jako root i zakoñcz ypbind i uruchom go
  ponownie. Uaktualnienie do ypbind 3.3 lub nowszego tak¿e powinno
  pomóc.

  4. Po uaktualnieniu libc do wersji nowszej ni¿ 5.4.20, narzêdzia YP
     nie bêd± dzia³aæ. Potrzebujesz w takim przypadku yp-tools w wersji
     1.2 lub nowszej dla libc >= 5.4.21 i glibc 2.x.  Dla wcze¶niejszych
     wersji libc potrzbujesz yp-clients 2.2. yp-tools 2.x powinny
     dzia³aæ ze wszystkimi bibliotekami.

  5. W libc 5.4.21-35 yp_maplist jest popsute, potrzbujesz 5.4.36 lub
     nowszej wersji, albo niektóre programy z YP jak np. ypwich bêd±
     przerywaæ dzia³anie z b³êdem _S_e_g_m_e_n_t_a_t_i_o_n _f_a_u_l_t.

  6. libc 5 z tradycyjnym NIS nie obs³uguje shadow passwords przez NSI.
     Potrzebujesz libc5 + NYS lub glibc 2.x

  7. ypcat shadow nie pokazuje mapy shadow. Jest to poprawne - nazwa
     mapy shadow to _s_h_a_d_o_w_._b_y_n_a_m_e a nie _s_h_a_d_o_w.

  8. Solaris nie zawsze u¿ywa uprzywilejowanych portów. Wiêc staraj siê
     nie robiæ nic z has³ami je¶li masz klienta na Solarisie.


  1111..  CCzzêêssttoo zzaaddaawwaannee ppyyttaanniiaa..


  Na wiêkszo¶æ twoich pytañ powiniene¶ ju¿ uzyskaæ odpowied¼. Je¶li
  wci±¿ masz jakie¶ pytania bez odpowiedzi to mo¿esz wys³aæ list na
  grupê



           comp.os.linux.networking




  albo na któr±¶ z polskich grup



           pl.comp.security
           lub
           pl.comp.os.linux
           lub
           pl.comp.os.linux.siec(i)




  Albo skontaktuj siê z którym¶ z autorów tego HOWTO.