4.1 Van wie is dit?
Hier bouw je op verder: Permission denied bij cat
Weet je dit niet meer zeker? Lees het terug voordat je verdergaat.
Typ in de oefenterminal ls -l /etc. De -l staat voor long: je krijgt per bestand een hele regel.
-rw-r--r-- 1 root root 318 Mar 26 10:00 passwd
-rw-r----- 1 root shadow 1024 Mar 26 10:00 shadow
Twee regels uit die lijst. Elk bestand op Linux heeft een eigenaar (hier root) en een groep (root of shadow). root is de beheerder van de computer: die mag alles.
De rechten lezen
Vooraan elke regel staan tien tekens. Het eerste zegt wat het is: - voor een bestand, d voor een map (directory). De andere negen zijn drie groepjes van drie:
- | rw- | r-- | r-- |
|---|---|---|---|
| bestand | eigenaar | groep | de rest |
Per groepje:
r(read): lezen;w(write): veranderen;x(execute): uitvoeren als programma, of bij een map: erin gaan;-: dat mag niet.
passwd heeft rw-r--r--: root mag lezen en schrijven, iedereen mag lezen. Daarom lukte cat /etc/passwd in les 2.1.
Voorspel
shadow heeft rw-r-----. Jij bent student, en je zit niet in de groep shadow. Mag je dit bestand lezen?
Klik hier als je het hebt geprobeerd
Nee. Voor "de rest" staat er ---: niets. Dat is de Permission denied uit les 2.1. Alleen root en wie in de groep shadow zit, mag erin kijken. Zo komt geen gewone gebruiker bij de wachtwoorden.
Wie ben jij?
Met id zie je je naam en de groepen waarin je zit:
id
uid=1000(student) gid=1000(student) groups=1000(student)
Je zit alleen in je eigen groep student. Een nieuw bestand maken is schrijven in de map: je zet er een naam bij. Je thuismap Je eigen map, /home/student in de oefenterminal; de prompt kort hem af tot ~.Uitgelegd in 1.1 Je eerste commando'sAlle begrippen is van jou, dus daar mag dat. De map /etc is van root en heeft rwxr-xr-x: alleen de eigenaar heeft de w. Probeer maar:
touch /etc/test.txt
touch: cannot touch '/etc/test.txt': Permission denied
Oefen met kaartjes welk rijtje van ls -l voor wie geldt: Mag dit?. Je docent kan de hand-out printen.
Opdracht 4.1.a: rechten lezen
Lees deze regel en beantwoord de drie vragen.
-rwxr-x--- 1 www-data www-data 1024 Mar 26 10:00 start.sh
- Van wie is het bestand?
- Mag iemand uit de groep
www-datahet uitvoeren? - Mag
studenthet lezen?
Klik hier voor een tip
Knip de tien tekens op: één teken, dan drie keer drie.
Klik hier voor het antwoord
- Van
www-data, de gebruiker van de webserver. - Ja: de groep heeft
r-x, dus lezen en uitvoeren. - Nee: voor de rest staat er
---.studentis niet de eigenaar en zit niet in de groep.
Waarom dit ertoe doet
Een webserver draait niet als root, maar als een eigen gebruiker zoals www-data. Vindt iemand een gat in de website, dan kan hij doen wat www-data mag, en niet meer. Als je in de fullstack-cursus je eigen site online zet, geef je hem om dezelfde reden een eigen gebruiker.
Er gaat iets mis
Permission denied
touch: cannot touch '/etc/test.txt': Permission denied
Oorzaak: jij hebt op die plek niet het recht dat het commando Een opdracht die je in de terminal typt, zoals whoami of ls; na Enter voert de computer hem uit.Uitgelegd in 1.1 Je eerste commando'sAlle begrippen nodig heeft: hier schrijven in een map van root.
Oplossing: werk in je thuismap. Moet het echt in /etc, dan doe je het als beheerder met sudo; dat leer je in 6.1 Programma's installeren. De oefenterminal kent sudo niet.
Cannot open directory
ls: cannot open directory '/root': Permission denied
Oorzaak: de thuismap van root heeft drwx------: alleen root mag erin kijken.
Oplossing: geen. Hier is niets mis: dit is wat rechten doen.
Je kent nu de terminal Het venster waarin je commando's typt en de antwoorden van de computer leest.Uitgelegd in Linux: zo werkt deze cursusAlle begrippen. Vanaf hier werk je in Linux op je eigen computer: 5.1 WSL installeren.