• Początki z NIS w CentOS 6

    dodany przez Przemysław Sikora

    NIS (Network Information Service) to protokół pozwalający na scentralizowane zarządzania użytkownikami, aliasami, nazwami hostów oraz adresami e-mail poprzez sieć. Jego konfiguracja nie jest zbyt trudna. Narzędzie jest niezwykle przydatne, jeśli mamy kilka serwerów i chcemy się na nie logować tą samą nazwą użytkownika i hasłem, a nie chcemy zaprzęgać do tego np. LDAP-a, o którego zresztą niedługo będziemy omawiać. Zacznijmy od instalacji potrzebnych pakietów na serwerze NIS:

    yum install ypserv ypbind rpcbind

    Teraz ustawiamy domenę NIS w pliku “/etc/sysconfig/network” dodając następującą linię:

    NISDOMAIN=dowolna_nazwa

    Następnie edytujemy plik “/etc/yp.conf” i ustawiamy serwer NIS (na serwerze wpisujemy następujący tekst):

    ypserver 127.0.0.1

    Następnie odpalamy usługi rpcbind, yppasswdd (do zmiany haseł) oraz ypserv (właściwy serwer NIS):

    /etc/init.d/rpcbind start
    /etc/init.d/yppasswdd start
    /etc/init.d/ypserv start

    Nadszedł czas na wygenerowanie bazy loginów, haseł i aliasów:

    /usr/lib/yp/ypinit -m

    W wyniku czego otrzymujemy:
    [root@cloud ~]# /usr/lib/yp/ypinit -m

    At this point, we have to construct a list of the hosts which will run NIS
    servers. cloud.p-project.pl is in the list of NIS server hosts. Please continue to add
    the names for the other hosts, one per line. When you are done with the
    list, type a .
    next host to add: nasz-nis-server.pl
    next host to add:
    The current list of NIS servers looks like this:

    nasz-nis-server.pl

    Is this correct? [y/n: y] y
    We need a few minutes to build the databases…
    Building /var/yp/centos/ypservers…
    Running /var/yp/Makefile…
    gmake[1]: Wejście do katalogu `/var/yp/centos’
    Updating passwd.byname…
    Updating passwd.byuid…
    Updating group.byname…
    Updating group.bygid…
    Updating hosts.byname…
    Updating hosts.byaddr…
    Updating rpc.byname…
    Updating rpc.bynumber…
    Updating services.byname…
    Updating services.byservicename…
    Updating netid.byname…
    Updating protocols.bynumber…
    Updating protocols.byname…
    Updating mail.aliases…
    gmake[1]: Opuszczenie katalogu `/var/yp/centos’

    nasz-nis-server.pl has been set up as a NIS master server.

    Now you can run ypinit -s nasz-nis-server.pl on all slave server.

    W miejscu gdzie pyta o “next host to add” nic nie wpisujemy poza nazwą serwera, która sama powinna się pojawić. Naciskamy więc ctrl+d.
    Następnie uruchamiamy ypxfrd oraz ypbind:

    /etc/init.d/ypxfrd start
    /etc/init.d/ypbind start

    Sprawdzamy, czy wszystko wstało:

    ps ax | grep yp

    Powinniśmy otrzymać coś takiego:
    [root@cloud ~]# ps ax | grep yp
    1192 ? S 0:00 /usr/sbin/rpc.ypxfrd
    3207 ? S 0:00 /usr/sbin/rpc.yppasswdd
    3219 ? S 0:00 /usr/sbin/ypserv
    5178 ? Sl 0:00 /usr/sbin/ypbind
    5197 pts/0 S+ 0:00 grep yp

    Kolejnym testem jest wykonanie polecenia “ypcat passwd”. Powinniśmy otrzymać część pliku “/etc/passwd” z danymi użytkowników (oprócz kont systemowych). Jeśli tak się stało, to znaczy, że serwer mamy skonfigurowany. Teraz czas na klienta. Instalujemy niezbędne pakiety

    yum install ypbind rpcbind

    Teraz ustawiamy domenę NIS w pliku “/etc/sysconfig/network” dodając następującą linię:

    NISDOMAIN=dowolna_nazwa_ale_taka_jak_na_serwerze

    Następnie edytujemy plik “/etc/yp.conf” i ustawiamy serwer NIS (na serwerze wpisujemy następujący tekst):

    domain dowolna_nazwa_ale_taka_jak_na_serwerze server adres_ip_serwera

    Edytujemy plik “/etc/nsswitch.conf” i dopisujemy “nis”, po czym powinno wyglądać to następująco:
    passwd: files nis
    shadow: files nis
    group: files nis

    Następnie odpalamy usługi rpcbind i ypbind:

    service rpcbind start
    service ypbind start

    Najprostszym sposobem sprawdzenia poprawności działania usług jest wykonanie polecenia “ypcat passwd”. Powinniśmy otrzymać część pliku “/etc/passwd” z danymi użytkowników (oprócz kont systemowych). Jeśli tak się stało, to znaczy, że klient został poprawnie skonfigurowany i podłączony do serwera NIS. Znanym problemem jest brak uruchomionego w systemie procesu “dbus-daemon”. Często nawet nie mamy go zainstalowanego w systemie. Objawem jest poniższy wpis w logach systemowych (/var/log/messages):
    Connection to D-BUS system message bus failed: Failed to connect to socket /var/run/dbus/system_bus_socket: Nie ma takiego pliku ani katalogu.
    Aby to naprawić wykonujemy poniższe czynności:

    yum install dbus
    dbus-daemon –system

    Bazę loginów, haseł i aliasów należy aktualizować na serwerze przy pomocy polecenia “make -C /var/yp/”. Najlepiej dopisać je do crona, aby wykonywało się automatycznie.

    UWAGA !!!
    W systemie CentOS 6 pakiet/usługa portmap, została zastąpiona przez rpcbind, który obsługuje ipv6 oraz nfs4.

