Hoe werken Linux-bestandsrechten?

banner-01

Als je Linux al een tijdje (en zelfs OS X) gebruikt, ben je waarschijnlijk een “permissions” -fout tegengekomen. Maar wat zijn ze precies en waarom zijn ze nodig of nuttig? Laten we een kijkje nemen.

Gebruikersrechten

Vroeger waren computers enorme machines die ongelooflijk duur waren. Om er het meeste uit te halen, werden meerdere computerterminals aangesloten, waardoor veel gebruikers tegelijkertijd hun werk konden doen. De gegevensverwerking en -opslag gebeurde op de machine, terwijl de terminals zelf niet meer waren dan een manier om gegevens in te zien en in te voeren. Als je erover nadenkt, het is ongeveer hoe we toegang krijgen tot gegevens in de “cloud”; Kijk naar Amazon’s Cloud MP3-systeem, Gmail en Dropbox, en je zult merken dat hoewel wijzigingen lokaal kunnen worden aangebracht, alles op afstand wordt opgeslagen.

terminal

(Afbeelding: Zenith Z-19 “domme” terminal; tegoed: ajmexico)

Om dit te laten werken, moeten individuele gebruikers accounts hebben. Ze moeten een gedeelte van de opslagruimte hebben toegewezen gekregen en ze moeten opdrachten en programma’s kunnen uitvoeren. Iedereen krijgt specifieke “gebruikersrechten”, die dicteren wat ze wel en niet kunnen doen, waar ze op het systeem wel en geen toegang hebben en tot wiens bestanden ze wel en niet kunnen wijzigen. Elke gebruiker wordt ook in verschillende groepen geplaatst, die verdere toegang verlenen of beperken.

Toegang tot bestanden

fout bij het lezen

In deze gekke wereld met meerdere gebruikers hebben we al grenzen gesteld aan wat gebruikers kunnen doen. Maar hoe zit het met waar ze toegang toe hebben? Welnu, elk bestand heeft een reeks rechten en een eigenaar. De aanduiding van de eigenaar, meestal gebonden wanneer het bestand wordt gemaakt, geeft aan tot welke gebruiker het behoort, en alleen die gebruiker kan zijn toegangsrechten wijzigen.

In de wereld van Linux zijn machtigingen onderverdeeld in drie categorieën: lezen, schrijven en uitvoeren. Met “leestoegang” kan men de inhoud van een bestand bekijken, met “schrijftoegang” kan men de inhoud van een bestand wijzigen en met “execute” kan men een reeks instructies uitvoeren, zoals een script of een programma. Elk van deze categorieën wordt toegepast op verschillende klassen: gebruiker, groep en wereld. “Gebruiker” betekent de eigenaar, “groep” betekent elke gebruiker die in dezelfde groep is als de eigenaar, en “wereld” betekent iedereen en iedereen.

geen schrijfperm

Mappen kunnen ook worden beperkt met deze machtigingen. U kunt bijvoorbeeld andere mensen in uw groep toestaan ​​om mappen en bestanden in uw thuismap te bekijken, maar niemand buiten uw groep. U zult waarschijnlijk de “schrijftoegang” tot uzelf willen beperken, tenzij u aan een of ander gedeeld project werkt. U kunt ook een gedeelde map maken waarmee iedereen bestanden in die map kan bekijken en wijzigen.

Machtigingen wijzigen in Ubuntu

GUI

Om de rechten van een bestand waarvan u de eigenaar bent in Ubuntu te wijzigen, klikt u met de rechtermuisknop op het bestand en gaat u naar “Eigenschappen”.

ubuntu-machtigingen

U kunt wijzigen of de eigenaar, groep of anderen kunnen lezen en schrijven, alleen kunnen lezen of niets kunnen doen. U kunt ook een vakje aanvinken om uitvoering van het bestand toe te staan, en dit zal het tegelijkertijd voor de eigenaar, groep en anderen inschakelen.

Opdrachtregel

U kunt dit ook doen via de opdrachtregel. Ga naar een map met bestanden en typ de volgende opdracht om alle bestanden in een lijst te bekijken:

ls -al

sshot-1

Naast elk bestand en elke map ziet u een speciale sectie waarin de machtigingen worden beschreven. Het ziet er zo uit:

-rwxrw-r–

De r staat voor “lezen”, de w staat voor “schrijven” en de X staat voor “uitvoeren”. Mappen beginnen met een “d” in plaats van een “-“. U zult ook opmerken dat er 10 spaties zijn die waarde bevatten. Je kunt de eerste negeren, en dan zijn er 3 sets van 3. De eerste set is voor de eigenaar, de tweede set is voor de groep en de laatste set is voor de wereld.

Om de machtigingen van een bestand of map te wijzigen, kijken we naar de basisvorm van het chmod-commando.

chmod [class][operator][permission] het dossier

chmod [ugoa][+ or –] [rwx] het dossier

