Meester Linux-machtigingen: Een Grondige Verkenning van Chmod en Chown

Heb je jezelf ooit verstrikt gevonden in de verwarrende wereld van Linux-machtigingen? Als je nog steeds afvraagt wie mag lezen, schrijven of uitvoeren wat, dan ben je hier aan het juiste adres. Ontcijfer de ingewikkelde kunst van Linux-machtigingen, met speciale aandacht voor het krachtige duo: `chmod` en `chown`!

In deze tutorial rust je jezelf uit met de vaardigheden om toegang tot je bestanden en mappen zelfverzekerd te beheren.

Rol nu die mouwen op en verover Linux-machtigingen als een kampioen!

Vereisten

Voordat je aan deze diepe duik in Linux-machtigingen begint, zorg ervoor dat je een Linux-machine hebt om de commando’s `chmod` en `chown` onder de knie te krijgen. Deze tutorial maakt gebruik van Ubuntu 22.04 LTS (Jammy Jellyfish).

Begrip van de Commando’s `chmod` en `chown`

In de wereld van Linux-machtigingen hebben de commando’s `chmod` en `chown` aanzienlijke macht. Het begrijpen van hoe je deze commando’s effectief kunt gebruiken, is cruciaal voor elke Linux-gebruiker, van beginners tot ervaren beheerders.

Beide commando’s bieden vele manieren om je Linux-systeem te beheren, maar hier zijn de basisprincipes van wat elk kan doen:

  • chmod – Dit commando is de sleutel tot het beheren van bestands- en mapmachtigingen in Linux, waarmee je kunt specificeren wie een bestand mag lezen, schrijven en uitvoeren. Door een combinatie van symbolen en numerieke codes te gebruiken, kun je toegang verlenen of beperken voor gebruikers, groepen en anderen.
  • chown – Met dit commando kunt u de eigendom van bestanden en mappen wijzigen. Dit commando is onmisbaar wanneer u administratieve controle moet overdragen of de associatie tussen een bestand en een gebruiker/groep wilt wijzigen.

Of het nu gaat om het beschermen van gevoelige gegevens of het stroomlijnen van toegang voor een team, deze commando’s zijn uw betrouwbare metgezellen in de wereld van Linux-bestandsbewerkingen.

Lees verder en duik nog dieper in de complexiteiten van deze commando’s.

Bestanden Lijsten en Machtigingen Bekijken

Voordat u machtigingen en eigendom wijzigt met de chmod en chown commando’s, is de eerste stap het lijsten van bestanden en het bekijken van hun machtigingen.

Net als het vinden van een boek in een bibliotheek, zult u in Linux vaak een lijst van bestanden moeten bekijken samen met hun bijbehorende machtigingen. Deze kennis is cruciaal voor effectief bestandsbeheer.

Om de machtigingen van een bestand of map te bekijken:

Open een terminal en voer het volgende ls commando uit om alle bestanden en mappen in de huidige werkmap in een lang formaat (-l) te tonen.

ls -l

Het lange formaat biedt gedetailleerde informatie over elk bestand of elke map, zoals hieronder getoond.

Deze informatie omvat machtigingen, aantal koppelingen, eigenaar, groep, grootte en wijzigingstijd. Maar op dit moment richt u zich op de bestandsmachtigingen.

Viewing a list of files and directories

Drie belangrijke machtigingen beheersen elk bestand en elke map: lezen (r), schrijven (w) en uitvoeren (x). Elk bepaalt hoe gebruikers omgaan met de inhoud van elk bestand en elke map.

Bovendien wordt elke van deze machtigingen toegepast op drie verschillende categorieën van eigendom: eigenaar, groep en anderen (gebruikers die noch eigenaar zijn, noch lid zijn van de groep).

De volgende illustratie toont elk onderdeel van bestandsmachtigingen:

  • Het eerste teken geeft aan of het een bestand () of een map (d) is.
  • Het eerste deel (rw-) – Geeft de eigenaar lees- en schrijfmachtigingen, maar niet uitvoeren.
  • Het tweede deel (rw-) – Verleent de groep lees- en schrijfmachtigingen, maar niet uitvoeren.
  • Het laatste deel (r–) – Staat anderen toe om te lezen maar niet te schrijven of uit te voeren.
