1. Filens rättigheter
Alla filer och mappar har säkerhetsinställningar på tre nivåer:
- user (för ägaren)
- group (för gruppen)
- other (för alla användare)
Dessa rättigheter lagras i filens "inode" och är alltså en integrerad del av filsystemet.
För att se rättigheterna på filer och mappar i en katalog kan du skriva:
[olle@dev1]$ ls -l /usr/local
totalt 32
drwxr-xr-x 2 root root 4096 2007-09-11 17:31 bin
drwxr-xr-x 2 root root 4096 2007-08-06 11:08 etc
drwxr-xr-x 2 root root 4096 2007-08-06 11:08 games
drwxr-xr-x 2 root root 4096 2007-08-06 11:08 include
drwxr-xr-x 3 root root 4096 2007-08-06 12:15 lib
lrwxrwxrwx 1 root root 9 2007-08-06 11:08 man -> share/man
drwxr-xr-x 2 root root 4096 2007-08-06 11:08 sbin
drwxr-xr-x 8 root root 4096 2007-08-06 11:21 share
drwxr-xr-x 2 root root 4096 2007-08-06 11:08 src
|
Om vi tittar på katalogen "games" ser vi att första raden börjar med "drwxr-xr-x".
- Det första "d"-et betyder directory, alltså är "games" en mapp.
- Nästa 3 tecken "rwx" beskriver rättigheterna för ägaren.
- Nästa 3 tecken "r-x" är rättigheterna för gruppen.
- Nästa 3 tecken "r-x" är rättigheterna för alla användare.
- Nästa siffra "2" symboliserar hur många filer och mappar mappen innehåller. "2" betyder att mappen är tom, den innehåller bara filen "." (=länk till denna mapp) och ".." (=länk till underliggande mapp).
- Nästa ord "root" visar ägaren av mappen.
- Nästa ord "root" visar vilken grupp mappen tillhör. Vanligvis är detta användarens defaultgrupp.
Vad står positionerna för i Owner, Group och Other-rättigheterna?
- Om position 1 innehåller ett "r" kan man läsa filen/mappen. I fallet med mapp betyder det att man kan lista filer med "ls".
- Om position 2 innehåller ett "w" kan man skriva i filen/mappen. I fallet med mapp betyder detta att vi kan skapa filer i mappen.
- Om position 3 innehåller ett "x" kan man exekvera filen. För en mapp innebär detta att vi kan gå in i mappen med "cd".
2. Ett exempel: games
Vi går tillbaka till utskriften för mappen "games":
[olle@dev1]$ ls -l /usr/local
totalt 32
drwxr-xr-x 2 root root 4096 2007-09-11 17:31 bin
drwxr-xr-x 2 root root 4096 2007-08-06 11:08 etc
drwxr-xr-x 2 root root 4096 2007-08-06 11:08 games
drwxr-xr-x 2 root root 4096 2007-08-06 11:08 include
drwxr-xr-x 3 root root 4096 2007-08-06 12:15 lib
lrwxrwxrwx 1 root root 9 2007-08-06 11:08 man -> share/man
drwxr-xr-x 2 root root 4096 2007-08-06 11:08 sbin
drwxr-xr-x 8 root root 4096 2007-08-06 11:21 share
drwxr-xr-x 2 root root 4096 2007-08-06 11:08 src
|
Vilka rättigheter har användaren "olle" på mappen "games"?
- Owner: "olle" är inte ägare av mappen, det är "root". Därför kan vi ignorera de 3 första flaggorna "rwx".
- Group: "games"-mappen tillhör gruppen "root", och "olle" har inte den gruppen. Därför kan vi ignorera de 3 efterföljande flaggorna "r-x".
- Other: "olle" kan som alla andra användare utnyttja mappen så vad som står i de 3 sista flaggorna är högst relevant. Vi har "r-x" vilket innebär att "olle" kan använda "cd" för att gå in i mappen och "ls" för att lista filer men inte skapa filer i mappen.
Ok, vi kollar:
[olle@dev1]$ cd /usr/local/games
[olle@dev1]$ ls -l
[olle@dev1]$ cat Hej alla > hej.txt
bash: /usr/local/games/hej.txt: Åtkomst nekas
|
3. Ett exempel: secret
Vi skapar en ny mapp med "sudo" (som root) och tar bort alla rättigheter för "Group" och "Other":
[olle@dev1]$ sudo mkdir secret
[olle@dev1]$ sudo chmod 700 secret
[olle@dev1]$ ls -l
totalt 4
drwx------ 2 root root 4096 2007-09-22 13:34 secret
|
Nu ska vi testa att gå in i den:
[olle@dev1]$ cd secret
bash: cd: secret: Åtkomst nekas
[olle@dev1]$ ls secret
ls: secret: Åtkomst nekas
|
Verkar funka.