Unix och Linux

40
David Byers [email protected] IDA/ADIT/IISLAB ©2003–2004 David Byers Unix och Linux HISTORIA – FILER OCH FILSYSTEM – PROCESSER – ANVÄNDARE GRUPPER – RÄTTIGHETER – KOMMANDON – LOGGNING

description

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. - PowerPoint PPT Presentation

Transcript of Unix och Linux

Page 1: Unix och Linux

David Byers

[email protected]/ADIT/IISLAB

©2003–2

004 D

avid

Byers

Unix och LinuxHISTORIA – FILER OCH FILSYSTEM – PROCESSER –

ANVÄNDAREGRUPPER – RÄTTIGHETER – KOMMANDON – LOGGNING

Page 2: Unix och Linux

©2003–2

004 D

avid

Byers

Historia

Ken Thompson

Thompson, Ritchie, PDP 11

Dennis Ritchie

UNICS skapades 1969-1970 av främst Kenneth Thompson och Dennis Ritchie på Bell

Labs

Först implementerat på PDP 7, sedan PDP 11/45

Page 3: Unix och Linux

©2003–2

004 D

avid

Byers

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

Page 4: Unix och Linux

©2003–2

004 D

avid

Byers

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

Page 5: Unix och Linux

©2003–2

004 D

avid

Byers

Filer och filsystem

Page 6: Unix och Linux

©2003–2

004 D

avid

Byers

Vad är en fil?

Vanligaste sorten Vanlig datafil

Kan även vara Symbolisk länk Device-nod Unix domain socket Named pipe Block device . . .

Page 7: Unix och Linux

©2003–2

004 D

avid

Byers

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

% 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

Page 8: Unix och Linux

©2003–2

004 D

avid

Byers

Vanliga Specialfiler

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

Page 9: Unix och Linux

©2003–2

004 D

avid

Byers

Vad är ett filsystem

En struktur av filer på disk

Hierarkisk struktur Även programvara Även specifikationerna

En logisk vy av alla filer

En gemensam hierarki Skapas genom monteringar

Page 10: Unix och Linux

©2003–2

004 D

avid

Byers

Filsystem

Page 11: Unix och Linux

©2003–2

004 D

avid

Byers

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)

Page 12: Unix och Linux

©2003–2

004 D

avid

Byers

Montering av filsystem

Filsystemstyp: ext2Options: noexecKälla: /dev/hda2 (blockenhet) Monteringspunkt: /data

Filsystemstyp: nfsOptions: rwKälla:

atlas:/users/9/3/alean938 Monteringspunkt:

/home/alean938

mount –t ext2 –o noexec /dev/hda2 /datamount –t nfs –o rw atlas:/users/9/3/alean938 /home/alean938

/

home data

/dev/hda1

/

home data

/dev/hda1

atlas:/

users

0 1 9

2 3 4

alean938

alean938alean938…

… …

Page 13: Unix och Linux

©2003–2

004 D

avid

Byers

FilsystemstyperTraditionella 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

Page 14: Unix och Linux

©2003–2

004 D

avid

Byers

Fler kommandon

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

Page 15: Unix och Linux

©2003–2

004 D

avid

Byers

Särskilda filsystem: procfs (/proc)

Inställningar /proc/sys/net/ipv4/…

Information /proc/version /proc/meminfo

Implementeras som sysctl Kommandot sysctl Filen /etc/sysctl.conf

% echo 1 > /proc/sys/net/ipv4/tcp_ecn

% cat /proc/versionLinux 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/meminfoMemTotal: 907564 kBMemFree: 24544 kBBuffers: 231808 kBCached: 347912 kBSwapCached: 0 kB

% /sbin/sysctl net.ipv4.ip_default_ttlnet.ipv4.ip_default_ttl = 64% /sbin/sysctl -w net.ipv4.ip_default_ttl=65net.ipv4.ip_default_ttl = 65% /sbin/sysctl –w net.ipv4.tcp_ecn=1net.ipv4.tcp_ecn = 1

Page 16: Unix och Linux

©2003–2

004 D

avid

Byers

ProcesserAnvändare

GrupperRättigheter

Page 17: Unix och Linux

©2003–2

004 D

avid

Byers

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

Page 18: Unix och Linux

©2003–2

004 D

avid

Byers

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 StatusPID Process-IDPPID FörälderPRI PrioritetSZ StorlekTT TerminalCMD Kommando

Page 19: Unix och Linux

©2003–2

004 D

avid

Byers

Användare och processer

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

Page 20: Unix och Linux

©2003–2

004 D

avid

Byers

Användare och processer% 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

sshd ändrade real UID till davby

passwd är setuid root ochändrar effective UID; gördet möjligt att ändra filersom davby inte har rättatt ändra (tex /etc/passwd)

Page 21: Unix och Linux

©2003–2

004 D

avid

Byers

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

Page 22: Unix och Linux

