Als u een Linux-gebruiker bent, of een webmaster die uw eigen website beheert (die waarschijnlijk op een Linux-server wordt gehost), zult u zeker een situatie tegenkomen wanneer u probeert een bestand te uploaden of een document aan te passen en de foutmelding " U doet niet over de rechten om het bestand naar de map te uploaden ". En na wat googelen is de oplossing vaak net zo eenvoudig als het instellen van de bestandsmachtiging op "775" of "777". Dus wat betekent "777" precies? En waarom moet het '7' zijn, en niet '8' of '9'?

Gerelateerd : Hoe bestanden hernoemen in Linux

Bestandsrechten begrijpen

Unix-systemen (inclusief Linux en Mac OS X) worden geleverd met een bestandscontrolemechanisme om te bepalen wie toegang heeft tot een bepaald bestand of een specifieke map en welke acties zij kunnen ondernemen. Het bestandsbesturingsmechanisme bestaat uit twee delen, namelijk klassen en machtigingen . Klassen bepalen wie toegang heeft tot het bestand, terwijl de machtigingen bepalen wat voor soort actie de gebruiker kan uitvoeren voor het bestand.

Er zijn drie klassen: eigenaar, groep, anderen.

  • De eigenaar is meestal de maker van de bestanden / mappen. In Linux zijn bestanden of mappen die u in uw Home-directory hebt gemaakt, meestal in uw bezit, tenzij u het eigendom specifiek wijzigt.
  • De groep bevat een groep gebruikers die dezelfde machtigingen en gebruikersrechten delen.
  • Anderen betekent het grote publiek.

Wat betreft machtigingen, zijn er 3 soorten acties die u kunt uitvoeren op een bestand / map. U kunt lezen, schrijven of uitvoeren .

  • Lezen - u kunt het bestand alleen bekijken, maar de inhoud van het bestand niet wijzigen. Wanneer toegepast op Map, kunt u alleen de bestanden in de map bekijken, maar u kunt bestanden niet verwijderen uit of toevoegen aan de map.
  • Schrijven - u kunt het bestand bewerken en wijzigen. Voor mappen kunt u bestanden in de map verwijderen en toevoegen.
  • Execute - Execute wordt voornamelijk gebruikt wanneer u het bestand moet uitvoeren (vaak gebruikt wanneer u een script moet uitvoeren).

Wanneer u de klassen en de machtigingen combineert, kunt u bepalen wie toegang heeft tot het bestand en welke acties zij kunnen uitvoeren.

De eigenaar heeft bijvoorbeeld meestal alle machtigingen (lezen, schrijven en uitvoeren) om toegang tot het bestand te krijgen. Als u niet de eigenaar van het bestand / de map bent, moet u het eigendom van het bestand wijzigen in uw naam of de rechten van Groep of anderen wijzigen om te lezen, te schrijven of uit te voeren. Als u in een webserver geen bestand kunt uploaden, komt dit waarschijnlijk omdat u niet de eigenaar van de doelmap bent of als u niet voldoende rechten krijgt om bestanden aan de map toe te voegen.

Hoe gaat het met het nummer?

Met het basisbegrip van de klassen en machtigingen, laten we ons er verder in verdiepen en zien hoe de "777" of "775" tot stand is gekomen.

Elk bestand en elke map bevat 8-bits gegevens die de machtigingen bepalen. Op zijn basis binaire vorm, zal het "000" zijn, wat betekent dat geen toestemmingen van welke vorm dan ook worden verleend. Wanneer u een "Lees" -machtiging instelt, zal het 4-bit aan de gegevens toevoegen, waardoor het "100" (in binair formaat) of een "4" in het gebruikelijke decimale formaat wordt. Als u een machtiging "Schrijven" instelt, wordt 2-bits aan de gegevens toegevoegd, waardoor het "010" en "2" in decimale vorm wordt. Ten slotte voegt het instellen van een "Execute" -machtiging 1-bit toe aan de data, wat resulteert in "001", of "1" in decimale vorm. In het kort:

  • Lezen komt overeen met '4'.
  • Schrijven is gelijk aan '2'.
  • Execute is gelijk aan '1'

Wanneer we machtigingen willen instellen, tellen we het aantal op. Als u bijvoorbeeld de machtigingen voor lezen en schrijven wilt instellen, gebruiken we '6' (4 + 2) voor de machtiging. Voor lezen, schrijven en uitvoeren gebruiken we '7' (4 + 2 + 1) voor de toestemming. Dit is de verschillende permutatie:

0 - geen toestemming
1 - uitvoeren
2 - schrijven
3 - schrijven en uitvoeren
4 - lezen
5 - lezen en uitvoeren
6 - lees en schrijf
7 - lezen, schrijven en uitvoeren

Afhankelijk van de machtigingen die u aan het bestand wilt verlenen, stelt u het nummer dienovereenkomstig in.

Hoe zit het met de 3 cijfers '777'? Welnu, het eerste cijfer is toegewezen aan de Eigenaar, het tweede cijfer is toegewezen aan de Groep en het derde cijfer is toegewezen aan de Andere. Dus voor een bestand met '777' toestemming kan iedereen het bestand lezen, schrijven en uitvoeren. Hier zijn enkele veelgebruikte toestemmingen:

  • 755 - Deze set van toestemming wordt vaak gebruikt in de webserver. De eigenaar heeft alle machtigingen om te lezen, schrijven en uit te voeren. Alle anderen kunnen alleen lezen en uitvoeren, maar kunnen het bestand niet wijzigen.
  • 777 - Iedereen kan schrijven en uitvoeren. In een webserver is het niet raadzaam om '777' toestemming voor uw bestanden en mappen in te stellen, omdat iedereen hierdoor schadelijke code aan uw server kan toevoegen. In sommige gevallen moet u echter de 777-machtigingen instellen voordat u een bestand naar de server kunt uploaden (bijvoorbeeld afbeeldingen uploaden in WordPress)
  • 644 - Alleen de eigenaar kan lezen en schrijven. Iedereen kan alleen lezen. Niemand kan het bestand uitvoeren.
  • 655 - Alleen de eigenaar kan lezen en schrijven, maar het bestand niet uitvoeren. Alle anderen kunnen lezen en uitvoeren, maar kunnen het bestand niet wijzigen.

Bestandstoestemmingen instellen op de opdrachtregel

In Linux kun je gemakkelijk de bestandsrechten wijzigen door met de rechtermuisknop op het bestand of de map te klikken en "Eigenschappen" te selecteren. Er zal een permissietabblad zijn waarin u de bestandsrechten kunt wijzigen. In de terminal is de opdracht die moet worden gebruikt om de bestandsmachtiging te wijzigen " chmod ". Kort gezegd betekent "chmod 777" dat iedereen het bestand leesbaar, schrijfbaar en uitvoerbaar kan maken.

 chmod 775 / pad / naar / bestand 

Hopelijk kan dit artikel je helpen beter te begrijpen over de bestandsrechten in het Unix-systeem en de oorsprong van het magische nummer "777".

Word een professional bij Linux met deze bundel

Linux is het startende besturingssysteem van programmeurs en computernerdes vanwege zijn enorme rekenkracht en ongelooflijke aanpasbaarheid. Maar dat maakt het ook veel moeilijker om de kneepjes van Linux te leren, daarom zou je moeten investeren in de Linux Power User-bundel. Deze cursusbundel vereist absolute nul voorkennis en leert je vanaf het begin om een ​​professional te worden bij het gebruik van Linux. Voor een beperkte tijd, kan het van jou zijn voor slechts $ 19.