Till innehåll på sidan
Till KTH:s startsida

Använda AFS (Andrew File System)

Om du har din hemkatalog i AFS eller i på annat sätt arbetar med AFS-filkataloger bör du känna till det som här beskrivs om AFS.

Man undersöker ifall en viss katalog ligger i AFS genom att ge kommandot "df katalognamn". För AFS-filsystem står det då "AFS" i kolumnen längst till vänster. Om du vill veta ifall din hemkatalog ligger i AFS kan du skriva "df ~".

Här beskrivs det viktigaste man bör känna till om man arbetar med AFS-filsystem. OBS! För att begränsa omfånget på denna beskrivning förekommer det vissa förenklingar av verkliga förhållanden.

Skillnader jämfört med UFS (Unix File System)

Följande är de viktigaste avvikelserna som AFS uppvisar jämfört med normala Unix-filsystem:

Filåtkomstskydd fungerar annorlunda

Åtkomsträttigheterna styrs på katalognivå av s.k. åtkomstlistor (eng. access control lists), en för varje katalog. En åtkomstlista talar om vilka som får göra vad med alla filerna i katalogen. Åtkomstlistor förklaras i avsnitt D2. nedan.

Utmatning från kommandot ls visar inte filskydd

För varje enskild fil används bara de tre första av de nio filskyddskoderna som visas vid kommandot ls, dvs. de som i UFS visar ägarens rättigheter. I AFS-systemet visar dessa koder istället ifall filen är läs-, skriv- respektive exekveringsskyddad eller inte för alla som genom åtkomstlistan för katalogen har dessa rättigheter.

Hemkatalogproblem med filskydd

Systemet med filåtkomstskydd på katalognivå ger problem med filskydd i kataloger som skall innehålla både privata och allmänt läsbara filer. Främst gäller detta hemkatalogens toppnivå. Hur man kan kringgå detta kan du läsa om i avsnitt D3.

Kerberos-biljett krävs

Användning av AFS-filer kräver att man har identifierat sig i säkerhetssystemet Kerberos: man måste ha en giltig s.k. Kerberos-biljett för AFS. En sådan får man automatisk när man loggar in, men ibland kan man behöva skaffa en biljett manuellt. Ett sådant fall är när man loggar in på en annan dator med ssh. Man kan inte ta med sig sin biljett till den nya datorn, så man måste skaffa en ny. Ett annat, ovanligare fall är när biljettens giltighetstid går ut (en biljett gäller normalt i cirka 10 timmar). Med kommandot aklog identifierar du dig för Kerberos och skaffar en AFS-biljett. Kommandot klist visar vilka Kerberos-biljetter du har.

För att få biljetter för din lokala cell:

  aklog

För att få biljetter till KTH.SE-cellen:

  aklog KTH.SE

Utrymmeskvot används

Varje AFS-katalog har en gräns för utrymmet den får uppta, en utrymmeskvot (eng. quota). Detta förekommer även i vanliga Unix-filsystem. ITA reglerar ändring av kvot.

Kommandot

fs listquota katalognamn

visar utrymmeskvoten för den volym (lagringsenhet) där den givna katalogen finns och hur stor del av kvoten för katalogen som för tillfället utnyttjas. Kommandot kan även förkortas till "fs lq".

Den senaste backupen finns tillgänglig online i ungefär 24 timmar

Varje natt efter arbetsdag görs det normalt en reservkopiering (backup) av dina filer till band. I samband med detta lagras information om din hemkatalogs dåvarande skick och denna ”frysta” hemkatalog finns sedan tillgänglig under nästa dag. Du hittar den i katalogen OldFiles överst i din hemkatalog. Om du gör något misstag med dina filer – tar bort en fil, gör en stor felaktig ändring osv. – och upptäcker misstaget samma dag, kan du alltså hämta tillbaka gårdagens version från katalogen OldFiles.

För andra kataloger, så kan du använda kommandot "fs exa" för att se under vilken volym katalogen lagras. Sedan används kommandot

fs mkm monteringskatalog volymnamn.backup

för att få tillgång till backup-volymen. Sedan används

fs rmm katalog

för att avlägsna backup-volymen.

Åtkomstlistor

Varje filkatalog i AFS har alltså en åtkomstlista (engelska: access control list, ACL) som definierar vilka som får göra vad med filerna i katalogen. Det finns sju olika åtgärder på en filkatalog och dess filer som AFS reglerar rättigheterna för. Varje åtgärd har sin egen kodbokstav:

