4Jul

Hoe werken Linux-bestandsmachtigingen?

Als je Linux al een tijdje( en zelfs OS X) gebruikt, kom je waarschijnlijk een "permissies" -fout tegen. Maar wat zijn ze precies en waarom zijn ze nodig of nuttig? Laten we een kijkje nemen binnenin.

Gebruikersrechten

Vroeger waren computers enorme machines die ongelooflijk duur waren. Om het meeste uit hen te halen, werden meerdere computerterminals aangesloten, waardoor veel gebruikers tegelijkertijd hun werk konden doen. Gegevensverwerking en opslag gebeurde op de machine, terwijl de terminals zelf weinig meer waren dan een manier om gegevens te bekijken en in te voeren. Als je erover nadenkt, is het ongeveer hoe we toegang hebben tot gegevens over de "cloud";kijk naar Amazon's Cloud MP3-systeem, Gmail en Dropbox, en je zult merken dat hoewel veranderingen lokaal kunnen worden aangebracht, alles op afstand wordt opgeslagen.

( Afbeelding: Zenith Z-19 "domme" terminal; credit: ajmexico)

Om dit te laten werken, moeten individuele gebruikers over accounts beschikken. Ze moeten een gedeelte van het opslaggebied toegewezen krijgen en ze moeten de mogelijkheid krijgen om commando's en programma's uit te voeren. Iedereen krijgt specifieke 'gebruikersrechten', wat dicteert wat ze wel en niet kunnen doen, waar ze op het systeem terechtkomen en waartoe ze geen toegang hebben en van wie ze bestanden wel en niet kunnen wijzigen. Elke gebruiker wordt ook in verschillende groepen geplaatst, die verdere toegang verlenen of beperken.

File Access

In deze gekke multi-user wereld 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 set machtigingen en een eigenaar. De eigenaar-aanduiding, 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 opgesplitst in drie categorieën: lezen, schrijven en uitvoeren."Lezen" toegang geeft iemand de mogelijkheid om de inhoud van een bestand te bekijken, "schrijven" toegang maakt het mogelijk om de inhoud van een bestand te wijzigen, en "uitvoeren" laat toe om een ​​reeks instructies uit te voeren, 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 zich in dezelfde groep als de eigenaar bevindt, en "wereld" betekent iedereen en iedereen.

-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 niet iedereen buiten uw groep. Waarschijnlijk wilt u de "schrijf" -toegang beperken tot alleen uzelf, tenzij u aan een gedeeld project van een of andere soort werkt. U kunt ook een gedeelde map maken waarmee iedereen bestanden in die map kan bekijken en wijzigen.

Rechten 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".

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

Opdrachtregel

Dit kunt u ook doen via de opdrachtregel. Ga naar een map die bestanden bevat en typ de volgende opdracht om alle bestanden in een lijst weer te geven:

ls -al

Naast elk bestand en elke map, ziet u een speciale sectie waarin de machtigingen worden geschetst. Het ziet er als volgt uit:

-rwxrw-r-

De r staat voor "lezen", de w staat voor "write" en de x staat voor "execute." Directories starten met een "d "in plaats van een" - ".Je zult ook opmerken dat er 10 spaties zijn die waarde houden. Je kunt de eerste negeren en dan zijn er 3 sets van 3. De eerste set is voor de eigenaar, de tweede set voor de groep en de laatste set voor de wereld.

Laten we de basisvorm van de opdracht chmod bekijken om de machtigingen van een bestand of map te wijzigen.

chmod [class] [operator] [permissie] bestand

chmod [ugoa] [+ or -] [rwx] bestand

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

  • u: dit is voor de eigenaar.
  • g: dit is voor de groep.
  • o: Dit is voor alle anderen.
  • a: hiermee worden toestemmingen voor al het bovenstaande gewijzigd.

Volgende, de operatoren:

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

Nog steeds met mij? En de laatste sectie is hetzelfde als toen we de rechten van een bestand controleerden:

  • r: hiermee kan leestoegang worden verkregen.
  • w: biedt schrijftoegang.
  • x: staat uitvoering toe.

