Information för rötter

FUKTs datorsystem kör NIS, med tower som master och bobby som slavserver. Hemmakatalogerna ligger på tower och nexus och monteras med automount via NIS-mappen auto.home. Nigol är mailserver och har /var/mail exporterad via NFS. /usr/local/lib/fukt exporteras från snuggles och mountas av alla datorer; där ligger bland annat medlemslistan.

Att vara root

Lite information om hur man beter sig som root:

Naturligtvis gäller det gamla vanliga att man ska respektera andra användare; inget bråkande med andras filer eller processer etc., men det är en extra sak:

Man ska ALLTID skriva en entry i filen /etc/ChangeLog när man ändrar någonting i systemets filer utanför /usr/local och /home. (Hur man ska skriva ser man i filen.)

Detta gäller alltid, och även för alla småändringar. Punkt. Inga undantag.

Sedan är det väl trevligt om större förändringar diskuterades på roots-listan och så, men ChangeLog är helt och hållet viktigast.

Ah, just det, en annan sak. Man loggar aldrig in som root. Man loggar in som sig själv och kör "su" eller ännu hellre "su -c kommando" när man vill göra nåt som root.

(Man ska heller inte vara inne och härja som root i /usr/local, det räcker att man är medlem i gruppen "staff" för att man ska få skriva där, så om det är det enda man vill så ska man inte behöva bli root.)

Att addera användare

Att addera användare sker från ett Python-script på tower, som i sin tur ssh:ar in på diverse maskiner och gör lämpliga saker. Scriptet heter "makeallusers". Så här:

tower# makeallusers

Scriptet skriver ut de kommandon man vill köra för att addera de användare som inte är finns på systemet men finns i medlemslistan och inte är markerade som "adderade".

Till exempel:

tower# makeallusers
fuktadduser mooie "Roy Sandgren" tower "S0Jtly3vE4LAt" pt00rsn
fuktadduser fragole "Fredrik Nilsson" nexus
tower# 

Här syns det att scriptet inte har hittat något lösenord för användaren "fragole". Detta händer om användarens högskolekonto (från medlemslistan) inte finns i /usr/local/lib/fukt/bth_passwd. Detta är en kopia av högskolans passwd-fil, och får lämpligen uppdateras ibland (med kommandot "ypcat passwd" på högskolans system).

Undvik gärna att addera användare utan lösenord, det blir så jobbigt sedan.

Nå, om man nu vill addera användaren "mooie" så kör man den rad som skrevs ut, fast med "ssh-agent " före. Så här:

tower# ssh-agent fuktadduser mooie "Roy Sandgren" tower "S0Jtly3vE4LAt" pt00rsn

Detta resulterar i en fråga:

tower# ssh-agent fuktadduser mooie "Roy Sandgren" tower "S0Jtly3vE4LAt" pt00rsn
The agent has no identities.
Need passphrase for /root/.ssh/identity (root@tower.fukt.bsnet.se).
Enter passphrase: 

Nu behövs en hemlig passphrase som ger scriptet tillgång till den ssh-identitet på tower som kan logga in som root på nigol och nexus. Sedan kommer en massa output:

