Lokala nätverk LINUX Hulebäcksgymnasiet VT05 Ove Castell Ove Castell Hulebäcksgymnasiet 05-05-09 1 av 47
Innehållsförteckning Lokala nät LINUX Lektion 1...4 Introduktion...4 Lite historia...4 Distributioner...5 Free Software Foundation...5 GPL...5 Lektion 2...6 Installation...6 Lektion 3...7 Bootsekvens...7 Ladda Operativsystem...8 System V Startup Scripts...8 Inittab...8 Program för att redigera text...9 Inittab (/etc/inittab)...10 Lektion 4...11 Filsystemet...11 Några speciella underkataloger att lägga på minnet...11 Terminalkommandon...12 Rättigheter...12 Grundläggande kommandon...13 Några andra nyttiga kommandon...13 Ändra ägare och rättigheter på filer/kataloger...15 Filer & Länkar...15 Söka efter filer...16 Lektion 5...17 Skapa användare...17 Titta i /etc/passwd...17 Skapa grupp...18 Speciella grupprättigheter...18 Övning: 5:1...19 Lektion 6...21 Arkiverade filer/kataloger...21 Komprimering och dekomprimering av filer...21 Packa upp arkiv och dekomprimera med tar...22 Övning 6:1...22 RPM-paket...23 Att skapa rpm-paket...24 Montering av volymer...24 Övning 6:2...24 Lektion 7...25 Om skalskript...25 Att skapa körbara filer med skript-kommandon...25 Övning 7:1...26 Skalskriptet usercheck...26 Inhämta data från användaren med read...27 Kontrollera om en katalog finns...27 Omdirigering och rörmokeri...27 Omdirigering...27 Rörmokeri...28 Övning 7:2...28 Schemaläggning av skript...28 Ove Castell Hulebäcksgymnasiet 05-05-09 2 av 47
Lektion 8...29 Webbserver och klient...29 Http-protokollet och webbservertjänsten...29 Webbservern apache...29 Övning 8:1...30 Lektion 10...31 Nätverkstjänster...31 Nätverket felsökning...31 Övning 10:1...32 Din egen mini-dns...33 Samlingsdemonen xinetd...33 Telnet (23)...33 Övning 10:2...34 vsftpd (21)...34 Övning 10:3...34 Övning 10:4...35 Övning 10:5...35 Lektion 11...36 SQL-databaser och PHP skriptspråk...36 SQL-server...36 SQL-klient...37 Övning 11:1...37 PHP...37 Övning 11:2...38 Administration av SQL-server...38 Övning 11:3...39 Övning 11:4...39 Lektion 12...40 Mail...40 Övning 12:1...40 Övning 12:2...41 Säkerhetsaspekter...41 Övning 12:3...42 WebMail...42 Övning 12:4...42 NFS (Network File Server)...43 Övning 12:5...43 SAMBA...43 Lektion 13...44 OpenOffice...44 Övning 13:1 Installation...45 Utskriftshanterare...45 Övning 13:2...45 UPS (Uninterupted Power Supply)...46 Övning 13:4...46 Kompilera och installera ett program från källkod...46 Övning 13:5...46 Automatiserad installation och uppgradering...47 Övning 13:6...47 Ove Castell Hulebäcksgymnasiet 05-05-09 3 av 47
Lektion 1 Introduktion Kursen är en av tre kurser på programmet som syftar till att ge grundläggande kunskaper i systemadministration. Undervisningen sker i halvklass och varje elev får under kursstart låna en personlig hårddisk under kursen. Kursen omfattar 40 undervisningstimmar under VT2005 som ligger fördelade på 16 lektionstillfällen. Denna kurs fokuserar på LINUX som är ett av de populäraste nätoperativsystemen. Undervisningen tar huvudsakligen upp terminalbaserat arbete som är tillämpbart på alla operativsystem som tillhör UNIX-familjen. I denna familj finns en rad olika distributioner av LINUX samt: AIX som är IBMs egen UNIX-version, HPUX som är Hewlett Packards egen UNIX-version. Solaris som är SUNs egen UNIX-version. Lite historia LINUX är en fri UNIX-klon för persondatorer som stöder äkta multitasking, X-window systemet, TCP/IP nätverk m.m. LINUX är egentligen bara operativsystemets kärna som erbjuder grundläggande tjänster som att köra processer, virtuell minneshantering, filhantering och hårdvarustöd (I/O). De flesta som talar om "LINUX" syftar däremot på hela systemet - kärna tillsammans med alla program som körs på kärnan. Det innefattar en komplett programmeringsmiljö med kompilatorer och editorer, grafiska miljöer, ordbehandlare, spel m.m. Det som skiljer Linux från andra UNIX-system är att det är gratis. Det är utvecklat av en grupp hängivna programmerare, under Linus Torvalds ledning, som byter kod och idéer, rapporterar buggar och fixar problem över internet. Vem som helst är välkommen att bidraga till utvecklandet av Linux. Linux var från början Linus Torvalds hobbyprojekt. Den första fungerande versionen 0.0.1 fanns tillgänglig 1991 och blev mycket uppskattad. Många nya medarbetare strömmade till och version 1.0 lades ut på Internet 1994. Idag håller Linux på att ta en plats såväl på företag (istället för Windows 2000 eller Novell) som på skrivborden (istället för Win95/98/Me/XP) Det historiska första brevet från Linus Torvalds: From: torvalds@klaava.helsinki.fi (Linus Benedict Torvalds)Newsgroups: comp.os.minixsubject: What would you like to see most in minix?summary: small poll for my new operating systemmessage-id: <1991Aug25.205708.9541@klaava.Helsinki.FI>Date: 25 Aug 91 20:57:08 GMTOrganization: University of Helsinki Hello everybody out there using minix -I'm doing a (free) operating system (just a hobby, won't be big andprofessional like gnu) for 386(486) AT clones. This has been brewingsince april, and is starting to get ready. I'd like any feedback onthings people like/dislike in minix, as my OS resembles it somewhat (same physical layout of the file-system (due to practical reasons)among other things). I've currently ported bash(1.08) and gcc(1.40),andthings seem to work.this implies that I'll get something practical within afew months, andi'd like to know what features most people would want. Anysuggestions are welcome, but I won't promise I'll implement them :-)Linus (torvalds@kruuna.helsinki.fi)ps. Yes - it's free of any minix code, and it has a multi-threaded fs.it is NOT protable (uses 386 task switching etc), and it probably neverwill support anything other than AT-harddisks, as that'sall I have :-(. Ove Castell Hulebäcksgymnasiet 05-05-09 4 av 47
Distributioner. Lokala nät LINUX Till skillnad från AIX, HPUX och Solaris så är LINUX helt gratis. Det är fri programvara (Open Source) som kan laddas ner från nätet helt gratis. Ett lite bekvämare sätt att skaffa LINUX är att köpa en distribution (förpackning). Olika företag har då valt ut lämplig Open Source-programvara och kanske lagt till någon egen programvara förpackat denna i en praktisk kartong tillsammans med en bok som hjälper dig att komma igång. För detta tar de då betalt! En distribution kostar någonstans mellan 50:- till 1500:- beroende på hur många CD-skivor som ingår samt hur mycket litteratur som skickas med. De mest kända distributörerna är RedHat, Mandrake, Debian, Gento, SlackWare och SUSE (numera Novell). Under denna kurs använder vi distributionen RedHat (Fedora) Free Software Foundation Linux distribueras under bestämmelser för GNU. GNU är ett projekt tillhörande "Free Software Foundation". Free syftar på fri i två avseenden: 1. Det kostar inget att använda. 2. Det distribueras med källkod. Linus Torvalds släppte ursprungligen Linux under förutsättning att alla fick kopiera och distribuera operativsystemet och källkoden samt att det inte fanns någon som tog betalt för det. I dag finns det Linux att köpa. Det kan låta som en motsägelse men förändringen beror på anpassningen till licensen GPL. GPL GPL (General Public License) tillåter människor att sälja och tjäna pengar på "free software" men ger dem inte rätt att hindra andra från att distribuera programvaran gratis! Detta gör det möjligt för företag som RedHat, Mandrake, Debian, SUSE(Novell), SlackWare och andra att göra distributionspaket med Linux som de kan sälja för en överkomlig summa. Företag kan naturligtvis också sälja ett kommersiellt program som distribueras tillsammans med Linux och ta betalt för detta. Innehållet i dessa paket får spridas till andra utan förbehåll - bortsett från eventuella licensierade programpaket som följer med distributionen. Ett utdrag ur GPL-licensen: You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. Vi avslutar med att titta på en lärorik film: Den öppna källkoden. Ove Castell Hulebäcksgymnasiet 05-05-09 5 av 47
Lektion 2 Installation Hårdvara F20 Nätverkskort: 3Com 509x Grafikkort: ATI Rage IIC 8 Mb Internminne: 128 Mb Bildskärm: Taxan 17 CM Hårddisk: Min 3 GB Nätverk Datornamn: Se etikett på HD Domän: hule.harryda.se IP-nr: 10.1.4.x (x=hd-nr) Nätmask: 255.255.0.0 Nätverk: 10.1.0.0 Gateway: 10.1.1.1 DNS: 62.13.67.10 http_proxy: 10.1.1.1:8080 Vid installationen får du frågor om: Tangentbord - Välj Svenskt (sv latin1), 105-tangenter, Disable deadkeys Installationstyp - Välj Workstation Bootmanager - Välj GRUB inget lösenord! Firewall Välj ingen brandvägg Secure Linux Välj inaktivera Värdnamn Skriv itx.hule.harryda.se (där x är numret på din hårddisk) Root-password - Skriv huleroot Partitionering av Hårddisk (20 Gb) Vid partitioneringen skall du bara installera på hda (hdc är en intern disk med Win2000 ändra inte den partitionen!) monteringspunkt typ storlek kommentar swap 256Mb Swap-partition2*RAM / ext3 14 Gb Systemets partition /boot ext3 100 Mb linux kernel (boot) /home ext3 5 Gb Användarnas partition Installation kan göras från CD-skivor eller från server på nätet (du får diskett för nätinstallation av din lärare) Ove Castell Hulebäcksgymnasiet 05-05-09 6 av 47
Lektion 3 Bootsekvens Att starta en dator är på många sätt samma sak som att vakna på morgonen. När väl väckarklockan ringer kommer en undermedveten process att starta i hjärnan och godkänna signalen innan den börjar processen att börja medvetande resten av hjärnan. Vid en viss tidpunkt kommer nerverna upptäcka kommunikationen med armen och fingrarnas muskler för att med en kraftansträngning utföra den magiska handlingen - att få tyst på väckarklockan. Beroende på "processorns" hastighet kan uppvaknandet för resten av kroppen ta olika lång tid. På liknande sätt startar datorn. Slå på strömmen BIOS Diagnostik Samla systeminformation (Boot Manager) Operativsystem Typisk bootsekvens för PC BIOS sitter på moderkortet och är en krets som innehåller ett program som tar kontrollen över bootprocessen. BIOS-kretsen är knuten till moderkortstillverkaren och kan i vissa fall behöva uppgraderas för att klara av t.ex. stora hårddiskar eller andra enheter som den inte vill kännas vid. BIOS utför en diagnostik på moderkortets och tangentbordets funktionalitet samt samlar information om vissa anslutna enheter varefter den läser på den enhet som ställts in som bootenhet - vanligen den första hårddisken. (I vissa BIOS kan man välja mellan att boota operativsystemet på C:, A:, CDROM, SCSI eller USB.) Om hårddisken har en installerad BootManager kommer denna att ta kontrollen och erbjuda användaren att välja vilket operativsystem den vill starta. LINUX system använder en BootManager som heter LILO eller GRUB. GRUB är den modernaste och kan dessutom konfigureras med ett lösenord för access till något av de operativsystem som är installerat. Om man inte skriver något vid LILO/GRUB-prompten kommer default-os att startas. Ove Castell Hulebäcksgymnasiet 05-05-09 7 av 47
Ladda Operativsystem En dator utan operativsystem är som en människa utan hjärna. Operativsystemet tillhandahåller grundläggande kommunikation mellan programvaran och hårdvarans komponenter. UNIX och NT/Win2000 använder olika metoder i sina operativsystem för att uppnå denna kommunikation. UNIX-system har en kärna medan NT har en skiktad arkitektur. Ett UNIX-system kan startas i minst två olika körlägen (runlevels), vanligen kallade "single-user" och "multi-user". Single-user används huvudsakligen till administrativa syften, som att partitionera diskarna eller liknade uppgifter. Dessutom finns ett läge som heter "Halted" som stänger alla processer. System V Startup Scripts System V (SysV) startup är lite mer invecklad, och erbjuder därmed fler möjligheter. I stället för de 3 körlägen (runlevels) som finns i BSD erbjuder SysV 8 st. Dessa är runlevel 0-6 och S (single-user). Varje runlevel har unika funktioner. Körlägena definieras med en serie script som körs av processen init. Sambandet mellan körlägen och script finns i filen /etc/inittab Tabell 1 SysV Run Levels 0 Halted S,s Single-user mode. Används till administration och diagnosticering. Bara konsol-login är tillåten. Nätverket är inte aktivt. Användarnas filsystem är inte monterade om man startar in i single-user, däremot är de monterade om man går ner från en högre runlevel. 1 Ytterligare ett single-user mode. Alla filsystem förblir monterade, många tjänster tillåts köra. Bara konsol-login är tillåten. 2 Multi-user mode med begränsad nätverksfunktion. 3 Multi-user mode med fullt fungerande nätverksfunktioner. Inittab Ofta default mode. 4 Ej definierad. De flesta system använder inte detta mode! 5 Multi-user mode med nätverk, X-server och grafisk login (xdm) 6 Halt and reeboot. Som att göra en reset... Filen /etc/inittab innehåller uppgifter om hur, vilka och i vilken ordning operativsystemets grundläggande tjänter skall startas. Konfigurationsfilerna i UNIX är vanliga textfiler som kan redigeras i en vanlig texteditor. Du kan använda dig av en enkel editor som heter nano för att titta på hur filen ser ut. Se upp så du inte sparar en "trasig" fil - då får du problem med uppstarten! Observera att filen är väl kommenterad. Kommentarer föregås av en grind (#). Om du vill stänga av funktioner i inittab skall du aldrig radera information. Skriv in en grind (#) framför raden som du vill inaktivera så blir det lätt att aktivera funktionen om det skulle bli aktuellt. Raden id:5:initdefault talar om vilket körläge som datorn kommer att starta upp i. Denna konfiguration startar alltså i runlevel 5, med det grafiska systemet X11. I katalogen /etc/rc.d återfinns tre filer som körs innan rc-skripten för runleveln körs. rc rc.local rc.sysinit dessa filer körs vid uppstart. Om du som systemadministratör vill lägga till någon funktion skall du placera detta sist i filen rc.sysinit. Kom ihåg att skriva tydliga kommentarer vem, när och varför detta skrevs in. Ove Castell Hulebäcksgymnasiet 05-05-09 8 av 47
Ex: cp -f /etc/issue /etc/issue.net echo >> /etc/issue fi Lokala nät LINUX # Tillägg för att stödja IDE CD-brännare (för SCSI-emulering) # Ove Castell 001103 modprobe /lib/modules/2.2.16-22/scsi/ide-scsi Program för att redigera text. nano joe vi Liten enkel texteditor. (i äldre system kan den heta pico) Skapa filen index.html med pico index.html Spara Ctrl+O Radnr Ctrl+C Klipp ut Ctrl+K Klista in Ctrl+U Avsluta Ctrl+X (bekräfta med Y för att spara ändringar) Skriv nano fil1.txt för att redigera filen text1.txt. Om filen inte finns så skapas den. Enkel editor (kan konfigureras för att emulera andra texteditorer.) Avancerad editor (Alla UNIX-system) (vim = vi improved, är en modernare variant) När du startar vi kommer du in i kommandoläge. Tryck i (insert) för att börja skriva text. För komma tillbaka till kommandoläge trycker du escape. I kommandoläget kan du skriva :w för att spara, :q för att avsluta och :help för hjälp. Skriv vi fil1.txt för att redigera filen fil1.txt. Om den inte finns så skapas filen. emacs Mycket avancerad editor. Bra för programmerare! (Alla UNIX-system) Du skall lära dig att behärska åtminstone ett av dessa program. Ove Castell Hulebäcksgymnasiet 05-05-09 9 av 47
Inittab (/etc/inittab) # inittab This file describes how the INIT process should set up # the system in a certain run-level. # # Author: Miquel van Smoorenburg, <miquels@drinkel.nl.mugnet.org> # Modified for RHS Linux by Marc Ewing and Donnie Barnes # # Default runlevel. The runlevels used by RHS are: # 0 - halt (Do NOT set initdefault to this) # 1 - Single user mode # 2 - Multiuser, without NFS (The same as 3, if you do not have networking) # 3 - Full multiuser mode # 4 - unused # 5 - X11 # 6 - reboot (Do NOT set initdefault to this) # id:5:initdefault: # System initialization. si::sysinit:/etc/rc.d/rc.sysinit l0:0:wait:/etc/rc.d/rc 0 l1:1:wait:/etc/rc.d/rc 1 l2:2:wait:/etc/rc.d/rc 2 l3:3:wait:/etc/rc.d/rc 3 l4:4:wait:/etc/rc.d/rc 4 l5:5:wait:/etc/rc.d/rc 5 l6:6:wait:/etc/rc.d/rc 6 # Things to run in every runlevel. ud::once:/sbin/update # Trap CTRL-ALT-DELETE ca::ctrlaltdel:/sbin/shutdown -t3 -r now # When our UPS tells us power has failed, assume we have a few minutes # of power left. Schedule a shutdown for 2 minutes from now. # This does, of course, assume you have powerd installed and your # UPS connected and working correctly. pf::powerfail:/sbin/shutdown -f -h +2 "Power Failure; System Shutting Down" # If power was restored before the shutdown kicked in, cancel it. pr:12345:powerokwait:/sbin/shutdown -c "Power Restored; Shutdown Cancelled" # Run gettys in standard runlevels 1:2345:respawn:/sbin/mingetty tty1 2:2345:respawn:/sbin/mingetty tty2 3:2345:respawn:/sbin/mingetty tty3 4:2345:respawn:/sbin/mingetty tty4 5:2345:respawn:/sbin/mingetty tty5 6:2345:respawn:/sbin/mingetty tty6 # Run xdm in runlevel 5 # xdm is now a separate service x:5:respawn:/etc/x11/prefdm -nodaemon Ove Castell Hulebäcksgymnasiet 05-05-09 10 av 47
Lektion 4 Lokala nät LINUX Filsystemet Filsystemet i ett fleranvändarsystem måste kunna hantera rättigheter ner till filnivå. Varje enskild fil eller katalog har därför rättigheter som talar om vem som får göra vad med filen. De vanligaste filsystemen i LINUX är ext2 och ext3. Win2000 har ett filsystem son heter NTFS som också kan hantera filrättigheter. VFAT eller FAT32 som är vanligt på Windows-system saknar filrättigheter. Linux har ETT filsystem för alla enheter! (Inga C:, D:, E: H: etc.) / Rotkatalogen /bin Binärfiler. Här ligger vanliga kommandon. Finns i sökvägen. /boot Boot-filer. Innehåller systemets linux-kärna. Startas av GRUB /dev Devices. Drivrutiner till alla tänkbara datorkomponenter. /etc Diverse inställningsfiler. /home Hemkataloger. Här ligger användarnas kataloger och filer /initrd Bootkatalog. Används vid installation som ramdisk. (Normalt tom) /lib Librarys. C++ bibliotek med gemensamma filer. (jmfr. dll-filer) /lost+found Filrester efter trasigt filsystem. (bör vara tom!) /media Monterade filsystem typ USB, FireWire (ej standard) /misc Blandat. Oftast tom. /mnt Monterade filsystem. Standard /mnt/floppy, /mnt/cdrom /opt Optional. Oftast tom. /proc Processes. Linuxsystemets informationskatalog /root Adminkonto. Root-användarens hemkatalog /sbin SuperUser binärfiler. Kommandon för administrativa funktioner. /tmp Temp. Systemets tillfälliga filer. /usr User. Alla installerade program och dokumentation för användare. /var Variable. Loggfiler, FTP-server, WWW-server m.m. Några speciella underkataloger att lägga på minnet /etc/rc.d Runlevelkatalog med underkataloger för varje runlevel. /etc/rc.d/init.d Skript för alla installerade tjänster som kan köras med start, stop, restart /etc/xinetd.d Innehåller alla tjänster som körs under tjänsten xinetd (nätverkskommunikation) /etc/skel Innehåller det skelett med hemkatalogfiler som kopieras när du skapar en ny användare. /usr/bin Binärfiler. Kommandon för användare. (Ingår i sökvägen) /usr/sbin Binärfiler. Kommandon för administratörer. (Ingår i sökvägen för root) /usr/share/xyz Installerade program där programmet har mappen xyz /usr/share/doc Dokumentation till installerade program. /var/log Innehåller systemets logg-filer. /var/ftp FTP-serverns rotkatalog /var/www/html WWW-serverns rotkatalog Ove Castell Hulebäcksgymnasiet 05-05-09 11 av 47
Terminalkommandon Här presenteras några av de mest grundläggande kommandon som vi kan använda i en UNIX/LINUX-terminal. Observera att detta filsystem ser skillnad på stora/små bokstäver samt att du slipper en del problem om du undviker åäö och mellanslag i filnamnen! (Även om filsystemet hanterar dessa så fungerar det inte så bra på http-protokollet om filen skall läggas på en webb-server.) ls ls -l ls -la (list) skriver en lista över filnamn i aktuell katalog (list long) listar med lång fillista (list long all) listar med lång fillista inklusive dolda filer (.filnamn) (dir kan användas i de flesta LINUX-systemen i stället för ls) [ove@it xtra]$ ls -l total 5 drwxr-xr-x 3 root root 1024 Oct 9 12:36. drwx--x--x 35 ove ove 2048 Oct 9 12:35.. drwxr-xr-x 2 ove ove 1024 Oct 9 12:35 minadoc -rw-r--r-- 1 ove ove 7 Oct 9 12:36 mintext.php rättighet * ägare grupp storlek datum/tid filnamn De första två raderna syns inte alltid vid ls -l men alltid om man tar ls -la. De har följande betydelse:. Detta är en länk till den katalog du befinner dig i... Detta är en länk till katalogen ovanför den du är i. * Denna siffra anger antalet länkar till filen. Att det finns 35 länkar till.. betyder bara att det finns många underkataloger eftersom varje underkatalog innehåller en.. -länk tillbaka. Undersök vilka ytterligae parametrar du kan använda med ls-kommandot. Skriv: ls - -help så får du en kortfattad syntaxhjälp för ls. Om du vill ha en mer omfattande manual om ls-kommandot kan du skriva: man ls Rättigheter typ ägare grupp alla - rwx rwx rwx typ ----------------------------- d = katalogfil - = datafil l = symbolisk länk rättigheter (ägare, grupp, alla) ----------------------------- r = read (läsrättighet) w = write (skrivrättighet) x = execute (körrättighet) Ove Castell Hulebäcksgymnasiet 05-05-09 12 av 47
Grundläggande kommandon cd minadoc (change directory) går in i katalogen minadoc cd.. flyttar en katalog upp i "katalog-trädet" cd /home går in i home-katalogen oavsett var i filsystemet du står. cd../sune Om du står i katalogen /home/anna byter detta till /home/sune cd../../sune Om du står i katalogen /home/anna/html byter detta till /home/sune rm mintext (remove) raderar filen mintext. rm rf minkatalog OBS! Farligt kommando tar bort alla filer/kataloger rekursivt utan frågor! Används bara efter att ha tänkt efter riktigt noga ;-) mkdir minadoc rmdir minadoc (make directory) skapar katalogen "minadoc" raderar katalogen "minadoc" om den är tom. cp mintext./minadoc (copy) Kopierar filen mintext till under-katalogen minadoc och behåller filnamnet. cp mintext mintext2 Kopierar filen mintext till och ger kopian filnamnet mintext2 mv mintext./minadoc (move) Flyttar filen mintext till under-katalogen minadoc och behåller filnamnet. mv mintext mintext2 Byter namn på filen mintext till mintext2. exit avslutar en telnet-session. De flesta kommandon har parametrar som styr funktionen. Skriv kommandot help så visas en kort syntaxhjälp med de vanligaste parametrarna. Ex: ls help Om du vill läsa mer om ett kommando kan du skriva man kommando. Ex: man ls Några andra nyttiga kommandon grep Syntax: grep [-r] <sökord> <sökområde> Detta kommando är mycket användbart för att söka efter förekomsten av någon textsträng i filer. Grep skriver ut alla filnamn och de rader som matchar sökordet. Exempel: Leta efter användaren root i /etc/passwd grep root /etc/passwd Du kan också söka rekursivt i ett filträd med parametern r och sökområdet kan vara * för alla filer. cat Syntax: cat <filnamn> Catenuate Skriver ut innehållet I filen till terminalen. cat fil1.txt Skriver ut innehållet i fil1.txt till skärmen (terminalen) cat fil1.txt > fil2.txt Skriver innehållet i fil1.txt till fil2.txt (Om fil2.txt existerar ersätts innehållet.) cat fil1.txt >> fil2.txt Skriver innehållet i fil1.txt till slutet av filen fil2.txt Ove Castell Hulebäcksgymnasiet 05-05-09 13 av 47
less Syntax: less <filnamn> Detta kommando är bra att använda för att läsa textfiler. Liksom cat kommer innehållet i filen att skrivas till skärmen men vi kan dessutom bläddra upp och ner i filen med PageUp och PageDowntangenterna. Ett liknande kommando är more men less har mer (more) funktioner ;-) less fil1.txt Skriver innehållet I filen till skärmen väntar efter att ha fyllt skärmen. w Syntax: w [username] Detta kommando listar vilka som är inloggade på din server eller visar information om en viss användares inloggning. Ett liknande kommando är who som dock visar lite mindre info w Skriver ut vilka som är inloggade 9:41pm up 8:56, 3 users, load average: 0.00, 0.00, 0.01 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root tty1-8:27 13.00s 1.91s 1.53s vim lektion4.txt root tty2-8:31 0.00s 1.79s 0.09s -bash jhr tty3-9:37 3:58 1.06s 0.25s -bash sarae :0-9:55?xdm? 1:45 0.04s /bin/sh/ usr/bin/startkde sarae pts/0-18:06 1:27m 0.00s 0.55s kdeinit: kwrite ove pts/1 it.hule.h 19:36 0.00s 0.03s 0.00s w Vi kan se att root är inloggad på terminal tty1 och tty2 och jhr är inloggad på tty3. sarae kör en X-session (:0) och kör programmet kwrite medan ove har loggat in på en terminal över nätverket från it.hule.harryda.se. I kolumnen till höger (WHAT) kan vi dessutom se vad de sysslar med för tillfället. Om du i kolumn (TTY) istället ser beteckningen pts innebär det att det är en grafisk terminalinloggning eller en nätverksinloggning. I kolumnen (FROM) anges vilket IP-nummer eller domännamn som användaren ansluter från. Ett streck (-) innebär att det är en lokal inloggning. JCPU är total processortid för denna inloggning. PCPU är processortid för det senaste kommandot (WHAT). su Syntax: su [username] Med su-kommandot kan du som root-användare utan att ange lösenord bli en annan användare på systemet. Om kommandot används utan parameter avses att du vill byta till root-användaren - vilket innebär att du skall ange root-lösenordet. Om du dessutom vill ha root-användarens sökvägar måste du ge kommandot su - date Syntax: date [+FORMAT] Om du vill ha reda på dagens datum och tid kan du skriva detta kommando. För att ställa klockan kan du använda det med parameterna -S Du kan även formattera datum-tiden enligt önskemål se: (date --help) date +"%A %-d %B %T %Y %Z" cal Syntax: cal [-m3] [månad år] Visar en kalender. m ger måndag som första veckodag. 3 visar även föregående och nästa månad. Månad anges med siffra 1-12 och år med siffror t.ex. 2004 Ove Castell Hulebäcksgymnasiet 05-04-19 14 av 47
cal m3 Skriver ut föregående, nuvarande och kommande månads kalendrar. whoami Syntax: whoami Om du vid något tillfälle skulle bli så schizofren att du undrar vem du egentligen är kan du testa detta udda kommando! Ändra ägare och rättigheter på filer/kataloger. typ ägare grupp alla - rwx r-x --- 421 421 421 binärt positions-värde 7 5 0 decimalt mod-värde chmod 750 minadoc (change mode) Sätter rättigheten 750 på filen minadoc. chown ägare.grupp text Sätter ägare och grupp på filen text. OBS! För att få gå in i en katalog måste användaren ha x-rättighet på katalogen Filer & Länkar Varje fil har ett namn och en plats på hårddisken där filen lagras. Platsen bestäms av ett siffervärde som kallas INOD. Om du vill se filens INOD kan du skriva: ls -i Ett filnamn är egentligen en länk till filens INOD denna typ av länk kallas hård länk. En INOD kan ha många namn. Däremot måste systemet hålla reda på hur många namn som pekar på en viss INOD så att informationen bara raderas när man raderar det sista filnamnet. Hård länk Den hårda länken pekar på en INOD (den fysiska plats på disken där filen ligger lagrad) och kan endast göras inom en och samma partition. Du kan se hur många hårda länkar som finns till en fil när du skriver ls -l -rw-r--r-- 1 ove ove 7 Oct 9 12:36 mintext.php Efter filrättigheterna står en siffra som säger hur många "filnamn" som pekar på denna INOD. Data som ligger lagrad på disken raderas först när den sista hårda länken raderas! Symbolisk länk Den symboliska länken pekar på ett filnamn och kan peka på filnamn i andra partitioner och andra filsystem. Om den fil som utgör källa raderas fungerar inte länken! Skapa länkar ln källfil målfil ln -s källfil målfil (link) Skapar en hård länk till källfil med namnet målfil (link) Skapar en symbolisk länk till källfil med namnet målfil Ove Castell Hulebäcksgymnasiet 05-04-19 15 av 47
Söka efter filer Ett mycket användbart hjälpmedel för att hitta filer på hårddisken är locate. Detta kommando är mycket snabbt eftersom det söker i en indexerad databas över alla filer på systemet. Databasen måste dock uppdateras regelbundet för att återspegla verkligheten. updatedb (update database) Läser hela filsystemet och skapar en indexerad databas (slocate). Detta kan ta lång tid för stora filsystem och körs lämpligen som en cron-tjänst (schemalagd tjänst) under natten! locate sökuttryck Söker efter filnamn eller sökuttryck. Flaggan -i gör sökningen "case insensitive"? ett frågetecken representerar ett valfritt tecken en stjärna representerar flera valfria tecken sökuttryck.doc kommer att hitta alla filer som innehåller.doc *.doc kommer att hitta alla filer som slutar på.doc Ett annat hjälpmedel är find som söker i filsystemet direkt. Detta kommando har många flaggor för att filtrera speciella filegenskaper. För att läsa mer om detta kan du skriva man find eller find --help find [sökväg] -flagga minfil Om sökväg utelämnas söker den i hela filsystemet (Kan ta tid!) flagga -name söker efter filenamn eller filnamnsdel. Ex: find./ -name *.doc söker efter alla filer som har ett filnamn som slutar på.doc i filträdet med start i den katalog du skriver kommandot. Ove Castell Hulebäcksgymnasiet 05-04-19 16 av 47
Lektion 5 Skapa användare Kommandot useradd skapar en användare. Ex: useradd stina Kommandot skriver en rad i filen /etc/passwd och en rad i /etc/shadow. Det skapar dessutom en personlig grupp genom att skriva en rad i filen /etc/group och en rad i filen /etc/gshadow. Dessutom skapar kommandot användarens hemkatalog och sätter rättigheterna på katalogen till drwx------, ägare till stina och grupp till stina på hemkatalogen. Alla filer som ligger i /etc/skel kopieras till användarens hemkatalog. Om vi vill att användarens hemkatalog skall vara någon annanstans än i /home måste vi ge en parameter till useradd-kommandot. d <hemkatalog> Om stina skall ha sin hemkatalog i grupp-katalogen itda2b blir det Ex: useradd d /home/itda2b/stina stina Det finns många fler alternativ med useradd-kommandot som du kan läsa om med: man useradd OBS! Varje användare tilldelas ett unikt användar-nummer UID (User IDentity) och ett unikt gruppnummer till den personliga gruppen GID (Group IDentity) Dessa nummer bör vara identiska. När du skapar användare med useradd-kommandot kommer UID/GID att starta på 500 och sedan öka med 1 för varje användare. Efter att ha skapat användaren stina måste du sätta ett lösenord för att kunna använda kontot. För att sätta lösenord kan du som root skriva: passwd stina Alla användare kan ändra sitt eget lösenord genom att bara ge kommandot passwd utan något användarnamn efter. Observera att root kan sätta vilka dumma lösenord som helst medan övriga användare måste uppfylla vissa säkerhetskriterier på lösenordet. Det kommando som tar bort en användare heter userdel. Titta i /etc/passwd I filen /etc/passwd kan du redigera och ändra konton men var försiktig så du inte ändrar första raden av misstag det är ditt root-konto! vim /etc/passwd en användare kan definieras så här: Användarnamn:x:UID:GID:Fullständigt namn:hemkatalog:kommandoskal Ex: ove:x:501:501:ove Castell:/home/ove:/bin/bash i filen /etc/group finns också användarens privata grupp. I detta fall gruppen ove: ove:x:501:<eventuella medlemmar separerade med komma> Ove Castell Hulebäcksgymnasiet 05-04-19 17 av 47