Linux bestandsrechten

Linux-bestandsrechten - 1.0

De basis van bestandseigendom en machtigingen voor Linux. Leer begrijpen wie de eigenaars zijn van een bestand of directory, hoe de bestandsrechten werken en hoe u ze kunt bekijken, en leer zelf hoe u basisrechten voor bestanden instelt.

Machtigingen en eigendom - waarom? >

Als je geen toegang hebt tot sommige bestanden op je eigen Linux-systeem, komt dat meestal door verkeerd geconfigureerde toegangsrechten voor bestanden. Als je de enige gebruiker van je Linux-box bent, vraag je je misschien af ​​wat het nut is van al deze permissies (of het ontbreken daarvan) die je toegang tot je eigen pinguïn-OS beperken. Voordat u echter uw haar uittrekt, moet u er rekening mee houden dat Linux is ontworpen als een omgeving voor meerdere gebruikers. In een omgeving met meer dan één gebruiker is het cruciaal om een ​​veilig systeem te hebben om te beslissen welke bestanden van jou zijn en wie ermee kan spelen.

Zelfs als u de enige gebruiker op een gewoon desktopsysteem bent, helpen bestandsrechten om uw belangrijke bestanden veilig te houden, zowel voor buitenstaanders als voor uw eigen fouten. 🙂

 

Het eigendom van bestanden begrijpen >

Elk bestand op uw Linux-systeem, inclusief mappen, is eigendom van een specifieke gebruiker en groep. Daarom zijn bestandsmachtigingen apart gedefinieerd voor gebruikers, groepen en anderen.

Gebruiker: De gebruikersnaam van de persoon die eigenaar is van het bestand. Standaard wordt de gebruiker die het bestand maakt eigenaar van het bestand.

Groep: De gebruikersgroep die eigenaar is van het bestand. Alle gebruikers die behoren tot de groep die eigenaar is van het bestand, hebben dezelfde toegangsrechten tot het bestand. Dit is bijvoorbeeld handig als u een project heeft waarvoor een heleboel verschillende gebruikers toegang moeten hebben tot bepaalde bestanden, terwijl andere dat niet kunnen. In dat geval voegt u alle gebruikers toe aan dezelfde groep, zorgt u ervoor dat de vereiste bestanden eigendom zijn van die groep en stelt u de groepsrechten van het bestand dienovereenkomstig in.

Andere: Een gebruiker die niet de eigenaar van het bestand is en niet tot dezelfde groep behoort als het bestand. Met andere woorden, als u een toestemming instelt voor de categorie "overig", heeft dit standaard gevolgen voor alle anderen. Om deze reden praten mensen vaak over het instellen van de 'wereld'-toestemmingsbit terwijl ze bedoelen dat ze de machtigingen voor' andere 'bedoelen.

 

Inzicht in bestandsrechten >

Er zijn drie soorten toegangsrechten op Linux: lezen, schrijven en uitvoeren. Deze machtigingen worden afzonderlijk gedefinieerd voor de eigenaar van het bestand, de groep en alle andere gebruikers.

Lees toestemming. In een normaal bestand betekent het leesbevoegdheidsbit dat het bestand kan worden geopend en gelezen. In een map betekent de leesmachtiging dat u de inhoud van de map kunt vermelden.

Schrijf toestemming. Op een normaal bestand betekent dit dat u het bestand kunt wijzigen, oftewel nieuwe gegevens naar het bestand kunt schrijven. In het geval van een directory betekent de schrijfmachtiging dat u bestanden in de directory kunt toevoegen, verwijderen en hernoemen. Dit betekent dat als een bestand de schrijfmachtiging bit heeft, u de inhoud van het bestand mag wijzigen, maar u mag het bestand alleen hernoemen of verwijderen als de machtigingen van het bestand directory sta toe dat je dat doet.

Voer toestemming uit. In het geval van een gewoon bestand betekent dit dat u het bestand als een programma of een shellscript kunt uitvoeren. Op een directory kunt u met de uitvoeringsmachtiging (ook wel de "zoekbit" genoemd) toegang krijgen tot bestanden in de directory en deze invoeren met de cd commando, bijvoorbeeld. Houd er echter rekening mee dat hoewel de execute-bit u de directory laat openen, u de inhoud ervan niet mag vermelden, tenzij u ook de leesrechten voor die directory hebt.

 

Hoe bestandsrechten te bekijken >