Illustrating file permissions

Machtigingen wijzigen via het chmod commando: Symbolische Modus

Uw begrip van bestandsmachtigingen uitbreiden? Duik in een krachtige tool voor het aanpassen van machtigingen. Stel u voor dat u precies kunt instellen wie toegang heeft tot, wijzigt of een bestand of map uitvoert. Het chmod commando (wijzig modus) geeft u de macht om controle te nemen over uw Linux-systeem.

Wanneer u een flexibele en expressieve manier nodig heeft om de toegang tot uw bestanden en mappen precies te regelen, zal de symbolische modus dat voor u doen.

Om machtigingen te wijzigen met behulp van het chmod commando via de symbolische modus, volg deze stappen:

1. Voer de onderstaande who-opdracht uit om een nieuw bestand (>) met de naam user.txt te maken als een niet-bevoorrechte gebruiker, met een lijst van momenteel ingelogde gebruikers op uw Linux-machine.

Deze opdracht geeft geen uitvoer op het terminalvenster, maar u zult de bestandsrechten in de volgende stap verifiëren.

who > user.txt

2. Voer vervolgens de onderstaande opdracht uit om de rechten voor het bestand user.txt te bekijken.

ls -l user.txt

Hieronder ziet u de standaardrechten van het bestand, de eigenaar, de dag en maand van creatie en de bestandsnaam.

Let op de huidige bestandsrechten, want u zult later een vergelijking maken. Uw focus ligt nu op de gebruikersrechten (rw-).

Viewing the file’s default permissions

3. Voer nu de volgende opdracht uit om de schrijf (w) toestemming voor de eigenaar (u) te verwijderen, waarbij elke andere toestemming voor andere categorieën ongewijzigd blijft.

De onderstaande tabel geeft weer wat elk symbool vertegenwoordigt:

User Symbol Details Operation Symbol Details Permission Symbol Details
u Owner + Add permissions r Read
g Group Remove permissions w Write
o Others = Set permissions explicitly x Execute

Als het gelukt is, heeft de chmod-opdracht geen uitvoer op het terminalvenster, wat gedurende deze tutorial van toepassing is.

chmod u-w user.txt

4. Na het wijzigen van de rechten, voer de onderstaande opdracht uit om de rechten van het bestand user.txt te bekijken.

ls -l user.txt

Vergelijk de bestandsrechten die u hebt genoteerd in stap twee (rw-) met die hieronder. Merk op dat de eigenaar (u) nu alleen leestoestemming heeft (r–).

Viewing modified owner permission

5. Voer nu elke opdracht hieronder uit om het volgende uit te voeren:

  • Voeg (+), schrijf (w) en voer (x) machtigingen toe voor de eigenaar (u) op hetzelfde user.txt bestand.
  • Bekijk de informatie van het user.txt bestand om de gewijzigde machtigingen te controleren.
chmod u+wx user.txt
ls -l user.txt

Zoals hieronder getoond, heeft de gebruiker nu lees-, schrijf- en uitvoermachtigingen (rwx) voor het user.txt bestand.

Viewing modified owner permissions

6. In plaats van toe te voegen, voer de onderstaande chmod opdracht uit om het volgende te verwijderen (-):

  • Uitvoermachtiging (x) voor de eigenaar (u).
  • Schrijfmachtiging (w) voor de groep (g).
  • Alle machtigingen (rwx) voor anderen (o).

Deze opdracht stelt je in staat om machtigingen tegelijkertijd van verschillende categorieën te verwijderen met één enkele opdracht.

Deze keer vertelt de -v optie aan chmod om een bericht weer te geven over de wijzigingen die zijn aangebracht door de bewerking.

chmod -v u-x,g+w,o-rwx user.txt
Viewing modified permissions for owner, group, and others

7. Voer vervolgens de volgende opdracht uit om de volgende bewerkingen uit te voeren:

  • Voeg (+) leesmachtigingen (r) toe voor alle categorieën.
  • Verwijder (-) schrijf- en uitvoermachtigingen (wx) voor alle (a) categorieën.
chmod a+r,a-wx user.txt