Laten we het nu samen leggen. Laten we zeggen dat we een bestand hebben met de naam "todo.txt" met de volgende rechten:

-rw-rw-r-

Dat wil zeggen, de eigenaar en groep kunnen lezen en schrijven en de wereld kan alleen lezen. We willen de rechten hierop wijzigen:

-rwxr--

Dat wil zeggen, de eigenaar heeft volledige rechten en de groep kan lezen. We kunnen dit 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 g-w todo.txt

Ten slotte zullen we de leesrechten voor alle andere gebruikers verwijderen.

chmod o-r todo.txt

We kunnen deze ook combineren in één commando, als volgt:

chmod u + x, g-w, o-r todo.txt

Je kunt zien dat elke sectie gescheiden is door komma's en dat er geen spaties zijn.

Hier zijn enkele bruikbare toestemmingen:

  • -rwxr-xr-x: Eigenaar heeft volledige rechten, groep en andere gebruikers kunnen bestandsinhoud lezen en uitvoeren.
  • -rwxr-r-: Eigenaar heeft volledige rechten, groeps- en andere gebruikers kunnen alleen bestand lezen( handig als je het niet erg vind dat anderen je bestanden bekijken.)
  • -rwx--: Eigenaar heeft volledige rechten, alle anderen hebben geen rechten( nuttigvoor persoonlijke scripts.)
  • -rw-rw--: Eigenaar en groep kunnen lezen en schrijven( nuttig voor samenwerking met groepsleden).
  • -rw-r-r-: Eigenaar kan lezen en schrijven, groeperen en andere gebruikers kunnen alleenlees bestand( handig voor het opslaan van persoonlijke bestanden op een gedeeld netwerk)
  • -rw ---: Eigenaar kan lezen en schrijven, alle anderen hebben geen( handig voor het opslaan van persoonlijke bestanden).

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

De root- of supergebruikers- en systeembestanden

Tegenwoordig gebruiken we niet altijd systemen diehebben meerdere gebruikers. Waarom zouden we ons nog steeds zorgen maken over permissies?

Nou, Unix ende afgeleiden ervan - Linux, OS X, onder andere - maken ook een onderscheid tussen dingen die door de gebruiker worden uitgevoerd, dingen die door een beheerder worden uitgevoerd of met beheerdersrechten, en dingen die door het systeem zelf worden uitgevoerd. Als zodanig hebben dingen die integraal zijn voor het systeem, beheerdersrechten nodig om te worden gewijzigd of gebruikt. Op deze manier verprut je niets per ongeluk.

In Ubuntu, om wijzigingen aan te brengen in systeembestanden gebruik je "sudo" of "gksudo" om het equivalent van beheerdersrechten te krijgen. In andere distributies schakelt u over naar "root" of de "supergebruiker" die feitelijk hetzelfde doet totdat u uitlogt.

Houd er rekening mee dat onder beide omstandigheden het wijzigen van bestandsrechten kan leiden tot programma's die niet werken, onbedoeld het wijzigen van het bestandseigendom naar de rootgebruiker( in plaats van de eigenaar) en het systeem minder veilig maken( door meer machtigingen te verlenen).Daarom is het aan te raden om de machtigingen voor bestanden - met name systeembestanden - niet te wijzigen, tenzij dat nodig is of als u weet wat u doet.

Bestandsrechten zijn aanwezig om een ​​basissysteem van beveiliging onder gebruikers te bieden. Als u leert hoe ze werken, kunt u eenvoudig delen in een omgeving met meerdere gebruikers instellen, "openbare" bestanden beschermen en u een idee geven wanneer er iets misgaat met het eigendom van systeembestanden.

Denkt u dat u dingen eenvoudiger kunt uitleggen? Heb je een correctie? Wil je terugdenken aan de oude tijd? Neem een ​​pauze en zet uw gedachten neer in de commentaren.