©2003–2

004 D

avid

Byers

Rättigheter% 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

ownergroup

Page 23: Unix och Linux

©2003–2

004 D

avid

Byers

Användare och grupper

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

Page 24: Unix och Linux

©2003–2

004 D

avid

Byers

Användare

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

root:x:0:0:root:/root:/usr/bin/zshdaemon:x:1:1:daemon:/usr/sbin:/bin/sh

root:x:0:0:root:/root:/usr/bin/zshdaemon:x:1:1:daemon:/usr/sbin:/bin/sh

Utdrag ut /etc/passwd

Page 25: Unix och Linux

©2003–2

004 D

avid

Byers

Användare

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

root:$1$L6.uWAls$wi2eBrKgbp9S54DWF.iNi.:11500:0:99999:7:::daemon:*:11500:0:99999:7:::

root:$1$L6.uWAls$wi2eBrKgbp9S54DWF.iNi.:11500:0:99999:7:::daemon:*:11500:0:99999:7:::

Utdrag ut /etc/shadow

Page 26: Unix och Linux

©2003–2

004 D

avid

Byers

Grupper

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

backup:x:34:taper,janpeoperator:x:37:davby,calcu,root

backup:x:34:taper,janpeoperator:x:37:davby,calcu,root

Utdrag ut /etc/group

Page 27: Unix och Linux

©2003–2

004 D

avid

Byers

Name Service Switch (NSS)

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

passwd: files ldapgroup: files ldapshadow: files ldap

hosts: files dnsnetworks: files

protocols: db filesservices: db filesethers: db filesrpc: db files

netgroup: nis

passwd: files ldapgroup: files ldapshadow: files ldap

hosts: files dnsnetworks: files

protocols: db filesservices: db filesethers: db filesrpc: db files

netgroup: nis

Exempel

Page 28: Unix och Linux

©2003–2

004 D

avid

Byers

Kommandotolken

Page 29: Unix och Linux

©2003–2

004 D

avid

Byers

Kommandon

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

Exekvering av program

/bin/ls /bin/rm/bin/tar

Page 30: Unix och Linux

©2003–2

004 D

avid

Byers

Kommandotolkens funktioner

Användardialogen Köra kommandon Dirigera om in/utdata Expansion av filnamn Inbyggda kommandon Hantering av

omgivningsvariabler

Page 31: Unix och Linux

©2003–2

004 D

avid

Byers

Kommandon i Unix 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

Page 32: Unix och Linux

©2003–2

004 D

avid

Byers

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

Page 33: Unix och Linux

©2003–2

004 D

avid

Byers

Loggning

Page 34: Unix och Linux

©2003–2

004 D

avid

Byers

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.0 auth.log.1.gzdaemon.log daemon.log.0 daemon.log.1.gz dmesgkern.log kern.log.0 kern.log.1.gz lastlogmail.err mail.err.0 mail.err.1.gz mail.infomail.info.0 mail.log mail.log.0 mail.log.1.gzmail.warn mail.warn.0 mail.warn.1.gz messagesmessages.0 syslog syslog.0 syslog.1.gzwtmp

apache/ auth.log auth.log.0 auth.log.1.gzdaemon.log daemon.log.0 daemon.log.1.gz dmesgkern.log kern.log.0 kern.log.1.gz lastlogmail.err mail.err.0 mail.err.1.gz mail.infomail.info.0 mail.log mail.log.0 mail.log.1.gzmail.warn mail.warn.0 mail.warn.1.gz messagesmessages.0 syslog syslog.0 syslog.1.gzwtmp

Innehåll i /var/log

Page 35: Unix och Linux

©2003–2

004 D

avid

Byers

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

Page 36: Unix och Linux

©2003–2

004 D

avid

Byers

Loggexempel/var/log/syslogAug 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.logAug 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=davbyAug 17 16:22:30 sysinst-gw sshd[15370]: error: PAM: Authentication failure for davby from

obel19.ida.liu.seAug 17 16:22:38 sysinst-gw su[15374]: + pts/12 davby:rootAug 17 16:22:38 sysinst-gw su[15374]: (pam_unix) session opened for user root by

davby(uid=1150)

Page 37: Unix och Linux

©2003–2

004 D

avid

Byers

Loggexempel/var/log/mail.logAug 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=<[email protected]>, 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=<[email protected]>, 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 <[email protected]>... Domain of sender address [email protected] does not exist (in reply to RCPT TO command))

Aug 17 16:23:32 sysinst-gw postfix/cleanup[15384]: 11C321F36D: message-id=<[email protected]>

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: removedAug 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=<[email protected]>, 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: removedAug 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=<[email protected]>, 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

Page 38: Unix och Linux

©2003–2

004 D

avid

Byers

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!

Page 39: Unix och Linux

©2003–2

004 D

avid

Byers

Page 40: Unix och Linux

©2003–2

004 D

avid

Byers

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.