8. Voer nu de onderstaande opdracht uit om de bijgewerkte machtigingen van het user.txt bestand te bekijken.

ls -l user.txt
Viewing updated permissions for all categories

? Als alternatief kunt u dezelfde machtiging voor alle drie de categorieën (gebruiker, groep en anderen) aanpassen met de volgende opdrachten:

chmod ugo-r – Verwijdert (-) leesmachtigingen (r) voor alle drie categorieën (ugo).

chmod ugo+r – Voegt (+) leesmachtigingen (r) toe voor alle drie categorieën (ugo).

9. Voer tot slot de onderstaande opdrachten uit om het volgende uit te voeren:

  • chmod – Stelt (=) lees- en schrijfmachtigingen in voor de eigenaar en groep, en verwijdert de machtigingen van anderen (o=).
    Het symbool = stelt je in staat om machtigingen expliciet in te stellen en eventuele bestaande machtigingen te overschrijven. Als er geen machtigingen worden gespecificeerd na het symbool =, worden alle machtigingen voor die categorie verwijderd.
  • ls – Bekijk de wijzigingen die je hebt aangebracht in de machtigingen van het bestand user.txt.
chmod ug=rw,o= user.txt
ls -l user.txt
Viewing the modified permissions set

Aanpassen van toegangsrechten met behulp van het chmod-commando: Octale modus

Stel je voor dat je de mogelijkheid hebt om snel en nauwkeurig machtigingen in te stellen voor je bestanden zonder de complexiteit van symbolische notatie. Octale modus (octale notatie) wordt je nieuwe favoriete methode voor het beheren van machtigingen.

In octale modus (octale notatie) worden machtigingen weergegeven met een vier- of driecijferig getal, van 0 tot 7. Elk getal komt overeen met een specifieke reeks machtigingen voor de eigenaar, groep en anderen, zoals volgt:

  • Lezen (r) = 4
  • Schrijven (w) = 2
  • Uitvoeren (x) = 1
  • Geen machtigingen (-) = 0

Om te zien hoe octale modus werkt bij het beheren van bestandsmachtigingen, voer deze stappen uit:

1. Voer het onderstaande chmod-commando uit om de volgende machtigingen (664) toe te voegen aan het bestand user.txt:

  • Eigenaar – lezen (4) + schrijven (2) + uitvoeren (0) = 6
  • Groep – lezen (4) + schrijven (2) + uitvoeren (0) = 6
  • Anderen – lezen (4) + schrijven (0) + uitvoeren (0)= 4

Bij het gebruik van een viercijferig nummer met het chmod-commando voor bestandsmachtigingen in Linux, vertegenwoordigt het leidende cijfer (meest links) speciale machtigingen, zoals setuid, setgid en sticky bit. De volgende drie cijfers vertegenwoordigen respectievelijk de standaardmachtigingen voor de eigenaar, groep en anderen.

Maar bij het gebruik van een driecijferig nummer vertegenwoordigt het eerste cijfer de machtigingen van de eigenaar van het bestand (u), het tweede voor de groep van het bestand (g) en het laatste voor anderen (o).

In veel gevallen, vooral wanneer er geen speciale machtigingen worden behandeld, zie je mogelijk alleen de notatie van drie cijfers. De leidende nul, die octale notatie aangeeft, kan worden geïmpliceerd en dus weggelaten. Zoals in het onderstaande voorbeeld, in plaats van 0664, gebruik je 664.

chmod 664 user.txt

2. Voer vervolgens het onderstaande commando uit om de machtigingen voor het bestand user.txt weer te geven.

ls -l user.txt

In de onderstaande uitvoer kun je zien dat de ingestelde machtigingen voor het bestand user.txt zijn in symbolische modus, wat equivalent is aan 664 in octale modus.

Viewing permissions modified via octal mode

3. Voer nu het stat-commando hieronder uit om een uitgebreide reeks statistieken over het user.txt-bestand te bekijken, inclusief de machtigingen in de symbolische en octale modi.

stat user.txt

Op het Toegang-eigenschap, zoals hieronder weergegeven, zie je de octale en symbolische modus die geassocieerd is met de bestandsmachtigingen van het user.txt-bestand.