Bokstav Betydelse Effekt
r read Läsa filerna i katalogen
l list Se vilka filer som finns i katalogen
i insert Skapa nya filer i katalogen
d delete Ta bort filer i katalogen
w write Modifiera filerna i katalogen
k lock Låsa filerna i katalogen
a administer Ändra i åtkomstlistan för katalogen

Exempel på åtkomstlista:

ran rlidwka
system:administrators rlidwka
system:anyuser l
bg rlidwk
ran:friends rl

Raden "ran rlidwka" säger att ägaren (användaren ran i det här exemplet) har alla rättigheterna. "system:administrators rlidwka" visar att den speciella gruppen system:administrators har samma rättigheter (medlemmarna i denna grupp kan alltid skaffa sig vilka rättigheter de vill, så det är meningslöst att ta bort dem). Ur "system:anyuser l" kan utläsas att gruppen system:anyuser, som innefattar alla användare, har enbart rätten att se vilka filer som finns i katalogen. På den fjärde raden får användaren bg alla rättigheter, utom rätten att ändra i åtkomstlistan. "ran:friends rl" (eller "ran:friends read") på sista raden, slutligen, ger medlemmarna i den egna gruppen ran:friends rätt att både lista och läsa filerna i katalogen. (Se avsnitt D4 om egna grupper.)

Kommandon för att hantera åtkomstlistor

fs listacl katalognamn

Visar åtkomstlistan för den givna filkatalogen ("listacl" kan förkortas "la")

fs setacl katalognamn användare/grupp rättigheter

Ger en viss rättighet åt en viss användare/grupp ("setacl" kan förkortas "sa")

fs setacl katalognamn användare/grupp none

Återkallar alla rättigheter för en viss användare/grupp.

fs help

Visar alla "fs"-kommandon

Hur man kringår problemet att man inte kan ha olika skydd på filerna i samma katalog

Eftersom skyddet av filer i AFS är på katalognivå kan man inte ha olika skydd på filerna i en och samma katalog. Exempelvis kan man inte ha en fil som bara man själv kan läsa i en katalog som är allmänt läsbar. Normalt gör inte detta något - man stoppar bara filerna i olika kataloger - men ibland blir det problem. Det gäller till exempel din hemkatalog.

I hemkatalogen behöver man ha allmänt läsbara initieringsfiler som .bashrc, .tcshrc m.fl. Om inte dessa är allmänt läsbara kommer bland annat inte rlogin att fungera normalt.

Samtidigt behöver man också hemliga filer. Tricket för att klara detta är att för hemkatalogen ge enbart list-rättighet till system:anyuser och skapa en allmänt läsbar underkatalog där man lägger icke-hemliga filer. Man har sedan symboliska länkar för varje fil som skall vara allmänt läsbar från den lässkyddade katalogen in i den läsbara underkatalogen. På så sätt kommer man, via länkarna, åt de icke-hemliga filerna från den hemliga katalogen.

Exempel på kommandon för att ordna enligt ovanstående beskrivning:

Gå till hemkatalogen:
cd
Skapa läsbar underkatalog:
mkdir Public
Göra underkatalogen läsbar:
fs setacl Public system:anyuser read
Flytta filer som ska vara allmänt läsbara dit:
mv .login .cshrc .tcshrc Public
Skapa länkar:
ln -s Public/.login; ln -s Public/.cshrc; [osv.]

Egna grupper

Varje användare har i AFS-systemet möjlighet att skapa personliga grupper av användare för att på ett bekvämt sätt kunna tilldela filskyddsrättigheter. Samtliga medlemmar i en sådan grupp kan ges samma rättigheter genom att man lägger till gruppen till olika åtkomstlistor. I åtkomstlistan ovan är ran:friends ett exempel på en egen grupp. Egna grupper börjar alltid med ägarens användarnamn följt av ett kolon.

Kommandon för hantering av grupper i AFS-systemet

pts creategroup ägare:gruppnamn

Skapar en grupp. Ägaren ska vara ditt användarnamn ("creategroup" kan förkortas "cg")

pts adduser användare ägare:gruppnamn

Lägger till användaren till gruppen ("adduser" kan förkortas "ad")

pts delete ägare:gruppnamn

Tar bort gruppen ("delete" kan förkortas "del")

pts removeuser användare ägare:gruppnamn

Tar bort användaren från gruppen ("removeuser" kan förkortas "rem")

pts membership ägare:gruppnamn

Visar medlemmarna i gruppen ("membership" kan förkortas "m")

pts help

Visar alla "pts"-kommandon