U kunt de toegangsrechten van een bestand bekijken door de lange directorylijst met de ls -l commando. Dit is hoe een lange directoryvermelding eruit zou kunnen zien:

me@puter: /home/writers$ ls -l
total 17
drwxr-xr-x 3 nana writers 80 2005-09-20 21:37 dir
-rw-r----- 1 nana writers 8187 2005-09-19 13:35 file
-rwxr-xr-x 1 nana writers 10348 2005-07-17 20:31 otherfile

Wat levert de uitvoer op ls -l gemeen? De allereerste kolom, degene die eruitziet als een stel mumbo jumbo, toont het bestandstype en de rechten. De tweede kolom toont het aantal links (directory-items die naar het bestand verwijzen), de derde toont de eigenaar van het bestand en de vierde toont de groep waartoe het bestand behoort. De andere kolommen tonen de bestandsgrootte in bytes, de datum en tijd van de laatste wijziging en de bestandsnaam.

De eerste kolom, die de machtigingen van het bestand toont en eruitziet als mumbo jumbo, is onderverdeeld in vier afzonderlijke groepen, hoewel het er zeker niet erg georganiseerd uitziet.

De eerste groep bestaat uit slechts één teken en toont het bestandstype. Bijvoorbeeld, d betekent een map en - betekent een normaal bestand, dus als je naar onze voorbeelduitvoer kijkt, zul je merken dir is een map, terwijl file en otherfile zijn gewone bestanden.

Het eerste personage kan een van deze zijn:

d = map
- = normaal bestand
l = symbolische link
s = Unix domein socket
p = benoemde pijp
c = karakter apparaatbestand
b = apparaatbestand blokkeren

De volgende negen tekens geven de machtigingen van het bestand weer, verdeeld in drie groepen, elk bestaande uit drie tekens. De eerste groep van drie tekens toont de lees-, schrijf- en uitvoeringsrechten voor gebruiker, de eigenaar van het bestand. De volgende groep toont de lees-, schrijf- en uitvoerrechten voor de groep van het bestand. Op dezelfde manier toont de laatste groep van drie tekens de rechten voor anders, alle anderen. In elke groep betekent het eerste teken de leesmachtiging, de tweede schrijfmachtiging en de derde machtiging uitvoeren.

De personages zijn vrij gemakkelijk te onthouden.

r = leesrechten
w = schrijf toestemming
x = toestemming uitvoeren
- = geen toestemming

Wat betekent dit in de praktijk? Laten we een voorbeeld nemen. Herinner je je de denkbeeldige directorylijst die we in het begin hebben gemaakt? De output zag er als volgt uit:

drwxr-xr-x 3 nana writers 80 2005-09-20 21:37 dir
-rw-r----- 1 nana writers 8187 2005-09-19 13:35 file
-rwxr-xr-x 1 nana writers 10348 2005-07-17 20:31 otherfile

Zoals we al opmerkten, dir is een map, omdat de eerste kolom begint met een d. De eigenaar van deze map is de gebruiker nana en de groepseigenaar is writers. De eerste drie karakters, rwx, geef de eigenaar van de directory aan, nana in dit geval heeft volledige toegang tot de map. De gebruiker nana kan de bestanden in die map openen, bekijken en wijzigen. De volgende drie karakters, r-x, geeft aan dat alle gebruikers die behoren tot de groep writers hebben lees- en uitvoeringsrechten voor de map. Ze kunnen naar de directory gaan, bestanden uitvoeren en de inhoud ervan bekijken. Omdat ze echter geen schrijfrechten hebben, kunnen ze geen wijzigingen aanbrengen in de inhoud van de directory. Eindelijk, de laatste drie karakters, r-x, geven aan dat alle gebruikers die dat niet zijn nana of hoor niet bij de groep writers, heb machtigingen in de map gelezen en uitgevoerd.

Wat dacht je van de vriesverse foodbox van  file? Omdat de eerste kolom begint met een -, het bestand is een normaal bestand, eigendom van de gebruiker nana en groep writers, net als de directory in ons voorbeeld. De eerste drie karakters, rw-, geef aan dat de eigenaar de toegang tot het bestand heeft gelezen en geschreven. Volgens de volgende drie karakters, r--, de gebruikers die behoren tot de groep writers kan het bestand bekijken maar niet wijzigen of uitvoeren. De laatste drie karakters, ---, geef aan dat niemand anders toegang heeft tot het bestand.

Op dezelfde manier kunt u zien otherfile is een normaal bestand en de eigenaar heeft volledige toegang, terwijl iedereen het bestand kan lezen en uitvoeren, maar het niet kan wijzigen.

 

