web analytics

Linux en Security: Sluit je /home folder af

Print Friendly, PDF & Email

Open-Home-Vertical-Red-FlagWanneer je een Linux Mint of Ubuntu computer deelt met anderen, maak je voor ieder van hen wellicht een eigen account aan denkende dat ieder enkel in zijn eigen persoonlijke map (home folder) kan.
Helaas, driemaal helaas. Standaard staat je home folder open voor iedereen!!

Wanneer je een nieuwe gebruiker aanmaakt, maakt de adduser applicatie een nieuwe home folder aan voor het nieuwe account. Standaard wordt deze nieuwe map aangemaakt in de /home/ map op de root, gevolgd door de naam. Bijvoorbeeld /home/alain

Home folders voor gebruikers worden in Ubuntu en Mint aangemaakt met read/execute rechten voor iedereen en dat zorgt ervoor dat al de andere gebruikers op je systeem zomaar in je home folder kunnen en omgekeerd kan jij in ieders home folder….

Gelukkig kan je de rechten voor je home folder relatief gemakkelijk aanpassen zodat inzage in je persoonlijke gegevens belet wordt. Laat ons eerst eens kijken hoe deze nu ingesteld zijn.

Open een terminal en geef het volgende commando in:

ls -ld /home/alain

waarbij jij natuurlijk [alain] vervangt door je eigen gebruikersnaam.
De bovenstaande opdracht kan je ook schrijven als volgt:

ls –ld ~

Het tekentje ~ noemt men een tilde en het betekent hetzelfde als /home/[jegebruikersnaam].

OPM: De opdracht bevat enkel de letter l (lima) en niet het cijfer 1

Terminal_005

De uitdraai levert volgend resultaat:

drwxr-xr-x 53 alain alain 4096 aug 11 19:21 /home/alain

Bestandrechten kort uitgelegd

Aan het begin van de regel staan 10 tekens drwxr-xr-x die de rechten voor het bestand weergeven.

Een korte herhaling over de rechten hieronder.

  • r staat voor “read”. Voor een map betekent dit dat je ‘er in’ kan. Voor een bestand dat je het kan openen en bekijken.
  • w staat voor “write” : Je kan iets schrijven in de map of aanpassingen bewaren in het geval van een bestand.
  • x staat voor “execute” : Je kan het bestand daadwerkelijk uitvoeren
  • Bij mappen (directories) begint de tekenreeks  met een “d” terwijl het voor bestanden een ““ (plat streepje) is.

De rechten bevatten 10 tekens onderverdeeld als volgt:

drwxr-xr-x
  • Het allereerste teken is of een “d” of een “” om aan te geven of we respectievelijk met een directory of met een bestand te maken hebben
  • De eerste groep van drie staat voor de rechten van de eigenaar. De eigenaar is die gebruiker die het bestand heeft aangemaakt.
  • De tweede groep van drie staat voor de rechten van de groep. De groep bevat alle leden die tot eenzelfde groep behoren. Per default maakt Ubuntu per gebruiker een groep aan. Het is aan jou om je bij andere groepen toe te voegen, of om anderen tot jouw groep toe te laten.
  • De derde groep van drie staat voor de rechten van de wereld, m.a.w. iedereen behalve jou en die geen lid is de groep

Wie de eigenaar is en hoe de groep heet kun je ook afleiden uit het resultaat van onze ls-opdracht.

drwxr-xr-x 53 alain alain 4096 aug 11 19:21 /home/alain
  • De eerste naam is de naam van de eigenaar (owner)
  • De tweede naam is de naam van de groep (group)

Daar iedere gebruiker binnen Ubuntu ook een groep heeft met dezelfde naam, zijn in ons geval beiden gelijk, maar dat moet niet altijd zo zijn.

Onze home folder heeft dus volgende rechten:

  • rwx : lees-, schrijf- en uitvoerrechten voor de eigenaar
  • r-x : lees- en uitvoerrechten voor de groep
  • r-x : lees- en uitvoerrechten voor de wereld

Kortom: iedereen kan alles lezen in mijn home folder, kan software opstarten en enkel ik kan wijzigingen aanbrengen.

De stat opdracht

Om vlot te kunnen werken met de rechten en niet steeds de drie tekens te moeten ingeven, heeft men onder Linux een numeriek systeem gemaakt waarin een getal de combinatie van de drie letters vervangt.
Zo worden de rechten door een octaal getal (cijfers in de reeks 01234567) weergegeven. Om te zien hoe de tekenreeks er in het octaal talstelsel uitziet, gebruiken we de stat opdracht.

Tik het onderstaande in:

stat -c %a /home/alain

waarbij [alain] door jouw gebruikersnaam vervangen dient te worden.

De uitdraai is:  755

Ieder cijfer komt overeen met een groepje van drie tekens. Ik heb dezelfde kleurgroepen gehanteerd zodat we nu gemakkelijk de omzetting kunnen begrijpen.
Er wordt een waarde toegekend aan iedere actie:

  • r heeft als waarde 4
  • w heeft als waarde 2
  • x heeft als waarde 1

Hieronder volgt de lijst van octale equivalenten voor de rechten.

# rechten rwx
7 lees, schrijf, voer uit 111
6 lees, schrijf 110
5 lees, voer uit 101
4 enkel lezen 100
3 schrijf, voer uit 011
2 enkel schrijven 010
1 enkel uitvoeren 001
0 niks 000

Rechten aanpassen

