Förstå filtillstånd: Vad betyder "Chmod 777"?
Om du är en Linux-användare eller en webbansvarig som hanterar din egen webbplats (som förmodligen är värd på en Linux-server) kommer du säkert att stöta på en situation när du försöker ladda upp en fil eller ändra ett dokument och få felet " Du gör har inte behörigheterna att ladda upp filen till mappen ". Och efter en del googling är lösningen ofta lika lätt som att ställa in filtillståndet till "775" eller "777". Så vad betyder "777" exakt? Och varför måste det vara '7' och inte '8' eller '9'?
Relaterat : Hur man byter namn på filer i Linux
Förstå filtillstånd
Unix-system (inklusive Linux och Mac OS X) levereras med en filkontrollmekanism för att bestämma vem som kan komma åt en viss fil eller mapp och vilka åtgärder de kan göra åt det. Det finns två delar till filkontrollmekanismen, nämligen klasser och behörigheter . Klasser bestämmer vem som kan komma åt filen medan behörigheterna bestämmer vilken typ av åtgärd användaren kan göra för filen.
Det finns tre klasser - Ägare, Grupp, Övriga.
- Ägaren är vanligtvis skaparen av filerna / mapparna. I Linux ägs vanligtvis filer eller mappar som du skapade i din hemkatalog om du inte ändrar ägandet specifikt.
- Gruppen innehåller en grupp användare som har samma behörigheter och användarrättigheter.
- Andra betyder allmänheten.
När det gäller behörigheter finns det 3 typer av åtgärder som du kan utföra på en fil / mapp. Du kan antingen läsa, skriva eller exekvera .
- Läs - Du kan bara visa filen, men kan inte ändra innehållet i filen. När du applicerar i mapp kan du bara se filerna i mappen, men du kan inte radera eller lägga till filer i mappen.
- Skriv - Du kan redigera och ändra filen. För mappar kan du radera och lägga till filer i mappen.
- Execute - Execute används huvudsakligen när du behöver köra filen (vanligtvis används när du behöver köra ett skript).
När du kombinerar klasserna och behörigheterna kommer du att kunna styra vem som kan komma åt filen och vilka åtgärder de kan göra med den.
Till exempel har ägaren vanligtvis alla behörigheter (läs, skriv och kör) för att komma åt filen. Om du inte är ägare till filen / mappen måste du ändra ägarskapet för filen till ditt namn eller ändra behörigheterna för gruppen eller andra för att läsa, skriva eller exekvera. På en webbserver, om du inte kan ladda upp en fil, beror det troligen på att du inte är ägaren till målmappen, eller du har inte tillräckligt med behörigheter för att lägga till filer i mappen.
Vad gäller siffran?
Med den grundläggande förståelsen för klasserna och tillstånden, låt oss dyka in i det vidare och se hur "777" eller "775" kommer fram.
Varje fil och mapp innehåller en 8-bitars data som styr behörigheterna. Vid sin grundläggande binära form blir det "000", vilket innebär att ingen behörighet av någon form beviljas. När du ställer in ett "läs" tillstånd lägger det 4-bitars till data, vilket gör det "100" (i binärt format) eller en "4" i vanligt decimalformat. Om du anger ett "Skriv" -tillstånd lägger du till 2-bitars data, vilket gör "010" och "2" i decimalform. Slutligen läggs ett "Execute" -tillstånd till 1-bit till data, vilket kommer att resultera i "001" eller "1" i decimalform. Kortfattat:
- Läs motsvarar "4".
- Skriv motsvarar "2".
- Execute motsvarar '1'
När vi vill ange behörigheter lägger vi bara upp numret. Till exempel, för att ställa in behörigheterna att läsa och skriva använder vi "6" (4 + 2) för tillståndet. För att läsa, skriva och exekvera använder vi "7" (4 + 2 + 1) för tillståndet. Här är den olika permutationen:
0 - inget tillstånd
1 - exekvera
2 - skriv
3 - skriv och exekvera
4 - läs
5 - läs och kör
6 - läs och skriv
7 - läs, skriv och kör
Beroende på vilka behörigheter du vill ge till filen, ställer du bara in numret i enlighet med detta.
Vad sägs om de tre siffrorna "777"? Tja, den första siffran tilldelas ägaren, den andra siffran är tilldelad gruppen och den tredje siffran är tilldelad till de andra. Så för en fil med 777-tillåtelse kan alla läsa, skriva och exekvera filen. Här är några av de vanliga behörigheterna:
- 755 - Denna uppsättning tillstånd är vanligtvis används i webbservern. Ägaren har alla behörigheter att läsa, skriva och exekvera. Alla andra kan bara läsa och exekvera, men kan inte göra ändringar i filen.
- 777 - Alla kan läsa skriva och exekvera. På en webbserver är det inte lämpligt att ställa in 777-behörighet för dina filer och mappar eftersom det tillåter att någon lägger till skadlig kod på din server. I vissa fall måste du dock ställa in 777 behörigheter innan du kan ladda upp någon fil till servern (till exempel ladda upp bilder i WordPress)
- 644 - Endast ägaren kan läsa och skriva. Alla andra kan bara läsa. Ingen kan utföra filen.
- 655 - Endast ägaren kan läsa och skriva, men inte exekvera filen. Alla andra kan läsa och exekvera, men kan inte ändra filen.
Ställ in filtillstånd i kommandoraden
I Linux kan du enkelt ändra filbehörigheterna genom att högerklicka på filen eller mappen och välj "Egenskaper". Det kommer att finnas en flik Tillstånd där du kan ändra filbehörigheterna. I terminalen är kommandot som ska användas för att ändra chmod
" chmod
". Kort sagt betyder "chmod 777" att filen är läsbar, skrivbar och körbar av alla.
chmod 775 / sökväg / till / fil
Förhoppningsvis kan den här artikeln hjälpa dig att förstå bättre om filbehörigheterna i Unix-systemet och ursprunget till det magiska numret "777".
Bli ett proffs på Linux med detta paket
Linux är go-to-operativsystemet för programmerare och datorgeeks på grund av sin rena datorkraft och otroliga anpassningsbarhet. Men det gör det också mycket svårare att lära sig Linux-repen, det är därför du borde investera i Linux Power User Bundle. Kräver absolut ingen noll förkunskaper, det här kurspaketet lär dig från grunden att bli ett proffs när du använder Linux. I en begränsad tid kan det vara din för bara $ 19.