Bestandspermissies
wijzigen met de opdracht chmod
|
Er zijn verschillende
manieren om permissies voor bestanden of directory's te wijzigen met
behulp vand e opdracht chmod
Deze opdracht werkt niet een-twee-drie, maar eerder vier-twee-een
Je kan de opdracht chmod tenminste op verschillende manieren gebruiken
Je wilt waarschijnlijk de permissies voor bestanden in je homedirectory
of (als je systeembeheerder bent) essentiele systeembestanden zelf
kunnen instellen
Bij de opdracht chmod wordt de octale (achttallige) notatie gebruikt
om de verschillende permissies in te stellen
Het rijtje 4-2-1 correspondeert met de drie tekens rwx in de permissie-indicator
Dit werkt als volgt: stel je wilt een van je bestanden beschermen,
zodat niemand anders (behalve natuurlijk de root-operator) dit bestand
kan lezen of ernaar kan schrijven
Als je het bestand in eerste instantie aanmaakt, hebben zowel jezelf
als de leden van je groep volledige toegang (lezen en schrijven) tot
het bestand; andere gebruikers kunnen het bestand alleen lezen
Met de wetenschap dat 4-2-1 overeenkomt met rwx en dat de drie verschillende
permissies gelden voor respectievelijk jezelf, je groep en andere
gebruikers, kun je de opdracht chmod teopassen met hetoctale getal
600 om de permissies in te stellen:
|
#
touch eenbestand
# ls -l eenbestand
-rw-rw-r-- 1 msa msa 0
jan 2 17:23 eenbestand
# chmod 600 eenbestand
# ls -l eenbestand
-rw------- 1 msa msa 0
jan 2 17:23 mijnbestand
|
Met deze
opdracht heeft msa als enige volledige toegang tot het bestand: je
kan lezen(4) + schrijven (2) = 6
De andere twee permissies worden 0 o ervoor te zorgen dat zowel de
groep als de overige gebruikers geen enkele toegang hebben
Om de oorspronkelijke permissies weer in te stellen, schakel je lezen
(4) + schrijven (2) = 6 in voor msa en voor de groep: voor de overige
gebruikers schakel je alleen lezen (4) in
Dit resulteert in het octale getal 664:
|
#
chmod 664 eenbestand
# ls -l eenbestand
-rw-rw-r-- 1 msa msa 0
jan 2 17:23 mijnbestand
|
Je kan dit
ook toepassen op directory's zodat anderen bijvoorbeeld alleen de
inhoud van je directory kunnen opvragen, maar geen toegang hebben
tot de bestanden in de directory of juist alleen toegang hebben tot
bestanden in de directory zonder dat ze de inhoud van de directory
kunnen opvragen
Om een directory bijvoorbeeld te beveiligen tegen nieuwschierige blikken
(behalve die van de root-operator) kun je als volgt te werk gaan:
|
#
mkdir temp
# cd temp
# touch bestand1 bestand2 bestand3
#cd ..
# chmod 700 temp
# ls -ld temp
drwx------ 2 msa msa
1024 jan 2 22:50
temp |
Als iemand
anders dan jezelf probeert de inhoud van de directory op te vragen,
verschijnt de volgende boodschap
|
#
ls /home/msa/temp
ls: /home/msa/temp: Permission denied |
Je kan ook
aangeven dat anderen bestanden in de directory mogen lezen, maar dat
ze niet de inhoud van de directory mogen opvragen
Dit doe je door de executable permissie van de directory te wijzigen:
|
#
chmod 701
# ls -ld temp
drwx----x 2 msa msa
1024 jan 2 22:50
temp |
Nu kunnen
andere gebruikers niet de inhoud van de directory opvragen, maar ze
kunnen wel bestanden bekijken waarvan u ze hebt verteld dat ze in
de directory te vinden zijn :
|
#
ls -ld /home/msa/temp
ls: /home/msa/temp: Permission denied
# ls -l /home/msa/temp/bestand1
-rw-rw-r-- 1 msa msa
0 jan 2 22:50 /home/msa/temp/bestand1 |
Je ziet dat
het gebruik van de octale notatie met de opdracht chmod niet erg moeilijk
is
Het is aan jou om te beslissen wie in welke mate toegang heeft tot
wat
De opdracht chmod kent ook het volgende opdrachtregel formaat:
ugoa +-= rwxXstugo
We zullen hier niet verder ingaan op de details van deze notatie (zie
de helppagina van chmod), maar we laten toch enkele voorbeelden zien
met dit formaat; deze voorbeelden hebben hetzelfde resultaat als eerder
gegeven voorbeelden met octale notatie:
|
#ls
-l bestand1
-rw-rw-r-- 1 msa msa
0 jan 2 22:50
bestand1
# chmod go- rwx bestand1
# ls -l bestand1
-rw------ 1 msa msa
0 jan 2 22:50
bestand1 |
Zoals je
ziet, ben je de enige met lees- en schrijftoegang tot dit bestand,
omdat je hebt aangegeven dat jouw groep (g) en anderen (others o)
geen (-) permissie hebben voor het lezen (r), schrijven (w) of uitvoeren
(x)
Op de volgende manier beveilig je een directory tegen pottenkijkers:
|
| #
chmod go-rwx temp |
| Om het laatste
voorbeeld met octale notatie na te volgen zorgen we ervoor dat anderen
wel bestanden in een directory kunnen bekijken, maar niet de inhoud
van de directory kunnen opvragen: |
| #
chmod o+x temp |
|