Rechten worden aangepast middels de chmod opdracht. Daar ik de toegang volledig wil ontzeggen aan de groep wereld en de groep ‘groep’ wel mag kijken maar niks uitvoeren moet ik de cijfercombinatie als volgt aanmaken:

  • eigenaar : rwx = 4 + 2 + 1 = 7
  • groep : r = 4
  • wereld : niks = 0

Dan tik in onderstaande regel in :

sudo chmod 740 /home/alain

waarbij [alain] door jouw naam wordt vervangen.

Bekijk nu opnieuw via de ls -ld opdracht het resultaat

Terminal_008

Zoals je kunt zien hebben we als resultaat de volgende rechten.

  • d : een directory
  • rwx : Ik mag alles
  • r– : leden van de groep ‘alain’ mogen enkel kijken (read-only)
  • : al de anderen hebben geen toegang.

Wil ik echter als enige in mijn /home folder dan moet ik de cijfer combinatie veranderen naar 700 (= rwx——)

Voorbeeld

Er is een tweede gebruiker op mijn systeem met als accountnaam ‘bezoeker’ en standaard staat zijn /home/bezoeker open voor iedereen. ‘bezoeker’ wou enkel toegang voor zichzelf voorzien in zijn /home/bezoeker folder, maar aangezien hij geen administrator rechten heeft, kon hij het niet zelf doen, daar het root-wachtwoord nodig is om de sudo opdracht uit te voeren en hij deze niet kent.
Dus heeft gebruiker [bezoeker] aan gebruiker [alain] die wel admin rechten kan oproepen, gevraagd om vanuit zijn terminal de aanpassing gedaan.

Terminal_012

Concreet, als je een PC deelt met zoon of dochter, pas de rechten aan, zodat je toegang hebt tot hun /home folder, en dat zij wel niet in jouw /home folder kunnen. Of ze in elkaars map kunnen hangt dan af van de onderling gemaakte afspraken.

Daarom is het belangrijk om NOOIT je root-wachtwoord aan anderen te geven. Zoals alle belangrijke wachtwoorden plaats je die best in een afgesloten enveloppe en berg je die veilig op.

Access Denied

Als ik als gebruiker [alain] de map /home/bezoeker wil betreden wordt me, na de aanpassingen hierboven te hebben doorgevoerd, de toegang geweigerd daar ik geen lid ben van de groep [bezoeker].

Terminal_010

Gezien ik zo niet in de map bezoekers kan, probeer ik het dan maar eens via sudo, want daar kan ik alles mee doen… of niet soms:

Terminal_013

Je merkt dat ik via ‘sudo cd’ nergens uitkom. De opdracht cd wordt zelfs niet herkend !!! Terwijl sudo ls wel werkt. Wat hebben we nu?

  1. cd is ingebakken in de shell terwijl sudo enkel werkt met uitvoerbare bestanden (executables). Aangezien ls wel een executable is hebben we daar geen probleem.
    Je zou eventueel via sudo sh -c ‘cd dirname’ kunnen proberen en dat zou lukken, maar zodra de opdracht afgelopen is, sta je terug in je oorspronkelijke map.
  2. Indien het mogelijk zou zijn om via sudo te cd-en naar een beschermde map, dan zou je na de opdracht sudo cd ‘folder’ wel als gewone gebruiker in die map staan (in mijn geval als gebruiker [alain]), maar normale gebruikers mogen volgens de rechten niet in die map.

Hoe kan je dan wel oplossen?

Je kan sudo -i gebruiken om je status tot superuser te verhogen. Bijvoorbeeld:

sudo -i
cd /home/bezoeker

Je bent dan ingelogd als root en van dat moment kun je eender welk commando gebruiken om je werk in die map uit te voeren. Eens gedaan met je werk, tik je de opdracht exit in, en je bent terug als normale gebruiker ingelogd.

Terminal_017

Het is nu duidelijk dat [alain] niks kan wegschrijven in de map /home/bezoeker. Enkel [root] kan dat.
Dat betekent ook dat gebruiker [bezoeker] niks kan aanvangen met het nieuwe bestand. De rechten zijn immer -rw-r–r–
Het is dan aan [root] – de eigenaar – om de rechten dermate aan te passen om [bezoeker] toe te laten te werken met het bestand, of hij moet [bezoeker] eigenaar maken van het bestand.

Onder Linux Mint verandert de prompt van alain@desktop /home $ voor een gewone gebruiker naar desktop ~ # voor root.
Het prompt-teken volgt hier ook de conventie dat $ staat voor gewone gebruiker en # voor root.
Een goede prompt met kleurtjes is goud waard om duidelijk aan te geven of je nu als gewone gebruiker of als root werkt.

Via de GUI

In de grafische bestandsbeheerder merk je op dat de map ‘bezoeker’ aantoont middels het kruisje op de map, dat de toegang verboden is. Klikken op de map levert dan ook de verwachte waarschuwing op.

Selectie_011

Beoordeling

2 Reacties

  1. François

    Bedankt Alain voor dit zeer waardevol onderwerp. Alhoewel ik toch zelf al een paar jaartjes Ubuntu en Linux Mint gebruiker ben, had ik hier zelf geen weet van . Zal misschien ook komen omdat ik ook nog nooit meerdere gebruikers aangemaakt heb .

    Reageren
    1. eijie (Auteur bericht)

      Bedankt voor je reactie François,

      het is voor mij ook een leuke ontdekkingstocht in de wondere wereld van Linux en het feit dat ik het met jullie kan delen is de kers op de taart.

      Reageren

Geef een reactie

%d bloggers liken dit: