next up previous contents
Nästa: 7.2 Länkar Upp: 7. Mer om UNIX Förra: 7. Mer om UNIX

  
7.1 Grupper och identiteter

Antag att några av användarna på datorn samarbetar om att skriva en bok. Då ska just dessa användare, men inga andra, ha rätt att ändra i de filer som innehåller materialet till boken. Ibland är det alltså önskvärt att mer än en användare, men ändå inte alla, ska tilldelas vissa befogenheter över en fil eller katalog. Detta är möjligt tack vare något som kallas för grupper. En grupp består av ett antal användare på systemet. Det kan till exempel finnas en grupp med namnet dikt, vars medlemmar arbetar med att sammanställa en diktsamling.

Om kommandot groups anropas utan argument, så skrivs det ut vilka grupper man själv är medlem i.$ groups
göran floppy dikt
$
Jag är tydligen medlem i grupperna göran, floppy och dikt.

Om groups anropas med ett eller flera användarnamn som argument, så får man veta vilka grupper var och en av dessa användare är medlem i.$ groups eva göran
eva : eva staff dikt
göran : göran floppy dikt
$
Användaren eva är alltså medlem i grupperna eva, staff och dikt.

Varje användare tillhör minst en grupp. Men även om man kan vara medlem i flera grupper, så ''befinner man sig'' vid varje tillfälle bara i en grupp. Den grupp användaren direkt efter inloggningen befinner sig i kallas för hennes login-grupp. På Debian GNU/Linux-system finns det för varje användare en grupp vars namn är detsamma som hennes användarnamn och i vilken hon själv är den enda medlemmen. Vanligtvis är det denna grupp som är hennes login-grupp. (Skälet till att alla användare har en ''egen grupp'' är att det därmed blir möjligt för dem att slentrianmässigt ge gruppen samma rättigheter till sina filer och kataloger som de själva har.)

Kommandot id ger information om grupper och identiteter:$ id
uid=1000(göran) gid=1000(göran) grupper=1000(göran),25(floppy),101(dikt)
$
Det kan vara värt att veta, att UNIX internt identifierar en användare inte med hjälp av hennes användarnamn, utan med hjälp av ett nummer som kallas för hennes användaridentitet (uid). Likaså representeras grupper internt med ett nummer som kallas för gruppidentiteten (gid). Min användaridentitet är 1000 och jag befinner mig just nu i gruppen med gruppidentitet 1000. Med hjälp av kommandot newgrp kan man byta nuvarande grupptillhörighet.$ newgrp dikt
$ id
uid=1000(göran) gid=101(dikt) grupper=1000(göran),25(floppy),101(dikt)
$
För att återgå till den förra grupptillhörigheten ska man ge kommandot exit.$ exit
$ id
uid=1000(göran) gid=1000(göran) grupper=1000(göran),25(floppy),101(dikt)
$

Flaggan -d anger att kommandot ls ska ge information om kataloger snarare än om filerna de innehåller.$ ls -ld dikter
drwxrwxr-x   3 göran    göran        1024 feb 20 13:19 dikter/
$
Jag ändrar nu grupptillhörigheten för katalogen dikter från göran till dikt. Kommandot för detta är chgrp.$ chgrp dikt dikter
$ ls -ld dikter
drwxrwxr-x   3 göran    dikt         1024 feb 20 13:19 dikter/
$
Hädanefter kan eva, som också är medlem i gruppen dikt, skapa och radera filer i katalogen dikter.

Kommandot för att byta ägare för en fil är chown, men det är bara root som byta ägare för filer - annars skulle man ju kunna ''stjäla'' filer från andra! Likaså måste man tillhöra en viss grupp för att kunna associera filer eller kataloger med gruppen.

Om man vill att kataloger och filer ska få grupptillhörigheten dikt direkt när de skapas, så ska man se till att man befinner sig i denna grupp.$ newgrp dikt
$ mkdir kopior
$ ls -ld kopior
drwxrwxr-x   2 göran    dikt         1024 mar  8 13:49 kopior/
$ exit
exit
$

För att byta användaridentitet till användarnamn ska man ge kommandot su användarnamn. Om argumentet användarnamn är root, så kan det utelämnas.$ su
Lösenord:
root@fafner# id
uid=0(root) gid=0(root) grupper=0(root)
root@fafner# exit
exit
$
De personer som är systemadministratörer på datorn brukar arbeta som ''vanliga användare'' en stor del av tiden. När de behöver utökade rättigheter går de över till användaridentiteten root genom att ge kommandot su.


next up previous contents
Nästa: 7.2 Länkar Upp: 7. Mer om UNIX Förra: 7. Mer om UNIX
Goran Andersson
1999-03-08