Bestandsrechten instellen - symbolische modus >

U kunt bestandsrechten instellen met de chmod opdracht. Zowel de rootgebruiker als de eigenaar van het bestand kunnen bestandsrechten instellen. chmod heeft twee modi, symbolisch en numeriek.

De symbolische modus is vrij gemakkelijk te onthouden. Eerst bepaal je of je permissies instelt voor de gebruiker (u), de groep (g), anderen (o), of alle drie (a). Vervolgens voegt u een machtiging toe (+), verwijdert u deze (-), of wist u de vorige machtigingen en voegt u een nieuwe toe (=). Vervolgens beslist u of u de leesmachtiging (r), schrijfmachtiging (w) of uitvoeringsmachtiging (x) instelt. Als laatste zul je het vertellen chmod welke bestandsrechten u wilt wijzigen.

Laten we een paar voorbeelden geven. Stel dat we een gewoon bestand hebben met de naam testfileen het bestand heeft volledige toegangsrechten voor alle groepen (lange lijst met directory's zou worden weergegeven -rwxrwxrwx als de machtigingen van het bestand).

Wis alle machtigingen maar voeg leesrechten toe voor iedereen:
chmod a=r testfile
Na de opdracht zouden de machtigingen van het bestand zijn -r--r--r--

Uitvoerrechten voor groep toevoegen:
chmod g+x testfile
Nu zouden de machtigingen van het bestand zijn -r--r-xr--

Voeg zowel schrijf- als uitvoeringsrechten toe voor de eigenaar van het bestand. Merk op hoe u meer dan één machtiging tegelijkertijd kunt instellen:
chmod u+wx testfile
Hierna zullen de bestandsrechten zijn -rwxr-xr--

Verwijder de uitvoeringsmachtiging van zowel de eigenaar als de groep van het bestand. Merk nogmaals op hoe u ze beide tegelijk kunt instellen:
chmod ug-x testfile
Nu zijn de machtigingen -rw-r--r--

Bekijk als samenvatting deze snelle referentie voor het instellen van bestandsrechten in de symbolische modus:

Welke gebruiker?
u gebruiker / eigenaar
g groep
o anders
a allen
Wat te doen?
+ voeg deze toestemming toe
- verwijder deze toestemming
= stel precies deze toestemming in
Welke rechten?
r dit artikel lezen
w schrijven
x uitvoeren

 

Hoe bestandsrechten in te stellen - numerieke modus >

De andere modus waarin chmod kan worden gebruikt is de numerieke modus. In de numerieke modus worden de bestandsrechten niet weergegeven door tekens. In plaats daarvan worden ze weergegeven door een octaal getal van drie cijfers.

= lees (r)
2 = schrijven (w)
1 = uitvoeren (x)
0 = geen toestemming (-)

Om de gewenste machtigingsbits te krijgen, tel je de getallen dienovereenkomstig op. De machtigingen rwx zijn bijvoorbeeld 4 + 2 + 1 = 7, rx zou 4 + 1 = 5 zijn en rw zou 4 + 2 = 6 zijn. Omdat u afzonderlijke machtigingen instelt voor de eigenaar, groep en anderen, heeft u een driecijferig nummer nodig dat de machtigingen van al deze groepen vertegenwoordigt.

Laten we een voorbeeld nemen.
chmod 755-testbestand
Dit zou de testfiletoestemming voor -rwxr-xr-x. De eigenaar zou volledige lees-, schrijf- en uitvoerrechten hebben (7 = 4 + 2 + 1), de groep zou machtigingen hebben gelezen en uitgevoerd (5 = 4 + 1), en de wereld zou ook de lees- en uitvoerrechten hebben .

Laten we nog een voorbeeld hebben:
chmod 640-testbestand
In dit geval, testfileDe machtigingen zouden zijn -rw-r-----. De eigenaar zou lees- en schrijfrechten hebben (6 = 4 + 2), de groep zou alleen leesrechten hebben (4) en de anderen zouden geen toegangsrechten hebben (0).

De numerieke modus is mogelijk niet zo eenvoudig als de symbolische modus, maar met de numerieke modus kunt u de bestandsrechten sneller en efficiënter instellen. Deze snelle referentie voor het instellen van bestandsrechten in de numerieke modus kan helpen:

Welk aantal?
0 -
1 -X
2 -W-
3 -wx
4 R-
5 rx
6 rw
7 rwx