Portál AbcLinuxu, 7. května 2025 07:28
Nastavení NIS na serveru a stanici, instalace LTSP.
Na Red Hatu je potřeba mít nainstalovaný balíček "ypserv" a
"nis-utils". Nastavení je v souboru /etc/ypserv.conf
, ale já
osobně jsem v něm nemusel změnit ani řádek. Dále je potřeba nastavit
NIS-doménu, ta je v Red Hatu v /etc/sysconfig/network
;
přidejte řádek NISDOMAIN:
cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=server.domena.tld
GATEWAY=192.168.1.1
NISDOMAIN=domena.tld
Pak ještě do /var/yp/ypservers
dejte celé hostname NIS
serveru:
cat /var/yp/ypservers
server.domena.tld
Nakonec ve /var/yp/Makefile
nastavte proměnnou ALIASES
podle toho, jaký používáte poštovní server, a kde máte soubor
aliases
. V
mém případě /etc/postfix/aliases
. Je také možné použít
symlink /etc/alises
.
Nyní můžeme provést sestavení NIS databáze:
/usr/lib/yp/ypinit -m
Zkusíme ještě updatovat NIS databázi. Tento update je nutný pro
promítnutí změn z lokálních souborů (/etc/passwd
, ...) do NIS databáze.
cd /var/yp/
make
gmake[1]: Entering directory `/var/yp/domena.tld'
Updating passwd.byname...
Updating passwd.byuid...
Updating group.byname...
Updating group.bygid...
Updating netid.byname...
gmake[1]: Leaving directory `/var/yp/domena.tld'
Pokud vše dobře dopadne, nastavte, aby se služby ypserv a yppasswd spouštěly při startu. Yppasswd slouží ke změnám hesla ze stanice. Změna hesla ze stanice se vlastně provádí síťově a právě démon yppasswd to obhospodařuje na serveru.
Na stanici je potřeba nainstalovat balíček "yptools". Nastavení je v několika souborech:
cat /etc/defaultdomain
domena.tld
a
cat /etc/yp.conf
domain domena.tld server 192.168.1.2
V souvislosti s /etc/yp.conf
jsem objevil chybu. Nevím,
kdo nebo co, ale pokaždé při bootu bylo v tomto souboru:
domain domena.tld broadcast
Název domény byl správně, ale namísto
server 192.168.1.2
tam bylo broadcast
.
Zřejmě by to fungovalo v případě, že by NIS server byl na lokálním
subnetu. Ale to není můj případ, a tak jsem tuto chybu obešel následujícím
kódem, která se spouští v /etc/rc.d/rc.inet2
ještě před
připojováním NIS serveru:
echo "Soucasny stav yp.conf:"
cat /etc/yp.conf
echo "Zapisuji spravny yp.conf."
echo "domain domena.tld server 192.168.1.2" > /etc/yp.conf
Data z NIS serveru pak připojíme takto:
/etc/rc.d/rc.yp
Interně se spouští program ypbind.
Funkčnost NISu ověríme takto:
ypcat passwd.byname
Začne se vypisovat soubor passwd, který je na serveru. Všimněte si,
že je jednak seřazený jinak než originál, a zadruhé jsou uvnitř i
kryptovaná hesla. NIS vznikl původně na Solarisu, dávno před vznikem
nějakého /etc/shadow
. V how-to se dokonce doporučuje na
serveru stínová hesla zrušit, nicméně v mém případě to nečinilo sebemenší
potíže. Zřejmě mám novější verzi, než je popisovaná v how-to.
O démonu yppasswd jsme již mluvili. Síťovou změnu hesel na straně klienta zajišťuje nečekaně program yppasswd. Doporučuje se nahradit jím stávající passwd, práce je s ním identická.
mv /usr/bin/passwd /usr/bin/passwd.old
ln /usr/bin/yppasswd /usr/bin/passwd -s
Dále je potřeba nastavit soubor /etc/nsswitch.conf
. Tam se
definuje, která data půjdou z lokálu, a která z NIS serveru. Obsah tohoto
souboru je v mém případě následující:
cat /etc/nsswitch.conf passwd: nis files shadow: nis files group: nis files hosts: files dns nis services: files nis networks: files nis protocols: files nis rpc: files nis ethers: files nis netmasks: files nis bootparams: files nis netgroup: files nis publickey: files nis automount: files nis aliases: files nis
A jako poslední věc doplníme do /etc/passwd
a
/etc/group
virtuální uživatele a skupiny z NISu. Některé
řádky jsem vynechal, ale jedná se o zcela standardní soubory ze standardní
instalace, jediný rozdíl je v posledním řádku. Záznamy, které jsou v
těchto souborech, mají zřejmě vyšší prioritu než data z NISu; minimálně
root má stále heslo z lokálu a ne ze serveru.
cat /etc/passwd
root:x:0:0::/root:/bin/bash
bin:x:1:1:bin:/bin:
daemon:x:2:2:daemon:/sbin:
...
...
sshd:x:33:33:sshd:/:
gdm:x:42:42:GDM:/var/state/gdm:/bin/bash
pop:x:90:90:POP:/:
nobody:x:99:99:nobody:/:
+::::::
a>
cat /etc/group
root::0:root
bin::1:root,bin,daemon
daemon::2:root,bin,daemon
...
...
nobody::98:nobody
nogroup::99:
users::100:
console::101:
+:::
Nyní zkuste restartovat počítač a přihlásit se jako nějaký uživatel, který je na serveru. Pokud to jde, můžete si pogratulovat. Zkuste ještě, jestli funguje změna hesla, a hotovo.
Více o NIS lze najít na http://www.linux-nis.org/ a v The Linux NIS(YP)/NYS/NIS+ HOWTO.
LTSP není třeba představovat. Ale jestli se ptáte, proč to sem motám, tak proto, že v práci (střední škola) máme server, kde jsou domácí adresáře, ale provozovat LTSP server by už nezvládl, a tak jsem výše zmíněným způsobem stvořil aplikační server.
Přesněji řečeno, prozatím to běží na mém osobním kompu, který serveru nesahá ani po kolena. Mimochodem, víte, že z grantů ministerstva školství musí jít minimálně 50 % peněz na nákup softwaru? Takže když chci server za 100 000 Kč, tak musím najít SW za dalších 100 000 Kč. A asi jste v televizi už slyšeli, co se děje, když někdo použije grant na něco jiného, než byl určen. Nemám slov...
No a na tento "aplikační server" jsem nainstaloval LTSP. Článků už bylo napsáno dost, takže jen v rychlosti.
LTSP vyžaduje minimálně 3 služby: tftp, dhcp a nfs. Přes tftp se nahrává jádro na klienta, DHCP rozdává klientům IP adresy a přes NFS se exportuje root filesystém pro klienta. DHCP samozřejmě vůbec nemusí být na LTSP serveru, může být na jakémkoliv počítači v subnetu.
Funkční konfigurace DHCP pro jednoho LTSP klienta:
cat /etc/dhcpd.conf option domain-name "domena.tld"; option domain-name-servers 192.168.1.2; option netbios-name-servers 192.168.1.2; ddns-update-style none; option subnet-mask 255.0.0.0; default-lease-time 43200; max-lease-time 518400; option root-path "10.0.0.1:/opt/ltsp/i386"; subnet 192.168.5.0 netmask 255.255.255.0 { not authoritative; } subnet 10.0.0.0 netmask 255.0.0.0 { option broadcast-address 10.255.255.255; range dynamic-bootp 10.0.0.100 10.0.0.254; option routers 10.0.0.1; use-host-decl-names on; option log-servers 10.0.0.1; host xklient { hardware ethernet 00:30:4f:07:af:01; fixed-address 10.0.0.2; # next-server 10.0.0.254; # urcuje TFTP server, je odlisny od "routers" filename "/tftpboot/lts/vmlinuz.ltsp"; } }
Zmínil bych snad jen parametr next-server
. LTSP standardně
hledá TFTP server na IP adrese brány subnetu
option routers 10.0.0.1;
. Tato direktiva zařídí, že
jako TFTP server se použije 10.0.0.254. V tomto konkrétním případě ale
není potřeba.
TFTP server se spustí příkazem:
/usr/sbin/in.tftpd -l /
Root filesystém bezdiskového klienta vyexportujeme takto:
cat /etc/exports
/opt/ltsp/i386 10.0.0.0/255.0.0.0(ro,no_root_squash,sync)
Osobně doporučuji použít instalační program LTSP k nainstalování balíčků, ale konfiguraci služeb si udělat ručně. Na LTSP serveru nutně musí být jen NFS. DHCP může být kdekoliv na subnetu a TFTP v podstatě také. Cílem tohoto článku není instalace LTSP, krom toho je dost jednoduchá, takže vás odkáži jen na následující odkazy:
Více o LTSP lze najít zde:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.