5 komentarzy do “Początki z NIS w CentOS 6”

  1. michas100 pisze:

    Yellow Pages 😉 fajny artykuł usługa fajna i pomocna. Pozdrawiam.

  2. paul23 pisze:

    Świetny artykuł! Usługa może przydać się w firmie, i bardzo fajnie i przystępnie wytłumaczone ode mnie (+).

  3. lovelas pisze:

    Dzięki za artykuł.
    Z NIS-em jest tak że (prawie) nikt tego nie zna, nikt nie rozumie i nikt nie stosuje 🙂
    Co cię skłoniło do napisania o tym i to w 6-ce?

    Chętnie zaczekam na LDAP-a.

  4. centos pisze:

    Dziękuję za pozytywne odebranie mojego artykułu 🙂 O NIS-ie wcześniej nie pisałem, a uważam go za godną uwagi usługę, która jest wspaniałym zamiennikiem LDAP-a. Jest on bowiem w niektórych zastosowaniach po prostu zbyt rozbudowany. Przynajmniej ja tak sądzę. Może macie inne zdanie na ten temat. Co do wyboru wersji 6, to jest ona najnowsza i w sumie tylko dlatego na nią padło 😛 Mechanizm konfigurowania NIS-a jest taki jak w 5, tylko jeden pakiet jest inny niż w nowszej edycji.

  5. hello_world pisze:

    Owszem NIS jest może i skrojony na miarę ale problem zaczyna się gdy np. chcemy wewnętrzny intrane t podpiąć pod nis i tego nis już nie obsługuje. Większość developerów dodaje wsparcie dla baz sqlowych, AD, ldap, i jest jeszcze coś novelowego ale nie pamiętam już nazwy.

Dodaj komentarz

Warto odwiedzić
Valid XHTML 1.0 Transitional centos.com.pl- mapa strony