Met deze informatie verbeter je je begrip van het aanpassen van machtigingen met behulp van de octale modus.

Viewing the octal and symbolic representations of permissions

Bestandseigenaarschap wijzigen met het chown-commando

Hoewel machtigingen bepalen welke acties kunnen worden uitgevoerd op een bestand of map, kun je specificeren wie het recht heeft om deze machtigingen in te stellen of te wijzigen door het eigendom te wijzigen.

Het chown-commando (wijzig eigenaar) is het primaire commando voor het beheren van het eigendom van bestanden en mappen. Net als het chmod-commando is het chown-commando een commando dat alleen door root kan worden uitgevoerd – alleen de rootgebruiker kan het eigendom van een bestand of map wijzigen.

Om het eigendom te beheren met het chown-commando, ga je verder met de onderstaande stappen:

1. Voer de onderstaande commando’s uit om een gebruiker (useradd) met de naam bill te maken en een sterk wachtwoord te geven.

Je moet meer dan één gebruiker op je lokale machine hebben, anders dan de standaardgebruiker, dat ben jij, om te zien hoe het wijzigen van eigendom werkt.

sudo useradd bill
sudo passwd bill
Adding a user and updating user password

2. Voer vervolgens elk van de onderstaande commando’s uit, schrijf een lijst van momenteel ingelogde gebruikers (who) naar een bestand genaamd new.txt als een niet-bevoegde gebruiker, en bekijk (ls) de eigenaar en machtigingen ervan.

who > new.txt
ls -l  new.txt

Hieronder toont de uitvoer dat het bestandseigenaar is mercy.

Viewing the owner of the new.txt file

3. Met de eigenaar geverifieerd, voer het chown commando hieronder uit om de eigenaar van het bestand new.txt te veranderen naar bill.

Net als het chmod commando geeft het chown commando geen uitvoer, maar je zult de eigenaarswijziging in de volgende stap verifiëren.

sudo chown bill new.txt

4. Voer nu het volgende commando uit om (ls) de nieuwe eigenaar van het bestand new.txt te bekijken.

ls -l  new.txt

De uitvoer hieronder bevestigt dat je met succes de eigenaar van het new.txt bestand hebt gewijzigd naar bill, die nu controle en autoriteit heeft over dat bestand.

Viewing the new owner of the new.txt file

Het Afdwingen van het chown Commando om Groepseigenaarschap te Wijzigen

In het Linux-bestandssysteem is elk bestand en elke map niet alleen geassocieerd met een individuele eigenaar, maar ook met een groep. Net zoals een enkel instrument dat niet goed gestemd is de hele ensemble kan verstoren, kan incorrect eigenaarschap leiden tot mogelijke problemen.

Moet je je zorgen maken? Niet echt. Groepsassociatie maakt een gelaagde aanpak van bestandsmachtigingen mogelijk. Deze aanpak maakt het mogelijk dat meerdere gebruikers samenwerken en toegang delen op basis van groepslidmaatschap.

Om de groepseigenaar aan te passen, volg de onderstaande stappen:

1. Voer de onderstaande opdracht uit om de groep te bekijken die is gekoppeld aan het bestand new.txt.

ls -l  new.txt
Viewing the group associated with the new.txt file

2. Voer vervolgens de onderstaande opdrachten uit, die geen uitvoer geven maar het volgende uitvoeren:

  • Maak een groep (groupadd) genaamd developers.
  • Wijzig de groepseigenaar (chown) van het bestand new.txt naar developers.
sudo groupadd developers
sudo chown :developers new.txt

? Als alternatief, in plaats van een individuele benadering, gebruik de volgende opdrachten om recursief de eigenaar en groepseigenaar van een bestand of een hele map te wijzigen.

sudo chown -R john:finance-group user.txt

sudo chown -R john:finance-group ~/Desktop

3. Voer nu de volgende opdracht opnieuw uit om de nieuwe groepseigenaar van het bestand (ls) new.txt te bekijken.

ls -l  new.txt

Hieronder bevestigt de uitvoer dat je succesvol de groepseigenaar van het bestand new.txt hebt gewijzigd naar developers.

Viewing the new group ownership of the new.txt file

