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
- Filattribut
- Ändra filattribut
- Att administrera processer i skalfönstret
- Sammanfattning och diagnos
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 har tillgång till upp till 15 GB utrymme för dina personliga filer, men se till att alltid ha åtminstone 1 GB ledigt utrymme. I annat fall kan du få problem med att logga in och starta vissa programvaror. Läs mer om hur och var du kan lagra filer på intranätet för studenter.
Ett sätt att ta reda på exakt vilka kataloger det är som tar upp utrymme är att använda kommandot du
(förkortning för eng. disk usage). Det finns många sätt att modifiera du
med olika flaggor, men nedanstående exempel kan vara användbart om du kör det i din hemkatalog:
turte123@li10-3:-$ du -ks *
93561 Bilder
70 demo
18 Desktop
97 Documents
18 Downloads
44 Favorites
1 Hämtningar
641282 lab
92 Searches
449 SettingsPackages
1 Skrivbord
210 tmp
1 Video
turte123@li10-3:-$
Det som visas här är alla kataloger (och filer) som finns direkt under din hemkatalog och siffran till höger anger hur många kB respektive katalog tar upp.
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 kommandot
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 medkill
ellerxkill
.
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: 2024-08-26