
|
 |
Linuxskolen del 21 (Linuxmagasinet 5/2005)
Denne gang skal vi beskrive noen av de grunnleggende kommandoene du trenger for å navigere gjennom filsystemet, og et par kommandoer for å kunne modifisere filer. Dersom du kommer fra Windows og er fersk med UNIX/Linux er dette noe av det første du bør lære deg. Har du erfaring med DOS, bør dette gå veldig greit!
Kommandoene
• ls - Viser filer i mappen du er i. Samme som dir kommandoen i DOS.
• cd - Skift til en annen mappe. Samme som ms-dos kommandoen cd. Et eksempel: cd /etc vil flytte deg til mappen /etc.
• mv - Flytt, flytt mapper eller filer, også det samme som rename kommandoen i DOS. Et eksempel: mv blah .. vil flytte blah en mappe opp, mens kommandoen mv blah black vil gi blah et nytt navn, altså black.
• rm - Remark, også kjent som remove/delete (fjerne/slette). Det samme som DOS –kommandoen del/deltree. For å slette en mappe, bruk -R opsjonen. rm blah vil slette filen blah, men for å slette en mappe må du bruke rm -r mappenavnet. Opsjonen -R vil inkludere alle undermapper og filer med i slettingen.
• cp - Kopier, kopier filer eller mapper. cp blah blah1 vil kopiere filen blah, bare under et annet navn, blah1. cp -r blah blah1 ville det vært om blah var en mappe. Igjen, legg merke til -R opsjonen for mapper. -R i dette tilfellet betyr rekursivt..altså inkludere alle undermapper/filer.
• cat - “Concatenate or print files”, står det på en linux-side. cat vil generelt sett printe innholdet av en fil, enten det er binært eller ren tekst. Den viser innholdet i en fil. cat blah vil vise hva filen blah inneholder. Hvis blah var et program, ville den mest sannsynlig vise en del utvidede ASCII chars, og du vil høre en del biping.
• man - Manual siden. De fleste programmer/kommandoer vil ha en man side. Skriv man kommando for å se man-siden for den spesifikke kommandoen.
• du - Viser filens størrelse. Et eksempel: du blah. Legger du til parameteren -m, viser den filstørrelsen i megabytes.
• df - Viser hvor mye, og hvor mange prosent, av tilgjengelig og brukt diskplass du har. Bruk parameteren -h for å gjøre det litt mer oversiktligere.
Nå skal jeg nevne noen kommandoer som brukes for å sette filrettigheter, eller modifisere muligheten til å endre på filer, også kjent som rettigheter:
• chmod - Endrer filrettigheter. Vennligst se nedenfor, der denne kommandoen får litt mer detaljert forklaring.
• chown - Endrer eieren av en fil. Eksempel: chown wize blah, ville gjøre at wize blir den nye eieren av filen blah. Du kan ikke endre eieren av en fil, for eksempel en av dine egne, til noen andre.
• chgrp - Samme som chown, bare at den endrer grupperettighetene til en fil. Reglene om å kunne endre gruppen i dine filer over til noen andre, er det samme som chown.
Forklaring av chmod
Dette er nødvendig å få med seg, for å kunne forstå det jeg vil nevne litt nedenfor. UNIX/Linux er multiuser (flerbruker-) operativsystemer. Med dette mener jeg at en brukers filer/programmer/alt er skilt fra andre brukere. Brukeren som eier en fil, er kalt owner. Filer har også en gruppe, som betyr at gruppen de er eid av, vanligvis er identisk med gruppen som brukeren er del av (f.eks gruppen users).
Men en fil kan ganske enkelt eies av root og gruppen wheel, som betyr at hvem som helst i gruppen wheel kan gjøre alt hva grupperettighetene tillater dem.
Vi har også other kategorien, altså andre. Med andre ord, alle som ikke er eier av filen eller gruppen(e) som har tilgang til den filen.
Chmod er kommandoen som blir brukt for å endre på filrettigheter. UNIX som er et flerbrukersystem (i motsetning til f.eks. enbrukermiljøet i Windows9x), tillater deg å bestemme hvem som kan gjøre hva på filene dine. Nedenfor ser du hva jeg får frem når jeg skriver ls -l i hjemmemappen min. Jeg la til “Område nr” for at jeg lettere skal kunne referere til visse områder videre framover, så outputet vil nok ikke være helt lik denne om du skriver ls -l.
----1--------2--3-----4------5-----6--------7-----8
-rwxr-xr-x 2 wize users 7 2005-04-25 09:50 .plan -> /bin/sh
-r-x---r-x 1 wize users 0 2005-04-25 09:49 Perl
-rw------- 6 wize users 0 2005-04-25 09:49 dns.txt
-rw------- 1 wize users 0 2005-04-25 09:49 bilde.png
drwx------ 1 wize users 4.0K 2005-04-25 09:50 tnldp
La oss ta en titt på det viktigste området her, område 1. Dette viser filrettighetene. La oss analysere dette i et øyeblikk:
-rwx------
Den første bindestreken vil være en d om det er en mappe, og de neste tre bindestrekene (som det nå står rwx på), beskriver rettighetene til eieren. Forklaringen er som følger:
• r = read (lese)
• w = write (skrive)
• x = execute (kjøre)
Så -rwx—— betyr at dette er en fil, og at eieren kan lese, skrive til og kjøre filen.
De neste tre bindestrekene er grupperettigheter. Så -rwxr-x— betyr at eieren kan lese, skrive til og kjøre filen, og gruppen til filen kan lese og kjøre den. De tre siste bindestrekene viser hva andre (husk, andre er alle som ikke er eieren av filen og gruppen(e) som har tilgang til den) kan gjøre med filen. Om de ikke er med i gruppen til filen, eller eier den, da er de definert som andre, ergo others.
Følgende tillatelser, drwxr-xr-x, viser at dette er en mappe (d‘en ved begynnelsen) og at eieren av mappen kan lese, skrive til og kjøre den. Gruppen kan lese og kjøre, og andre (others) kan lese og kjøre.
Område 2 er ikke særlig viktig, men som du ser på Område 3, der det står wize, så viser dette brukernavnet til eieren av filen. Område 4 viser gruppen, altså gruppen users. Område 5 er størrelsen av filen/mappen i antall bytes.
Områdene 6 og 7 er viser datoen og tiden til når filen sist ble modifisert. Til slutt, Område 8 er navnet til filen eller mappen. Det du ser der, .plan → /bin/sh, betyr at .plan er linket til en annen fil, i dette tilfellet er det /bin/sh, så når du titter på innholdet av .plan, eller modifiserer det, da modifiserer du /bin/sh. For mer informasjon om symlinking (som det heter), skriv man ln.
Dele ut rettigheter
Å gi rettigheter med chmod kan gjøres på to måter; numerisk eller symbolsk.
De fleste UNIX-brukere foretrekker den numeriske måten, da den er kortere og kraftigere. Jeg vil starte med symbolske måten, av hensyn til nye brukere.
Den symbolske måten bruker tre bokstaver, eller tre symboler, for å representere rettigheter.
• u = owner (eier)
• g = group (gruppe)
• o = others (andre)
La oss bruke liksom-filen blah. Hvis filen blah allerede hadde rettighetene -rwx——, og jeg ville gjøre det slik at personer i samme gruppe som meg kunne skrive til den, da ville jeg ha utført kommandoen:
chmod g+w blah
Men det er jo ikke brukbart uten muligheten til å lese filen, så da utfører jeg kommandoen:
chmod g=rw
La oss analysere de to kommandoene:
• chmod g+w blah - Det dette betyr er, gi (w)rite rettigheter til filen blah for (g)ruppen. Ganske enkelt.
• chmod g=rw - Nå, chmod g=rw kan brukes til å gi alle rettigheter for en kategori med en gang. Ved å bruke =, så angir du at alt det som står bak =, skal legges til som rettigheter, og fjerne det som stod der fra før av. Så, om group kun hadde kjøringstillatelse (x), så ville det ha blitt endret til read og write (rw), der = overskriver de eksisterende rettighetene.
Her følger noen eksempler:
• chmod g+rw blah - Legg til read og write til group (gruppe)
• chmod o+rx blah - Legg til read og write til others (andre)
• chmod o= blah - Others kan verken lese, skrive eller kjøre
• chmod u+rwx blah - Legg til read, write og execute til owner (eieren)
• chmod o=rwx blah - Fjern read, write og execute rettighetene til Others (andre)
Ved å bruke +, vil du legge til rettigheter til filen, ikke overskrive de eksisterende rettighetene. = vil tydeligvis fjerne de rettighetene om de faktisk eksisterer, og den vil overskrive alle rettigheter på det feltet.
Den numeriske måten er kraftigere og raskere.
Når du bruker den numeriske måten, se på hver gruppe med tre bindstreker som en verdi. For eksempel, de tre første bindestrekene (eierrettigheter) er hundreplassen, de tre midterste bindestrekene (grupperettigheter) er tiendeplassen, mens de siste tre bindestrekene (andre rettigheter) er førsteplassen. Ved å bruke den numeriske måten, vil et tall representere hver mulig tillatelse.
• 4 = Lese rettigheter
• 2 = Skrive rettigheter
• 1 = Kjøre rettigheter
• 0 = Ingen rettigheter
For å legge til rwx hos en eier, legger du alle disse sammen, og får 7. For at en eier skal få 7, legges den på hundreplassen, altså helt til venstre. La oss anta at du vil at filen blah skal være rwx for eieren, ingen rettigheter for gruppe, og ingen rettigheter for andre. Da skriver du følgende kommando:
chmod 700 blah
Som du ser, så gir vi full tillatelse til eieren (4+2+1=7) som har hundreplassen, ingen rettigheter til gruppe (som du ser ved 0 tallet, som er på tiendeplassen), og ingen rettigheter til andre (også en 0 på førsteplass).
Den beste måten å forstå ting på, er gjennom eksempler:
• chmod 755 blah - 4+2+1=7 for eier, 4+1=5 for group og others. Dette gjør at blah ser ut som -rwxr-xr-x.
• chmod 644 blah - 4+2=6 for eier, 4 = lese for group og others. Dette gjør at blah ser ut som -r-xr–r–.
• chmod 700 blah - 4+2+1=7 for eier, 0 = ingen rettigheter for group og others.Dette gjør at blah ser ut som -rwx——.
• chmod 722 blah - 4+2+1=7 for eier, 2 = write for group og others. Dette vil gjøre at blah ser ut som -rwx-w–w-.
Merk: Noen DOS kommandoer har en egen tilleggskommando for å modifisere/slette mapper, mens de fleste UNIX kommandoene bare bruker parametere. De fleste programmene aksepterer opsjonene ved å skrive programnavn – alternativ. Mange kommandoer bruker -r eller -R opsjonen for å slette mapper eller kopiere dem. -R/-r står for rekursivt, og betyr ganske enkelt at den skal inkludere alle undermapper/filer som ligger i mappen du ønsker å slette/kopiere.
Merk 2: UNIX kommandoer er CASE sensitive, som betyr at ls er ikke det samme som LS. Igjen, dette betyr at når du skal skrive en kommando, skriv det slik du ser det, med små bokstaver. Nesten alle kommandoene i UNIX/Linux er med små bokstaver (Det finnes unntak, men det går jeg ikke nærmere inn på nå).

|
 |
|