4Jul

Hur fungerar Linux-filtillstånd?

click fraud protection

Om du har använt Linux någon gång( och även OS X) har du förmodligen kommit över ett "behörighetsfel".Men vad exakt är de, och varför är de nödvändiga eller användbara? Låt oss ta ett inslag.

Användarbehörigheter

Tidigare var datorer massiva maskiner som var otroligt dyra. För att få ut det mesta av varandra var flera datorterminaler anslutna vilket gjorde det möjligt för många användare att gå om sin verksamhet samtidigt. Databehandling och lagring gjordes på maskinen, medan terminalerna själva var lite mer än ett medel för visning och inmatning av data. Om du funderar på det, är det ganska mycket hur vi får tillgång till data på "molnet";titta på Amazons Cloud MP3-system, Gmail och Dropbox, och du kommer att märka att medan ändringar kan göras lokalt lagras allt på distans.

( Bild: Zenith Z-19 "dumma" terminal; kredit: ajmexico)

För att detta ska fungera måste enskilda användare ha konton. De måste ha en del av lagringsutrymmet som tilldelas dem, och de måste ha tillåtelse att köra kommandon och program. Alla får specifika "användarbehörigheter", vilket dikterar vad de kan och inte kan göra, var på systemet de gör och inte har tillgång, och vars filer de kan och inte kan ändra. Varje användare placeras också i olika grupper, vilka beviljar eller begränsar ytterligare åtkomst.

instagram viewer

Filåtkomst

I den här galna multi-användarvärlden har vi redan ställt gränser för vad användare kan göra. Men vad sägs om vad de har tillgång till? Tja, varje fil har en uppsättning behörigheter och en ägare.Ägarebeteckningen, som vanligtvis är bunden när filen skapas, förklarar vilken användare den tillhör, och endast den användaren kan ändra dess behörigheter.

I Linux-världen är behörigheter uppdelade i tre kategorier: läs, skriv och exekvera. Med "Read" -åtkomst kan man se en fils innehåll. Med "skriv" -åtkomst kan man ändra en fils innehåll och "exekvera" låter en köra en uppsättning instruktioner, som ett skript eller ett program. Var och en av dessa kategorier tillämpas på olika klasser: användare, grupp och värld."Användare" betyder ägaren, "grupp" betyder en användare som är i samma grupp som ägaren, och "värld" betyder någon och alla.

-mappar kan också begränsas med dessa behörigheter. Du kan till exempel låta andra personer i din grupp visa kataloger och filer i din hemmapp, men inte någon utanför din grupp. Du kommer noga att begränsa "skriv" tillgång till dig själv, om du inte arbetar på ett delat projekt av något slag. Du kan även skapa en delad katalog som gör det möjligt för någon att visa och ändra filer i den mappen.

Ändra behörigheter i Ubuntu

GUI

För att ändra behörigheterna för en fil du äger i Ubuntu högerklickar du bara på filen och går till "Egenskaper".

Du kan ändra om ägaren, gruppen eller andra kan läsa och skriva,läs bara, eller gör ingenting. Du kan också kolla en ruta för att tillåta körning av filen, och det gör det möjligt för ägaren, gruppen och andra samtidigt.

Kommandorad

Du kan också göra detta via kommandoraden. Gå till en katalog med filer i den och skriv följande kommando för att visa alla filer i en lista:

ls -al

Vid sidan av varje fil och katalog ser du en särskild sektion som beskriver behörigheterna. Det ser ut så här:

-rwxrw-r-

r står för "läs", w står för "skriv" och x står för "execute." Kataloger börjar med en "d "istället för en" - ".Du märker också att det finns 10 mellanslag som håller värdet. Du kan ignorera den första, och då finns det 3 uppsättningar av 3. Den första uppsättningen är för ägaren, den andra uppsättningen är för gruppen, och den sista uppsättningen är för världen.

För att ändra en fil eller katalogens behörigheter, låt oss titta på den grundläggande formen av chmod-kommandot.

chmod [klass] [operatör] [behörighet] fil

chmod [ugoa] [+ eller -] [rwx] fil

