Bruker Tillatelser
På dagen var datamaskiner massive maskiner som var utrolig dyre. For å få mest mulig ut av dem ble flere datamaskinterminaler koblet sammen, noe som tillot mange brukere å gå om sin virksomhet samtidig. Databehandling og lagring ble gjort på maskinen, mens terminaler seg selv var lite mer enn et middel til visning og innlasting av data. Hvis du tenker på det, er det ganske mye hvordan vi får tilgang til data på "skyen"; se på Amazons Cloud MP3-system, Gmail og Dropbox, og du vil legge merke til at mens endringer kan gjøres lokalt, lagres alt eksternt.
For at dette skal fungere, må enkelte brukere ha kontoer. De må ha en del av lagringsområdet som er tildelt dem, og de må ha lov til å kjøre kommandoer og programmer. Alle får spesifikke "brukerrettigheter", som dikterer hva de kan og ikke kan gjøre, hvor i systemet de gjør og ikke har tilgang, og hvis filer de kan og ikke kan endre. Hver bruker er også plassert i ulike grupper, som gir eller begrenser ytterligere tilgang.
Filtilgang
I Linux-verdenen er tillatelser fordelt på tre kategorier: les, skriv og utfør. Med "Read" -tilgangen kan man se innholdet i en fil, "skrive" -tilgang gjør at man kan endre innholdet i en fil, og "execute" gjør at man kan kjøre et sett med instruksjoner, som et skript eller et program. Hver av disse kategoriene brukes til forskjellige klasser: bruker, gruppe og verden. "Bruker" betyr eieren, "gruppe" betyr enhver bruker som er i samme gruppe som eieren, og "verden" betyr noen og alle.
Endring av tillatelser i Ubuntu
GUI
For å endre tillatelsene til en fil du eier i Ubuntu, høyreklikker du bare på filen og går til "Egenskaper".
Kommandolinje
Du kan også gjøre dette via kommandolinjen. Gå til en katalog som har filer i den og skriv følgende kommando for å vise alle filer i en liste:
ls -al
-rwxrw-r–
De r står for "les", den w står for "skrive" og x står for "kjøre". Kataloger vil starte med en "d" i stedet for en "-". Du vil også merke at det er 10 mellomrom som holder verdien. Du kan ignorere den første, og så er det 3 sett med 3. Det første settet er for eieren, det andre settet er for gruppen, og det siste settet er for verden.
For å endre en fil eller katalogets tillatelser, la oss se på grunnleggende form av chmod-kommandoen.
chmod [class][operator][permission] file
chmod [ugoa][+ or –] [rwx] file
Dette kan virke komplisert først, men stol på meg, det er ganske enkelt. Først, la oss se på klassene:
- u: Dette er for eieren.
- g: Dette er for gruppen.
- o: Dette er for alle andre.
- a: Dette vil endre tillatelser for alle de ovennevnte.
Deretter operatørene:
- +: Plustegnet vil legge til tillatelsene som følger.
- -: Minustegnet vil fjerne tillatelsene som følger.
Fortsatt med meg? Og den siste delen er den samme som når vi sjekket tillatelsene til en fil:
- r: Tillater lesetilgang.
- w: Tillater skrivetilgang.
- x: Tillater kjøring.
La oss si det sammen. La oss si at vi har en fil med navnet "todo.txt" som har følgende tillatelser:
-rw-rw-r–
Det vil si at eieren og gruppen kan lese og skrive, og verden kan bare lese. Vi ønsker å endre tillatelsene til disse:
-rwxr-–
Det vil si at eieren har full tilgang, og gruppen kan lese. Vi kan gjøre dette i tre trinn. Først legger vi til utførelsesrettighetene for brukeren.
chmod u+x todo.txt
Da fjerner vi skrivetillatelsen for gruppen.
chmod g-w todo.txt
Til slutt fjerner vi lesetillatelsene for alle andre brukere.
chmod o-r todo.txt
Vi kan også kombinere disse til en kommando, slik som:
chmod u+x,g-w,o-r todo.txt
Her er noen nyttige tillatelser:
- -rwxr-xr-x: Eieren har full tilgang, gruppe og andre brukere kan lese filinnhold og utføre.
- -rwxr-r-: Eieren har full tilgang, gruppe og andre brukere kan bare lese filen (nyttig hvis du ikke har noe imot andre som ser på filene dine.
- -rwx--: Eieren har full tilgang, alle andre har ingen (nyttig for personlige skript).
- -rw-rw--: Eier og gruppe kan lese og skrive (nyttig for samarbeid med gruppemedlemmer).
- -rw-r-r-: Eieren kan lese og skrive, gruppe og andre brukere kan bare lese fil (nyttig for lagring av personlige filer på et delt nettverk).
- -rw ---: Eieren kan lese og skrive, alle andre har ingen (nyttig for lagring av personlige filer).
Det er noen andre ting du kan gjøre med chmod-like setuid og setgid - men de er litt dyptgående, og de fleste brukere trenger ikke å bruke dem uansett.
Root- eller Super-User og System Files
Vel, Unix og dets derivater - Linux, OS X, blant annet - skiller også mellom ting som drives av brukeren, ting som drives av en administrator eller med administratorrettigheter, og ting som kjøres av selve systemet. Som sådan må ting som er integrert for systemet kreve administrasjonsrettigheter for å bli endret eller åpnet. På denne måten roter du ikke noe ved et uhell.
I Ubuntu, for å gjøre endringer i systemfiler bruker du "sudo" eller "gksudo" for å få tilsvarende administratorrettigheter. I andre distroer bytter du til "root" eller "super-brukeren" som effektivt gjør det samme før du logger ut.
Vær oppmerksom på at i begge disse omstendighetene kan endring av filtillatelser føre til at programmer ikke virker, utilsiktet endrer fil eierskap til roten brukeren (i stedet for eieren), og gjør systemet mindre sikkert (ved å gi flere tillatelser). Som sådan anbefales det at du ikke endrer tillatelser for filer - spesielt systemfiler - med mindre det er nødvendig eller du vet hva du gjør.
Filtillatelser er på plass for å gi et grunnleggende sikkerhetssystem blant brukerne. Å lære hvordan de fungerer kan hjelpe deg med å sette opp grunnleggende deling i et multi-user miljø, beskytte "offentlige" filer, og gi deg en anelse om når noe går galt med systemfil eierskap.
Tror du at du kan forklare ting enklere? Har du en rettelse? Vil du minne om gamle dager? Ta en pause og legg tankene dine ned i kommentarene.