Enter passphrase:
Identity added: /root/.ssh/identity (root@tower.fukt.bsnet.se)
Testing SSH to nigol
Testing SSH to nexus
adduser: Warning: The home dir you specified already exists.
Adding user mooie...
Adding new group mooie (1107).
Adding new user mooie (1107) with group mooie.
Home directory /tmp already exists.  Not copying from /etc/skel
Creating home directory /export/disk1/mooie.
Copying files from /etc/skel
Setting quota from nobody.
adduser usermod auto.home
/var/yp ~
make[1]: Entering directory `/var/yp/fukt.hk-r.se'
make[1]: `ypservers' is up to date.
make[1]: Leaving directory `/var/yp/fukt.hk-r.se'

~
make[1]: Entering directory `/var/yp/fukt.hk-r.se'
Updating passwd.byname...
Updating passwd.byuid...
Updating group.byname...
Updating group.bygid...
Updating netid.byname...
Updating shadow.byname...
Updating auto.home...
make[1]: Leaving directory `/var/yp/fukt.hk-r.se'
~
mail files
( End: )
/export/disk1/mme00jca ~
.~
...............
26 blocks
quota on nexus
Samba
mooie:1107:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:[U         ]:LCT-00000000:Roy Sandgren,,,
tower# 

De rader som är markerade kan saknas eller inte beroende på vilken server användarens hemmakatalog adderas till. Om det kommer något annat felmeddelande så får detta undersökas och man får kolla var scripten avbröts och göra resten för hand. (Det kunde till exempel hända förr, innan tower uppgraderas till Debian 3.0, att att NIS-mapparna inte uppdateras ordentligt så att mailfilen och kanske hemmakatalogen inte blev chown:ad.)

Om allt gick bra så ska nu användaren vara adderad. Det som återstår är att kryssa för i medlemslistan att personen är adderad. Dessutom så har inte personen något giltigt lösenord på SMB-servern på nexus, d.v.s. de kan inte komma åt sitt konto via Windows fildelning eller logga in på en FUKT-maskin som kör Windows. Detta får fixas manuellt genom att användaren själv loggar in på en Unix-maskin och byter lösenord (med smbpasswd).

Att stänga av användare

Eftersom man kan stänga av användare av olika skäl så kan en användare vara avstängd av flera olika skäl samtidigt. Därför så anger man ett nyckelord för anledningen till avstängningen när man stänger av användare, vilket lagras. På så sätt så blir det aldrig förvirring om varför ett konto är avstängt. Dessa nyckelord lagras i shell-fältet på ett avstängt konto; detta medför att man helt enkelt kan köra finger på ett konto för att se om det är avstängt och i så fall av vilka anledningar.

Man stänger av användare med ssh-agent disableuser användare nyckelord och slår på dem igen med ssh-agent enableuser användare nyckelord. Det krävs att man kan den hemliga passphrase:n till root-identiteten.

Till exempel, för att stänga av "sture" för att han inte betalat medlemsavgiften:

ssh-agent disableuser sture unpaid

För att stänga av "nisse" för att han varit stygg:

ssh-agent disableuser nisse stygg

Och slutligen för att slå på "sture" för att han nu betalat medlemsavgiften:

ssh-agent enableuser sture unpaid

Observera att om sture redan är avstängd för att han varit stygg (eller av någon annan anledning) så kommer inte hans konto att slås på igen efter att han betalat medlemsavgiften; systemet kommer ihåg den gamla avstängningen.

Att hantera backuper

Att göra backup

Det finns ett script som heter /usr/local/lib/fukt/backup med vars hjälp man kan ta fullständig eller inkrementell backup på en dator, inklusive användarkonton (/export/disk1) om man kör det på en dator som har en /dev/tape, d.v.s. idag tower eller nexus.

Scriptet är inte alls särskilt hårdkodat till hur ofta man ska ta backup eller hur många band man ska ha i omlopp, etc. Det får de lokala rötterna bestämma eftersom det ändå är de som måste köra scriptet och gå in i serverrummet och byta band. Så, här följer en beskrivning på hur scriptet fungerar så att man kan bestämma själv:

En backup kan löpa över flera band, och man kan ha flera separata uppsättningar av band. Därför ger man varje banduppsättning ett namn som man själv väljer.

Scriptet är skrivet så att man på en uppsättning band alltid gör en fullständig backup först följt av ett antal inkrementella backuper (där då bara de filer som ändrats sedan senaste backupen skrivs till band).

Så, för att göra en fullständig backup stoppar man in det första bandet i den banduppsättning man ska använda, och skriver

/usr/local/lib/fukt/backup full banduppsättningsnamn

där banduppsättningsnamn är det namn man har valt på den uppsättning band man vill använda. Det gör inget om man återanvänder en gammal banduppsättning, det är t.o.m. meningen. Man skulle till exempel kunna ha en banduppsättning som heter "uddaveckor" som raderas och skrivs över med en ny fullständig backup varje udda vecka.

Ett band rymmer 20Gb; det händer att alla filer inte får plats på ett band. Då kommer den att be om ett nytt band; då stoppar man in nästa band i den banduppsättning man använder och trycker sedan ENTER.

När den är klar med backupen ska den verifiera och samtidigt spara ett index på alla filer som det gjordes backup på. Då måste den tillbaka till början, men den vet inte om den är på samma band längre. Därför frågar den om det band som nu sitter i är det enda bandet som använts vid denna körning. Om man har behövt byta band svarar man "N" (eller trycker ENTER) och går och byter band till det band man hade i när man startade scriptet. (Om man råkar svara "N" eller trycka ENTER av misstag gör det ingenting, det är bara att gå och stoppa i samma band igen och trycka ENTER för att fortsätta.)

(Om backupen löpte över flera band måste man då strax byta band igen.)

För att sedan (till exempel nästa dag) göra en inkrementell backup på de filer som ändrats sedan sist stoppar man i det senaste bandet man skrev på i banduppsättningen (alltså inte det första), och skriver

/usr/local/lib/fukt/backup incr banduppsättningsnamn

Sedan kan det hända att även en inkrementell backup hamnar på en skarv mellan två band, varpå man ombeds att byta band på samma sätt som ovan.

När man vill ta ut det sista bandet för att använda på en annan banduppsättning så skriver man

mt offline

men det går bra att låta bandet sitta i tills nästa inkrementella backup om man vill.

Att återställa filer från band

Detta får man göra helt för hand med kommandona "mt" och "cpio" (RTFM). Backuperna är lagrade på banden som en serie CPIO-arkiv med ett EOF-märke skrivet efter varje arkiv så att man kan gå fram och tillbaka med "mt fsf" och "mt bsf".

Vad som är lagrat i arkiven på banden är sparat i indexfiler som heter

/var/backups/index-banduppsättningsnamn-full.gz
/var/backups/index-banduppsättningsnamn-incr0.gz
/var/backups/index-banduppsättningsnamn-incr1.gz
/var/backups/index-banduppsättningsnamn-incr2.gz
etc.

Observera att dessa filer inte motsvarar band utan istället CPIO-arkiv som alltså kan löpa över flera band och/eller ligga många på samma band.

Så, vad man gör om någon tappat bort, öh, jag menar om det onda gröna datortrollet ätit upp en fil, "inte alls mitt fel", är att man letar efter filnamnet i indexfilerna. Om filen finns i den sista inkrementella backupen på en banduppsättning så är det enkelt; stoppa bara in det sista bandet och gör något liknande detta:

mt eod
mt bsf 3
cd /export/disk1
cpio -ivdm -F/dev/tape filnamn
mt offline

Jag har dock aldrig testat detta, men det borde fungera. (Att backuperna skrivs korrekt till bandet och att de går att läsa testas ju). Nåja, den tiden, den sorgen.

Att addera nya maskiner

Man kan addera maskiner till FUKTs datorsystem olika mycket; jag går igenom det steg för steg.

Glöm inte att skriva i /etc/Changelog alla ändringar som görs enligt dessa instruktioner.

Om man är osäker kan man alltid se efter på någon annan liknande maskin hur det är gjort där.

Steg 1: Addera maskinen till DNS

  1. Editera filen "kna", "rby" eller "khn" i katalogen "/etc/bind/master" på tower.

    Lägg till den nya maskinen där; det är bara att följa mönstret efter hur de andra maskinerna är inlagda. Maskiner som ska ta emot sin egen post ska inte ha en MX-post pekandes på nigol, RP-posten ska peka på rätt person, etc. Använd en maskin som är så lik den som ska läggas in som möjligt som mall och ändra sedan de detaljer som behöver ändras. Och lägg maskinerna i IP-adressordning och skriv en kommentar för de IP-adresser som inte används så att man ser vilka som är lediga. Kort sagt, följ mönstret och titta på resten av filen för att inte införa kaos.

  2. Öka serienumret i filen "fukt.bsnet.se" i samma katalog.

    Observera att serienumret måste vara i rätt format; skriver man fel så kan man sabba det rejält, och det är inte bara lokalt man sabbar det; andra servrar kan sluta acceptera DNS-uppdateringar från FUKT om man skriver fel. (Det går att fixa om man gjort fel, men det är krångligt och kräver en del handpåläggning och DNS-kunnande.) Formatet är "ÅÅÅÅMMDDVV", d.v.s. fyra siffror årtal, två siffror månad, två siffror dag och två siffrors versionsnummer. Om det är första ändringen en viss dag så är versionsnumret "00".

    (Detta står visserligen i kommentarer i filen, men jag har sett folk göra fel trots detta, och eftersom det är så viktigt så nämner jag det här också.)

  3. Kör kommandot "cd /; su - -c 'invoke-rc.d bind force-reload'" (på tower).

Nu finns maskinen i DNS, d.v.s. den har ett namn under "fukt.bsnet.se". Om det är en maskin som inte annars ska vara en del av FUKTs datorsystem är detta allt som behövs.

Steg 2: Göra maskinen till en del av FUKTs Unix-datorsystem.

Att vara en del av FUKTs Unix-datorsystem innebär att användare kan logga in på maskinen och köra program, att de kan komma åt sina hemmakataloger från den, att de kan läsa sina brev på den och liknande. Detta kräver att resten av FUKTs maskiner litar på denna maskin. Naturligtvis måste man se till att de har tillräcklig grund för detta; det här är inget som kan ges ut till vilken maskin som helst. Detta ska bara göras för nya FUKT-arbetsstationer, FUKT-servrar eller för maskiner vars administratörer man litar riktigt, riktigt mycket på.

Många steg hädanefter består av två delar; dels måste den nya maskinen själv ställas in att använda en viss sak, och dels så måste FUKTs servrar ställas in att tillåta den nya maskinen att göra det.

Ett nödvändigt första steg är att maskinen görs till medlem av FUKTs NIS-domän. Den heter "fukt.hk-r.se". (Nej, det är inte fel, och behöver inte ändras; NIS-domäner har egentligen ingenting att göra med DNS-domäner.) Detta måste göras på den nya maskinen; jag har för mig att Debian GNU/Linux-maskiner kan göra det automatiskt vid installation av "nis"-paketet. Men, för att detta ska vara möjligt så måste maskinens IP-adress först vara inlagd i filen "/etc/ypserv.securenets" på den maskin som är NIS-server på den ort som maskinen står. (Läs sidan om FUKTs datorsystem för att se vilken dator det är.) Den NIS-serverns IP-adress ska också läggas in explicit i filen "/etc/yp.conf" på den nya maskinen på formen "ypserver NIS-serverns_IP-adress".

Sammanfattning så här långt:

  1. Lägg in den nya maskinens IP-adress i /etc/ypserv.securenets på den lokala NIS-servermaskinen.

    Detta för att tillåta den nya maskinen att vara med i NIS-domänen.

  2. Gör den nya maskinen till medlem av NIS-domänen.
  3. Ställ in i /etc/yp.conf så att den nya maskinen explicit använder rätt lokal NIS-server.

    Detta för att inte den nya maskinen inte ska kunna råka använda någon annan NIS-server än den riktiga.

Efter detta är visserligen maskinen medlem i NIS-domänen, men detta påverkar i sig inte mycket. Om den nya maskinen ska kunna göra de flesta av de saker som beskrivs ovan så måste den nya maskinen läggas in på diverse ställen som gör att andra FUKT-servrar litar på den.

(Mera text kommer senare.)

/Teddy

Att addera nya maskiner till WLAN

Karlskrona

FUKTs AP använder sig av flera säkerhetsmekanismer; MAC-lås, hemligt SSID och 128-bitars WEP-kryptering. Både WEP-nyckeln och SSID står i pärmen. Här beskrivs hur man adderar nya MAC-adresser till AP. Det kan göras på två olika sätt; man kan logga in på AP via webben, eller så kan man logga in via telnet. Det första är ganska självklart, därför beskrivs bara hur man adderar en ny dator med MAC-adress 00-12-34-56-78-9a via telnet:

Logga in som admin på hpwlan.switch.rsn via telnet och skriv följande:

HP420AP# configure
HP420AP(config)# address filter entry 00-12-34-56-78-9a allowed

HPs CLI stödjer tabbar och ?. Är man t.ex osäker på hur syntaxen ser ut kan man skriva ? för att lista möjliga kommandon.

Ronneby

Vet inte; fråga Mooie.