Det kan verka komplicerat först, men lita på mig, det är ganska enkelt. Låt oss först titta på klasserna:

  • u: Detta är för ägaren.
  • g: Detta är för gruppen.
  • o: Detta är för alla andra.
  • a: Detta kommer att ändra behörigheter för alla ovanstående.

Därefter operatörerna:

  • +: Plustecknet lägger till de behörigheter som följer.
  • -: Minustecknet tar bort behörigheterna som följer.

Fortfarande med mig? Och det sista avsnittet är detsamma som när vi kollade behörigheterna för en fil:

  • r: Tillåter läsåtkomst.
  • w: Tillåter skrivåtkomst.
  • x: Tillåt körning.

Nu, låt oss lägga den ihop. Låt oss säga att vi har en fil med namnet "todo.txt" som har följande behörigheter:

-rw-rw-r-

Det vill säga att ägaren och gruppen kan läsa och skriva, och världen kan bara läsa. Vi vill ändra behörigheterna till dessa:

-rwxr--

Det betyder att ägaren har fullständiga behörigheter och gruppen kan läsa. Vi kan göra det i tre steg. Först lägger vi till exekveringsbehörigheten för användaren.

chmod u + x todo.txt

Då tar vi bort skrivtillståndet för gruppen.

chmod g-w todo.txt

Slutligen tar vi bort läsbehörigheterna för alla andra användare.

chmod o-r todo.txt

Vi kan också kombinera dessa i ett kommando, som så:

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

Du kan se att varje sektion är åtskild med kommatecken och det finns inga mellanslag.

Här är några användbara behörigheter:

  • -rwxr-xr-x: Ägaren har fullständiga behörigheter, grupp och andra användare kan läsa filinnehåll och exekvera.
  • -rwxr-r-: Ägaren har fullständiga behörigheter, grupp och andra användare kan bara läsa filen( användbar om du inte har något emot andra som tittar på dina filer.)
  • -rwx--: Ägaren har fullständiga behörigheter, alla andra har ingen( användbar
  • -rw-rw--: Ägare och grupp kan läsa och skriva( användbart för samarbete med gruppmedlemmar).
  • -rw-r-r-: Ägare kan läsa och skriva, grupp och andra användare kan bara
  • -rw ---: Ägaren kan läsa och skriva, alla andra har ingen( användbar för att lagra personliga filer).

Det finns några andra saker du kan göra medchmod-like setuid och setgid - men de är lite djupgående och de flesta användare behöver inte riktigt använda dem ändå.

Root- eller Super-User och System Files

Numera kör vi inte alltid system somVarför borde vi fortfarande oroa oss för behörigheter?

Jo, Unix ochDess derivat - bland annat Linux, OS X - skiljer också mellan saker som drivs av användaren, saker som drivs av en administratör eller med administratörsbehörigheter och saker som drivs av systemet självt. Som sådant måste saker som är integrerade för systemet ha administratörsbehörighet att ändras eller nås. På så sätt förstör du inte något av misstag.

I Ubuntu, för att göra ändringar i systemfiler använder du "sudo" eller "gksudo" för att få motsvarande administratörsbehörigheter. I andra distros växlar du till "root" eller "super-user" som effektivt gör samma sak tills du loggar ut.

Observera att under båda dessa omständigheter kan ändras filbehörigheter leda till att program inte fungerar, oavsiktligt ändrar filägandet till root-användaren( istället för ägaren) och gör systemet mindre säkert( genom att ge fler behörigheter).Som sådan rekommenderas att du inte ändrar behörigheter för filer - särskilt systemfiler - om det inte är nödvändigt eller du vet vad du gör.

Filbehörigheter finns på plats för att ge ett grundläggande säkerhetssystem bland användarna. Att lära sig hur de fungerar kan hjälpa dig att skapa grundläggande delning i en miljö med flera användare, skydda "offentliga" filer och ge dig en aning om något går fel med systemfilens ägande.

Tänk på att du kan förklara saker lättare? Har en rättelse? Vill du påminna om de gamla dagarna? Ta en paus och lägg ner dina tankar i kommentarerna.