Forståelse av filtillatelser: Hva betyr "Chmod 777"?
Hvis du er en Linux-bruker eller en webansvarlig som administrerer ditt eget nettsted (som sannsynligvis er vert på en Linux-server), vil du sikkert komme over en situasjon når du prøver å laste opp en fil eller endre et dokument og motta feilen " Du gjør ikke ha tillatelser til å laste opp fil til mappen ". Og etter noen googling er løsningen ofte like enkelt som å sette filtillatelsen til "775" eller "777". Så hva betyr "777" nøyaktig? Og hvorfor må det være '7', og ikke '8' eller '9'?
Relatert : Hvordan omdøpe filer i Linux
Forståelse av filtillatelser
Unix-systemer (inkludert Linux og Mac OS X) leveres med en filkontrollmekanisme for å bestemme hvem som kan få tilgang til en bestemt fil eller mappe og hvilke handlinger de kan gjøre med den. Det er to deler til filkontrollmekanismen, nemlig klasser og tillatelser . Klasser bestemmer hvem som kan få tilgang til filen, mens Tillatelsene bestemmer hvilken type handling brukeren kan gjøre for filen.
Det er tre klasser - Eier, Gruppe, Andre.
- Eieren er vanligvis skaperen av filene / mappene. I Linux eies filer eller mapper som du opprettet i hjemmemappen din, med mindre du endrer eierskapet.
- Gruppen inneholder en gruppe brukere som har samme rettigheter og brukerrettigheter.
- Andre betyr allmennheten.
Når det gjelder tillatelser, er det 3 typer handlinger du kan utføre på en fil / mappe. Du kan enten lese, skrive eller kjøre .
- Les - Du kan bare se filen, men kan ikke endre innholdet i filen. Når du bruker Mappe, kan du bare se filene i mappen, men du kan ikke slette fra eller legge til filer i mappen.
- Skriv - Du kan redigere og endre filen. For mapper kan du slette og legge til filer i mappen.
- Execute - Execute brukes hovedsakelig når du trenger å kjøre filen (vanligvis brukt når du må kjøre et skript).
Når du kombinerer klassene og tillatelsene, vil du kunne kontrollere hvem som kan få tilgang til filen og hvilke handlinger de kan gjøre med den.
For eksempel vil eieren vanligvis ha alle tillatelsene (lese, skrive og kjøre) for å få tilgang til filen. Hvis du ikke er eier av filen / mappen, må du endre Eierskapet til filen til navnet ditt, eller endre tillatelsene til gruppen eller andre for å lese, skrive eller kjøre. I en webserver, hvis du ikke kan laste opp en fil, er det sannsynligvis fordi du ikke er eieren av målmappen, eller du får ikke tilstrekkelig tillatelse til å legge til filer i mappen.
Hva handler om tallet?
Med den grunnleggende forståelsen av klassene og tillatelsene, la oss dykke inn i den videre og se hvordan "777" eller "775" kommer.
Hver fil og mappe inneholder 8-bits data som kontrollerer tillatelsene. I sin grunnleggende binære form vil det være "000", noe som betyr at ingen tillatelser av noen form er gitt. Når du setter inn en "Les" -tillatelse, vil den legge til 4-bit til dataene, noe som gjør det "100" (i binært format) eller en "4" i vanlig desimalformat. Innstilling av "Skriv" tillatelse vil legge til 2-bit til dataene, noe som gjør det "010" og "2" i desimalform. Til slutt legger du til 1-bit til dataene, som vil resultere i "001" eller "1" i desimalform. Kort oppsummert:
- Les er ekvivalent med '4'.
- Skriv tilsvarer '2'.
- Utfør er ekvivalent med '1'
Når vi ønsker å angi tillatelser, legger vi bare opp nummeret. For eksempel, for å sette tillatelsene til å lese og skrive, vil vi bruke "6" (4 + 2) for tillatelsen. For å lese, skrive og utføre, vil vi bruke "7" (4 + 2 + 1) for tillatelsen. Her er den forskjellige permutasjonen:
0 - ingen tillatelse
1 - utfør
2 - skriv
3 - skriv og utfør
4 - les
5 - les og utfør
6 - les og skriv
7 - les, skriv og utfør
Avhengig av tillatelsene du vil gi til filen, angir du bare nummeret tilsvarende.
Hva med de 3 sifrene '777'? Vel, det første sifferet er tilordnet Eieren, det andre sifferet er tildelt gruppen, og det tredje sifferet er tildelt de andre. Så for en fil med "777" tillatelse, kan alle lese, skrive og kjøre filen. Her er noen av de vanlige tillatelsene:
- 755 - Dette settet av tillatelse er vanligvis brukt i webserveren. Eieren har alle tillatelsene til å lese, skrive og utføre. Alle andre kan bare lese og kjøre, men kan ikke gjøre endringer i filen.
- 777 - Alle kan lese skrive og utføre. I en webserver er det ikke tilrådelig å angi "777" tillatelse for filene og mappene dine, da det tillater at noen legger til skadelig kode på serveren din. I enkelte tilfeller må du imidlertid angi 777 tillatelser før du kan laste opp noen filer til serveren (for eksempel laste opp bilder i WordPress)
- 644 - Bare eieren kan lese og skrive. Alle andre kan bare lese. Ingen kan utføre filen.
- 655 - Bare eieren kan lese og skrive, men ikke utføre filen. Alle andre kan lese og kjøre, men kan ikke endre filen.
Angi filtillatelser i kommandolinje
I Linux kan du enkelt endre filtillatelsene ved å høyreklikke filen eller mappen og velge "Egenskaper". Det vil være en Tillatelse-faneblad der du kan endre filtillatelsene. I terminalen er kommandoen som skal brukes til å endre filtillatelse, " chmod
". Kort sagt betyr "chmod 777" å gjøre filen lesbar, skrivbar og kjørbar av alle.
chmod 775 / sti / til / fil
Forhåpentligvis kan denne artikkelen hjelpe deg med å forstå bedre om filtillatelsene i Unix-systemet og opprinnelsen til det magiske nummeret "777".
Bli et proff på Linux med denne pakken
Linux er go-to-operativsystemet til programmerere og datamasker på grunn av sin rene datakraft og utrolig tilpassbarhet. Men det gjør det også mye vanskeligere å lære tauene på Linux, derfor bør du investere i Linux Power User Bundle. Krever absolutt null tidligere kunnskaper, vil dette kursbuntet lære deg fra grunnen til å bli et proffs ved å bruke Linux. I en begrenset periode kan det være ditt for bare $ 19.