Göm menyn

Rättigheter och processer

I detta steg tar vi upp hur du skyddar dina filer, hur mycket filer du får ha i din hemkatalog samt hur du administrerar processer från skalfönstret.

Utrymme i hemkatalogen

Som nämnts tidigare heter din hemkatalog /home/användarnamn och kan förkortas med tecknet ~ (tilde). Hemkatalogen är det enda ställe där du kan lagra dina egna filer. Du kan också ha dina egna webbsidor i underkatalogen www-pub, vilket vi ska ta upp i ett senare steg.

Det finns en maxgräns för hur mycket plats dina filer får ta upp. Du har en så kallad kvot (eng. quota) vars storlek beror på vilka kurser du läser för tillfället. Du kan kontrollera din kvot med kommandot quota. Om du skriver enbart quota får du bara meddelande om du har för mycket filer. Om du istället skriver quota -v får du en fullständig lista över hur mycket utrymme dina filer tar upp. Exempel:

	
turte123@li10-3:-$ quota
turte123@li10-3:-$ quota -v
Disk quotas for turte123 (uid 1234):
Filesystem     usage  quota  limit   timeleft  files  quota  limit   timeleft
/home/turte123  7492  10000  14000               108      0      0
	

Ovanstående innebär att du har en "mjuk gräns" eller quota på 10000 kB samt en "hård gräns" eller limit på 14000 kB. Dina filer upptar för närvarande 7492 kB. Om dina filer skulle utgöra mer utrymme än den "mjuka gränsen" kommer du få ett varningsmeddelande när du loggar in. Om du kommer upp till den "hårda gränsen" kan du inte längre skapa nya filer. Se därför till att alltid hålla dig under den "mjuka gränsen".

Ibland kan man vid inloggning få ett meddelande från systemet att man har överskridit det utrymme man har blivit tilldelad. Med hjälp av kommandot du (förkorning för eng. disk usage) kan man undersöka vilka filer och kataloger som tar upp mycket plats. I exemplet nedan visas alla filer och kataloger samt deras totala storlek i kB.

	
turte123@li10-3:-$  du -k *
50      anteckningar
248     rapport.doc
359     elisp
475     info
32      klassdiagram.doc
1045    labbar
1762    mail
189     pc
2502    www-pub
turte123@li10-3:-$ 
	

Filattribut

Filer och kataloger i Linux har tre attribut som kallas read, write och execute. Dessa tre attribut bestämmer vad man får göra med filen eller katalogen. Förutom denna uppdelning av rättigheter delas dessutom alla användare upp i tre områden kallade user, group och other. User är den som skapade filen, group består av de användare som tillhör samma användarkategori som user och other är de som blir över. För var och en av dessa grupper kan rättigheterna för en fil eller katalog sättas separat så att man kan begränsa vad varje grupp av användare får göra. Det kan ju till exempel hända att man är några stycken som jobbar på ett projekt och vill använda filer gemensamt samtidigt som man skyddar dem från andra. Vi förklarar med ett litet exempel. Nedan ser vi en del av innehållet i en katalog.

	
turte123@li10-3:-$  ls -al
drwx--x--x  34 turte123 student     2048 jul 18 16:10 .
dr-xr-xr-x  25 root     root          25 jul 18 16:10 ..
-rw-r--r--   1 turte123 student     1094 jan 28  1999 .cshrc
-rw-r--r--   1 turte123 student     1550 apr  3 15:39 .login
-rw-r--r--   1 turte123 student    17887 jul 18 15:25 labbrapport.txt
drwx------   2 turte123 student      512 jan 23  1999 Mail
drwxr-xr-x   3 turte123 student     1024 apr 22 22:26 www-pub
	

Filens eller katalogens attribut står i kolumnen längst till vänster. Den första bokstaven anger vilken typ av fil det är. Ett streck - anger att det är en vanlig fil, bokstaven d anger att det är en katalog och bokstaven l anger att det är en länk.

Därefter följer nio tecken som anger rättigheterna för i tur och ordning user, group och other. Katalogen Mail har rättigheterna rwx------ vilket alltså innebär att bara du själv kan komma åt katalogen. Katalogen www-pub har rättigheterna rwxr-xr-x vilket innebär att du själv kan läsa och skriva, medan alla övriga bara kan läsa filer.

Rättigheten execute som betecknas med x har en speciell betydelse. För vanliga filer innebär den att man har rätt att köra filen, dvs rättigheten ska endast ges till program och inte till datafiler.

Rättigheter för kataloger fungerar på ungefär samma sätt som för filer. Om katalogen har läsrättigheter kan du lista filerna i katalogen. Om den har skrivrättigheter får du skapa nya filer eller flytta existerande. Rättigheten execute innebär att du har rätt att gå till katalogen med cd.

I de övriga kolumnerna finns information om hur många länkar som finns till filen, vem som äger filen, vilken grupp ägaren är med i, hur stor filen är, när filen senast ändrades samt naturligtvis vad filen heter. De två speciella katalogerna . och .. refererar till den aktuella katalogen respektive katalogen ett steg uppåt i filsystemet. De finns i alla underkataloger, men syns normalt inte förrän du listar filer med kommandot ls -a.

Övning Kontrollera vilka rättigheter som gäller för filerna i din hemkatalog.

Ändra filattribut

För att ändra rättigheterna till en fil använder vi oss av kommandot chmod. Syntaxen för kommandot är:

chmod kategori operator rättigheter filnamn