Bestandseigenaar wijzigen via numerieke UID en GID

Terwijl gebruikersnamen en groepsnamen een menselijke leesbare manier bieden om bestandseigenaren te identificeren, zijn elke gebruiker en groep ook geassocieerd met unieke numerieke identificatoren.

Deze unieke numerieke identificatoren zijn gebruikers-ID (UID) en groeps-ID (GID). Ze bieden een ondubbelzinnige manier om bestandseigenaarschap in te stellen in omgevingen met overlappende of vergelijkbare gebruikers- en groepsnamen.

Om de eigenaar te wijzigen met behulp van numerieke UID’s en GID’s, voer deze stappen uit:

1. Voer de onderstaande opdracht uit om informatie (ls) over het bestand new.txt weer te geven.

De -n-optie vertelt het ls-commando om numerieke UID’s en GID’s weer te geven in plaats van deze om te zetten naar hun overeenkomstige gebruikers- en groepsnamen.

ls -n new.txt

Noteer de UID en GID die zijn gekoppeld aan het new.txt-bestand, want je hebt ze nodig voor vergelijkingen in de volgende stap.

Viewing the UID and GID associated with the new.txt file

2. Voer vervolgens de volgende getent-opdrachten uit om de UID en GID van de gebruiker en groep op te halen die je wilt instellen voor de eigenaar van je bestand.

Zorg ervoor dat je <gebruikersnaam> en <groepsnaam>-placeholders vervangt door je gewenste gebruikersnaam en groepsnaam.

getent passwd <username>
getent group <groupname>

Noteer de UID (bijv. 1002) en GID (bijv. 1005) in de volgende uitvoer, want je hebt ze nodig om de eigendom in de volgende stap te wijzigen.

Standaard wordt wanneer een gebruiker wordt aangemaakt in Linux ook een groep met dezelfde naam als de gebruiker aangemaakt. Deze groep dient als de primaire groep van de gebruiker en wordt automatisch aan deze primaire groep toegevoegd.

Dus het GID voor de gebruiker john verschilt van het GID van de finance-groep. Tenzij de gebruiker expliciet aan de groep wordt toegevoegd, blijven hun respectieve GID’s verschillend.

Viewing UID and GID for user john and group finance

3. Voer vervolgens de volgende opdracht uit om de eigenaar en groepseigenaar van het new.txt-bestand te wijzigen. Zorg ervoor dat je 1002 en 1005 vervangt door de waarden die je hebt genoteerd in stap twee.

? Merk op dat het gebruik van numerieke UIDs en GIDs minder leesbaar kan zijn dan gebruikersnamen en groepsnamen. Zorg er dus voor dat je de juiste nummers gebruikt om onbedoelde wijzigingen te voorkomen.

sudo chown 1002:1005 new.txt

4. Ten slotte, voer de onderstaande opdracht opnieuw uit om informatie (ls) over het bestand new.txt weer te geven en controleer de wijzigingen in de eigenaar van het bestand.

ls -n new.txt

Vergelijk de UID en GID die je in stap één hebt genoteerd met de onderstaande. Let op dat de nieuwe bestandseigenaar is gewijzigd van 1001:1003 naar 1002:1005.

Verifying the new UID and GID for the new.txt file

Conclusie

Je bent zojuist begonnen aan een uitgebreide verkenning van Linux-machtigingen, waarbij je de controle hebt over cruciale commando’s zoals chmod en chown. Gedurende deze tutorial ben je bedreven geworden in het aanpassen van machtigingen met symbolische en octale modi.

Je hebt ook de vaardigheden verworven om bestandseigendom en groepsopdrachten te beheren, zowel op naam als via numerieke UID en GID. Met deze nieuw verworven expertise in chmod en chown heb je nu krachtige tools in handen om toegang en eigendom binnen je Linux-systeem te regelen.

Maar waarom versterk je je Linux-vaardigheden niet verder? Overweeg misschien om dieper in te gaan op geavanceerde toegangsbeheermethoden, waaronder Access Control Lists (ACL’s)? Streef naar nog nauwkeuriger controle over bestands- en mapmachtigingen!

Source:
https://adamtheautomator.com/chmod-and-chown/