Dit lijkt in eerste instantie misschien ingewikkeld, maar geloof me, het is vrij eenvoudig. Laten we eerst eens kijken naar de klassen:

  • u: Dit is voor de eigenaar.
  • g: Dit is voor de groep.
  • o: Dit is voor alle anderen.
  • a: Dit zal de machtigingen voor al het bovenstaande wijzigen.

Vervolgens de operators:

  • +: Het plusteken voegt de volgende machtigingen toe.
  • -: het minteken verwijdert de volgende machtigingen.

Nog steeds bij me? En het laatste gedeelte is hetzelfde als toen we de machtigingen van een bestand controleerden:

  • r: Staat leestoegang toe.
  • w: Staat schrijftoegang toe.
  • x: maakt uitvoering mogelijk.

Laten we het nu samenvoegen. Stel dat we een bestand hebben met de naam “todo.txt” dat de volgende rechten heeft:

-rw-rw-r–

Dat wil zeggen, de eigenaar en de groep kunnen lezen en schrijven, en de wereld kan alleen lezen. We willen de machtigingen voor deze wijzigen:

-rwxr—–

Dat wil zeggen, de eigenaar heeft volledige machtigingen en de groep kan lezen. Dit kunnen we in 3 stappen doen. Eerst voegen we de uitvoeringsmachtiging voor de gebruiker toe.

chmod u + x todo.txt

Vervolgens verwijderen we de schrijfmachtiging voor de groep.

chmod gw todo.txt

Ten slotte verwijderen we de leesrechten voor alle andere gebruikers.

chmod of todo.txt

We kunnen deze ook combineren tot één commando, zoals:

chmod u + x, gw of todo.txt

sshot-2

U kunt zien dat elke sectie wordt gescheiden door komma’s en dat er geen spaties zijn.

Hier zijn enkele handige toestemmingen:

  • -rwxr-xr-x: Eigenaar heeft volledige machtigingen, groep en andere gebruikers kunnen de bestandsinhoud lezen en uitvoeren.
  • -rwxr – r–: Eigenaar heeft volledige rechten, groep en andere gebruikers kunnen alleen bestanden lezen (handig als u het niet erg vindt dat anderen uw bestanden bekijken.
  • -rwx——: Eigenaar heeft volledige rechten, alle anderen hebben er geen (handig voor persoonlijke scripts).
  • -rw-rw—-: Eigenaar en groep kunnen lezen en schrijven (handig voor samenwerking met groepsleden).
  • -rw-r – r–: Eigenaar kan lezen en schrijven, groeperen en andere gebruikers kunnen alleen bestanden lezen (handig voor het opslaan van persoonlijke bestanden op een gedeeld netwerk).
  • -rw ——-: Eigenaar kan lezen en schrijven, alle anderen hebben er geen (handig voor het opslaan van persoonlijke bestanden).

Er zijn een paar andere dingen die je kunt doen met chmod – zoals setuid en setgid – maar ze zijn een beetje diepgaand en de meeste gebruikers hoeven ze toch niet echt te gebruiken.

De root- of supergebruiker en systeembestanden

sshot-3

Tegenwoordig draaien we niet altijd systemen met meerdere gebruikers. Waarom zouden we ons nog steeds zorgen moeten maken over toestemmingen?

Welnu, Unix en zijn afgeleiden – Linux, OS X, onder andere – maken ook onderscheid tussen dingen die door de gebruiker worden beheerd, dingen die worden beheerd door een beheerder of met beheerdersrechten en dingen die door het systeem zelf worden beheerd. Als zodanig hebben dingen die integraal zijn voor het systeem beheerdersrechten nodig om te worden gewijzigd of geopend. Op deze manier verprutst u niets per ongeluk.

In Ubuntu gebruikt u “sudo” of “gksudo” om wijzigingen in systeembestanden aan te brengen om het equivalent van beheerdersrechten te verkrijgen. In andere distributies schakel je over naar “root” of de “super-user” die in feite hetzelfde doet totdat je uitlogt.

Houd er rekening mee dat in beide gevallen het wijzigen van bestandsrechten ertoe kan leiden dat programma’s niet werken, onbedoeld het bestandseigendom veranderen naar de rootgebruiker (in plaats van de eigenaar) en het systeem minder veilig maken (door meer rechten te verlenen). Als zodanig is het raadzaam om de machtigingen voor bestanden – vooral systeembestanden – niet te wijzigen, tenzij dit nodig is of u weet wat u doet.


Bestandsrechten zijn aanwezig om gebruikers een basissysteem van beveiliging te bieden. Als u leert hoe ze werken, kunt u basisdeling instellen in een omgeving met meerdere gebruikers, “openbare” bestanden beschermen en u een idee geven wanneer er iets misgaat met het bezit van systeembestanden.

Denk je dat je dingen gemakkelijker kunt uitleggen? Heeft u een correctie? Wil je terugdenken aan vroeger? Neem een ​​pauze en zet je gedachten neer in de comments.

Nieuwste artikelen

spot_img

Related Stories

Leave A Reply

Vul alstublieft uw commentaar in!
Vul hier uw naam in