Kategori Förklaring
u user
g group
o other
a all
Operator Förklaring
+ Lägg till rättighet
- Ta bort rättighet
Rättigheter Förklaring
r read ger rättighet att läsa från filen
w write ger rättighet att skriva till filen
x execute ger rättighet att köra filen

Om du t.ex. vill hålla en fil hemlig för alla utom dig själv kan du göra som i exemplet nedan:

	
turte123@li10-3:-$ ls -l hemlig.txt
-rw-rw-rw-   1 turte123 student    12892 jul 14 12:23 hemlig.txt
turte123@li10-3:-$ chmod go-rw hemlig.txt
turte123@li10-3:-$ ls -l hemlig.txt
-rw-------   1 turte123 student    12892 jul 14 12:23 hemlig.txt
	

Viktigt Ett vanligt fel som många gör är att strama åt rättigheterna för mycket i hemkatalogen. Tänk efter hur mycket information du har som egentligen behöver vara hemlig. Oftast ställer det bara till med problem om du försöker gömma undan för mycket. Vi rekommenderar att du åtminstone har rättigheterna rwx--x--- på hemkatalogen.

Att administrera processer i skalfönstret

Varje skalfönster är en egen process. I skalfönstret kan man starta nya processer, vilka kontrolleras från processen som skalfönstret utgör. Varje ny process är dock skild från alla övriga och kan inte påverka andra programs exekvering. Dock har föräldraprocessen (skalfönstret) fortfarande kontroll över de processer som den startat (barnprocesser). Om man till exempel avslutar ett skalfönsters process så avslutas också alla processer som skalfönstret kontrollerar. Därför är det viktigt att kunna kontrollera processer från skalfönstret.

Starta en process

Rent definitionsmässigt så har vi redan sett vissa processer exekveras. Alla kommandon som vi har anropat är exempel på processer. De kommandon som vi har använt är dock kortlivade - cd, ls och chmod utför sina uppgifter snabbt och är sedan klara och avslutar sig själva. Det är dock möjligt att starta godtycklig process från skalet, så länge man vet var binärfilen finns i systemet.

Om vi följer vår PATH-variabel så kan vi hitta var vissa processer finns. Skriver man in echo $PATH ser vi t.ex. att /usr/bin finns i vår PATH-variabel. Denna mapp innehåller väldigt många binärfiler som du som användare av systemet har tillgång till i alfabetisk ordning. T.ex. så finns binärfilen för webbläsaren Firefox i denna mapp. Binärfilen heter firefox, så för att starta processen Firefox så skriver man in firefox i skalet.

Tips: Skriver du bara in firefox så kör du Firefox i förgrunden i skalet. Detta innebär att du inte kan använda skalet förrän processen har kört klart (Du stänger ner Firefox). Om du istället skriver firefox & så kör du processen i bakgrunden - då kan du använda skalet medan Firefox kör.

Kommandot ps

Med kommandot ps så får vi reda på vilka processer som körs på den dator som vi för närvarande är inloggade på. Utdata från ps kan typiskt se ut så här:

	
turte123@li10-3:-$ ps
PID TTY      TIME CMD
3057 pts/5    0:01 tcsh
4019 pts/5   20:16 xemacs-2
4978 pts/5    7:16 emacs
	

Informationen i de olika kolumnerna förklaras i nedanstående tabell:

Kolumn Förklaring
PID (process identifier) Det unika nummer som används för att identifiera en process.
TTY (teletypewriter) En gammal beteckning som står för en resurs som används för att mata in textkommandon till en dator. Denna används för att identifiera varifrån processen styrs, vilket vanligtvis är från ett tangentbord anslutet till datorn.
TIME Hur många timmar och minuter som processen har varit igång (effektiv tid).
CMD (command) Det kommando som startade processen eller det program som processen är en instans av.

Om man anger flaggan -a får man en längre lista med processer och med flaggan -A listas samtliga processer. För att visa processer med ett visst namn kan du använda kommandot pgrep. Studera manualsidorna för dessa kommandon för ytterligare information.

Kommandot kill

Kommandot kill låter kanske lite brutalt. Det används oftast för att avsluta, eller "döda", en process, men kan också användas för att skicka andra signaler till processer. För att avsluta en process skickar man signal 9 till den med hjälp av flaggan -9.

	
turte123@li10-3:-$ kill -9 9126
	

Program som startats via ett fönstersystem kan vara svåra att identifiera. Man kan avsluta sådana processer lite lättare med kommandot xkill. Man kör kommandot utan några argument och får sedan klicka på det fönster vars process ska avslutas.

Du kan också styra processer via kommandot top. Studera manualsidorna för vidare information.

Övning Starta Emacs från ett skalfönster. Skapa en ny frame med alternativet New Frame i menyn File. Kör nu xkill och klicka i din nyskapade frame.

Övning Genom att ge flaggan -f till ps får man se mer information om de processer som körs. Med utgångspunkt från den listan, och med hjälp av kommandon för att klippa och klistra (se avsnittet Klippa och klistra), hitta och skriv ut enbart kommandot för den process som har kört längst! Lösningsförslag

Sammanfattning

  • Utrymmet i din hemkatalog är begränsat och kan kontrolleras med kommandona quota och du.
  • Filrättigheter anges med read, write och execute för de tre områdena user, group och others.
  • Filrättigheter kan ändras med chmod.
  • Processer kan undersökas med ps och avslutas med kill eller xkill.

Diagnos

När du har läst detta och föregående avsnitt är det dags att göra diagnos D8. Inställningar och rättigheter . Gå till kursrummet i Lisam och klicka på Test i vänstermenyn.


Sidansvarig: Peter Dalenius
Senast uppdaterad: 2023-08-21