1 / 40

Unix och Linux

Unix och Linux. HISTORIA – FILER OCH FILSYSTEM – PROCESSER – ANVÄNDARE GRUPPER – RÄTTIGHETER – KOMMANDON – LOGGNING. Historia. UNICS skapades 1969-1970 av främst Kenneth Thompson och Dennis Ritchie på Bell Labs. Ken Thompson. Först implementerat på PDP 7, sedan PDP 11/45. Dennis Ritchie.

ling
Download Presentation

Unix och Linux

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Unix och Linux HISTORIA – FILER OCH FILSYSTEM – PROCESSER – ANVÄNDAREGRUPPER – RÄTTIGHETER – KOMMANDON – LOGGNING

  2. Historia UNICS skapades 1969-1970 av främst Kenneth Thompson och Dennis Ritchie på Bell Labs Ken Thompson Först implementerat på PDP 7, sedan PDP 11/45 Dennis Ritchie Thompson, Ritchie, PDP 11

  3. Standardisering • Single Unix Specification (SUS) • Efterträdare till bl.a. Unix98 • Publicerad av Open Group 2004 • Även IEEE och ISO/IEC-standard • POSIX (Portable Operating System Interface) • Underlätta portering av tillämpningar mellan operativsystem • Består av flera delstandarder, inspirerade av Unix • Implementeras till viss del av de flesta operativsystem

  4. Linux • Öppen, portabel operativsystemskärna • Linux innehåller inga användarprogram • Influenser från BSD, System V och andra system • Operativsystemsomgivningen • Består av Gnu-projektets verktyg (därav Gnu/Linux) • Bestäms av den distribution av Linux man använder

  5. Filer och filsystem

  6. Vanligaste sorten Vanlig datafil Kan även vara Symbolisk länk Device-nod Unix domain socket Named pipe Block device . . . Vad är en fil?

  7. Specialfiler • Special files är gränssnittet för drivrutiner • Två typer: character och block • Hårddiskar, terminaler, slumptalsgenerator mm • Lagras i /dev % cd /dev; ls -l audio fd0 ttyp1 sda sda1 crw-rw---- 1 root audio 14, 4 Jun 16 2001 audio brw-rw---- 1 root floppy 2, 0 Jul 30 2001 fd0 crw-rw---- 1 root tty 3, 1 Jun 16 2001 ttyp1 brw-rw---- 1 root disk 8, 0 Jun 16 2001 /dev/sda brw-rw---- 1 root disk 8, 1 Jun 16 2001 /dev/sda1

  8. Blockenheter /dev/hda – IDE-disk /dev/hda1 – Partition 1 på hda /dev/sda – SCSI-disk /dev/ubd0 – UML-disk Teckenenheter /dev/tty – Aktuell terminal /dev/console – Systemkonsoll /dev/pts/17 – Pseudo-terminal Special-specialfiler /dev/null – Svart hål /dev/zero – Nollor /dev/kmem – Kärnans minne Vanliga Specialfiler

  9. En struktur av filer på disk Hierarkisk struktur Även programvara Även specifikationerna En logisk vy av alla filer En gemensam hierarki Skapas genom monteringar Vad är ett filsystem

  10. Filsystem

  11. Filsystemets organisation Beror på Unixvariant • Standarder finns men följs inte helt Viktiga kataloger • /etc innehåller inställningar för systemet • /usr innehåller program och programdata • /var innehåller loggar, mailköer och liknande • /usr/bin och /bin innehåller program • /usr/sbin och /sbin innehåller administratörsverktyg • /dev innehåller devices (bl.a. representation av hårdvara)

  12. Filsystemstyp: ext2 Options: noexec Källa: /dev/hda2 (blockenhet) Monteringspunkt: /data Filsystemstyp: nfs Options: rw Källa: atlas:/users/9/3/alean938 Monteringspunkt: /home/alean938 Montering av filsystem mount –t ext2 –o noexec /dev/hda2 /data mount –t nfs –o rw atlas:/users/9/3/alean938 /home/alean938 / / atlas:/ home data users home data 9 0 1 … alean938 alean938 … 3 4 2 … /dev/hda1 /dev/hda1 alean938

  13. Traditionella filsystem ext3fs (Linux standard) ufs, zfs (Solaris standard) xfs (Irix standard) ntfs (Windows standard) VxFS (3e part, kommersiellt) Särskilda filsystem tmpfs (tillfällig lagring) sysfs (Linux devices/drivers) procfs (system/processinformation) Nätverksfilsystem nfs (Network File System) cifs (Common Internet FS) afs (Andew File System) Distribuerade filsystem Coda Lustre Gfs (Global File System) GoogleFS Filsystemstyper

  14. mkfs Skapar fysiska filsystem mount Infogar filsystem i hierarkin umount Tar bort filsystem ur hierarkin fsck Reparerar trasiga filsystem tunefs Inställningar för filsystem Fler kommandon

  15. Inställningar /proc/sys/net/ipv4/… Information /proc/version /proc/meminfo Implementeras som sysctl Kommandot sysctl Filen /etc/sysctl.conf Särskilda filsystem: procfs (/proc) % echo 1 > /proc/sys/net/ipv4/tcp_ecn % cat /proc/version Linux version 2.6.7 (root@sysi-01) (gcc version 3.3.4 (Debian 1:3.3.4-6)) #1 Wed Sep 1 16:40:49 CEST 2004 % cat /proc/meminfo MemTotal: 907564 kB MemFree: 24544 kB Buffers: 231808 kB Cached: 347912 kB SwapCached: 0 kB % /sbin/sysctl net.ipv4.ip_default_ttl net.ipv4.ip_default_ttl = 64 % /sbin/sysctl -w net.ipv4.ip_default_ttl=65 net.ipv4.ip_default_ttl = 65 % /sbin/sysctl –w net.ipv4.tcp_ecn=1 net.ipv4.tcp_ecn = 1

  16. Processer Användare Grupper Rättigheter

  17. Processer och signaler • Skapas med systemanropet fork • Nya program startas med fork + exec • Styrs via signaler • Skickas med systemanropet kill (kommandot kill) • SIGKILL avbryter, SIGSTOP och SIGTSTP pausar • Visa processer med kommandot ps • Se ID, förälder, prioritet, status, kommando mm • Användbara varianter: ps axu, ps -AHl

  18. Processer och signaler % ps -H -eo s,user,pid,ppid,pri,sz,tty,cmd S USER PID PPID PRI SZ TT CMD S root 1 0 31 319 ? init S root 255 1 30 388 ? gpm S root 260 1 30 324 ? inetd S root 277 1 30 0 ? nfsd S root 280 277 30 0 ? lockd S root 281 280 30 0 ? rpciod S root 820 1 30 700 ? sshd S root 20484 820 30 1399 ? sshd S davby 20487 20484 30 1413 ? sshd S davby 20491 20487 30 661 pts/1 zsh R davby 20829 20491 22 842 pts/1 ps S Status PID Process-ID PPID Förälder PRI Prioritet SZ Storlek TT Terminal CMD Kommando

  19. Effective user ID UID som bestämmer rättigheter Real user ID Processens ”riktiga” UID Saved user ID Sparat UID för att återställa real/effective user ID Ändra EUID Systemanrop (seteuid) Setuid-bit på program Ändra RUID Systemanrop (setreuid) Kommandot su Användare och processer

  20. Användare och processer sshd ändrade real UID till davby % ps -H -eo ruser,user,cmd PID RUSER USER COMMAND 20484 root root /usr/sbin/sshd 20487 davby davby /usr/sbin/sshd 20491 davby davby -zsh 21035 davby root passwd 21038 davby davby ps -H -eo pid,ruser,user,cmd passwd är setuid root och ändrar effective UID; gör det möjligt att ändra filer som davby inte har rätt att ändra (tex /etc/passwd)

  21. Rättigheter • Åtkomst till filer reglerar de flesta rättigheter • Privilege elevation för tillfälligt ökade rättigheter • För att skriva till skyddade filer, utökad access till nätverk mm • Uppnås genom att ändra EUID och/eller EGID • Exekverbara filer kan ändra EUID/EGID till sin ägare eller grupp • Användare med UID 0 är ett specialfall, ”root” • Får ändra UID och GID fritt • Har åtkomst till alla filer och systemresurser

  22. Rättigheter owner group % cd /dev; ls -l audio fd0 ttyp1 crw-rw---- 1 root audio 14, 4 Jun 16 2001 audio brw-rw---- 1 root floppy 2, 0 Jul 30 2001 fd0 crw-rw---- 1 root tty 3, 1 Jun 16 2001 ttyp1 % cd /usr/bin; ls -l passwd wall -rwsr-xr-x 1 root root 24680 Apr 7 17:59 passwd -rwxr-sr-x 1 root tty 9112 Jan 27 2002 wall • wall kör alltid med EGID (effective group ID) tty • passwd kör alltid med EUID (effective user ID) root

  23. Primärt objekt för rättigheter Varje fil ägs av en användare Rättigheter ges till användare Processer hör till användare Definieras i /etc/passwd och /etc/shadow Kan definieras i katalogtjänst som LDAP eller NIS Sekundärt objekt för rättigheter Rättigheter kan delas ut till en grupper Användare är medlemmar i grupper En primär grupp (i /etc/passwd) Kan vara med i flera sekundära grupper (i /etc/group) Definieras i /etc/group Kan definieras i katalogtjänst som LDAP eller NIS Användare och grupper

  24. User name Användarnamnet Password Krypterat lösenord User ID (uid) Användarens identitet Group ID (gid) Användarens primära grupp Full name (gecos) Godtycklig information Home directory Arbetskatalog för login shell Login shell Program som startas när användaren loggar in Användare root:x:0:0:root:/root:/usr/bin/zsh daemon:x:1:1:daemon:/usr/sbin:/bin/sh Utdrag ut /etc/passwd

  25. User name Password Days since password was last changed Days before password may be changed Days after which password must be changed Days before password is to expire that user is warned Days after password expires that account is disabled Days since Jan 1, 1970 that account is disabled A reserved field Användare root:$1$L6.uWAls$wi2eBrKgbp9S54DWF.iNi.:11500:0:99999:7::: daemon:*:11500:0:99999:7::: Utdrag ut /etc/shadow

  26. Group name Gruppens namn Password Krypterat lösenord för gruppen Group ID (gid) Gruppens ID Members Lista av användare som har denna grupp som sekundär grupp Grupper backup:x:34:taper,janpe operator:x:37:davby,calcu,root Utdrag ut /etc/group

  27. Informationsdatabaser Användare/lösenord Datornamn Protokoll mm… Name service switch Bestämmer varifrån informationen ska hämtas Konfigureras i /etc/nsswitch.conf Cache med nscd Exempel Name Service Switch (NSS) passwd: files ldap group: files ldap shadow: files ldap hosts: files dns networks: files protocols: db files services: db files ethers: db files rpc: db files netgroup: nis

  28. Kommandotolken

  29. Exekverbara filer Definieras av en rättighetsbit Varje kommando är en exekverbar fil Varje exekverbar fil kan vara ett kommando Script Script är exekverbara textfiler som tolkas av ett annat program Kommandon Kommandon Exekvering av program /bin/tar /bin/ls /bin/rm

  30. Användardialogen Köra kommandon Dirigera om in/utdata Expansion av filnamn Inbyggda kommandon Hantering av omgivningsvariabler Kommandotolkens funktioner

  31. Enkla kommandon Väldefinierade uppgifter Komplexa kommandon byggs upp från enkla Sätts samman med pipes, substitution, redirection, sekventiering m.m. cut –d: -f1,6 </etc/passwd | \ while read user dir ; do echo $user find $dir –type f \ –atime +365 –print | \ xargs du | \ awk ’BEGIN{s=0} {s+=$1} END{print s}’ done | \ paste - - | \ sort > DISK_REPORT Kommandon i Unix

  32. Kommandoexempel cut –d: -f1,6 < /etc/passwd | \ while read user dir ; do echo $user find $dir –type f –atime +365 –print | \ xargs du | \ awk ’BEGIN{s=0} {s+=$1} END{print s}’ done | \ paste - - | \ sort > DISK_REPORT

  33. Loggning

  34. Loggning • Händelser i systemet skrivs till loggfiler • Alla ligger normalt under /var/log • Loggfiler roteras för att inte ta för mycket plats apache/ auth.log auth.log.0auth.log.1.gz daemon.log daemon.log.0daemon.log.1.gz dmesg kern.log kern.log.0kern.log.1.gzlastlog mail.err mail.err.0mail.err.1.gz mail.info mail.info.0 mail.log mail.log.0mail.log.1.gz mail.warn mail.warn.0mail.warn.1.gz messages messages.0 syslog syslog.0syslog.1.gz wtmp Innehåll i /var/log

  35. Loggning • Loggning görs genom syslogd • Konfigureras i /etc/syslogd.conf • Möjlighet att logga till en annan dator • Viktiga loggfiler • syslog Huvudlogfil • auth.log Inloggningar och utloggningar • daemon.log Meddelanden från daemoner • debug.log Debugmeddelanden

  36. Loggexempel /var/log/syslog Aug 17 16:17:01 sysinst-gw /USR/SBIN/CRON[15369]: (root) CMD ( run-parts --report /etc/cron.hourly) Aug 17 16:22:46 sysinst-gw named[1930]: loading configuration from '/etc/bind/named.conf' Aug 17 16:23:28 sysinst-gw postfix/pickup[15367]: BEDD31F36C: uid=0 from=<root> /var/log/auth.log Aug 17 16:22:28 sysinst-gw sshd[15370]: (pam_unix) authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=obel19.ida.liu.se user=davby Aug 17 16:22:30 sysinst-gw sshd[15370]: error: PAM: Authentication failure for davby from obel19.ida.liu.se Aug 17 16:22:38 sysinst-gw su[15374]: + pts/12 davby:root Aug 17 16:22:38 sysinst-gw su[15374]: (pam_unix) session opened for user root by davby(uid=1150)

  37. Loggexempel /var/log/mail.log Aug 17 16:23:28 sysinst-gw postfix/pickup[15367]: BEDD31F36C: uid=0 from=<root> Aug 17 16:23:28 sysinst-gw postfix/cleanup[15384]: BEDD31F36C: message-id=<20060817142328.BEDD31F36C@sysinst-gw.sysinst.ida.liu.se> Aug 17 16:23:28 sysinst-gw postfix/qmgr[2282]: BEDD31F36C: from=<root@sysinst-gw.sysinst.ida.liu.se>, size=333, nrcpt=1 (queue active) Aug 17 16:23:31 sysinst-gw postfix/smtp[15386]: connect to ida.liu.se[2001:6b0:17:f020::25]: No route to host (port 25) Aug 17 16:23:32 sysinst-gw postfix/smtp[15386]: BEDD31F36C: to=<davby@ida.liu.se>, relay=ida.liu.se[130.236.177.25], delay=4, status=bounced (host ida.liu.se[130.236.177.25] said: 553 5.1.8 <davby@ida.liu.se>... Domain of sender address root@sysinst-gw.sysinst.ida.liu.se does not exist (in reply to RCPT TO command)) Aug 17 16:23:32 sysinst-gw postfix/cleanup[15384]: 11C321F36D: message-id=<20060817142332.11C321F36D@sysinst-gw.sysinst.ida.liu.se> Aug 17 16:23:32 sysinst-gw postfix/qmgr[2282]: 11C321F36D: from=<>, size=2460, nrcpt=1 (queue active) Aug 17 16:23:32 sysinst-gw postfix/qmgr[2282]: BEDD31F36C: removed Aug 17 16:23:32 sysinst-gw postfix/cleanup[15384]: 1B1831F2BE: message-id=<20060817142332.11C321F36D@sysinst-gw.sysinst.ida.liu.se> Aug 17 16:23:32 sysinst-gw postfix/local[15388]: 11C321F36D: to=<root@sysinst-gw.sysinst.ida.liu.se>, relay=local, delay=0, status=sent (forwarded as 1B1831F2BE) Aug 17 16:23:32 sysinst-gw postfix/qmgr[2282]: 1B1831F2BE: from=<>, size=2620, nrcpt=1 (queue active) Aug 17 16:23:32 sysinst-gw postfix/qmgr[2282]: 11C321F36D: removed Aug 17 16:23:35 sysinst-gw postfix/smtp[15386]: connect to ida.liu.se[2001:6b0:17:f020::25]: No route to host (port 25) Aug 17 16:23:35 sysinst-gw postfix/smtp[15386]: 1B1831F2BE: to=<davby@ida.liu.se>, orig_to=<root@sysinst-gw.sysinst.ida.liu.se>, relay=ida.liu.se[130.236.177.25], delay=3, status=sent (250 2.0.0 k7HENZ7o021810 Message accepted for delivery) Aug 17 16:23:35 sysinst-gw postfix/qmgr[2282]: 1B1831F2BE: removed

  38. Felsökning genom loggen • Känn till var varje program loggar fel • Allt går inte via syslogd • Ta reda på hur man ökar mängden meddelanden • De flesta program kan logga mycket mer • Leta efter ”diagnostic messages” och ”debug messages” • Se upp med loggnivån! • Titta i loggarna efter fel och efter varje ändring • Gör det till en vana!

  39. Varför heter det d? dae·mon n. 1. Chiefly British. Variant of demon. 2. Variant of daimon. 3. Computer Science. A program or process that sits idly in the background until it is invoked to perform its task.

More Related