Előadást letölteni
Az előadás letöltése folymat van. Kérjük, várjon
1
Linux
2
Linux kernel JZsCs 2007
3
JZsCs 2007
4
JZsCs 2007
5
JZsCs 2007
6
JZsCs 2007
7
JZsCs 2007
8
JZsCs 2007
9
Root felhasználó Kell egy olyan szerep, amely mindenhez hozzáfér, mindent beállíthat - rendszergazda Unix-ban ez egy kitüntetett felhasználó, teljhatalommal (root) Nem lehet több rendszergazdai felhasználó, ami nem valós, illetve a feladatok sem oszthatók szét (részleges jogok) Több megoldás (pl. sudo), aktuális: RBAC (de ez még nem igazán terjedt el) JZsCs 2007
10
Indítás, bejelentkezés
VirtualPC Debian (X nélküli) Azonosító: root / nik119 JZsCs 2007 10
11
Útvonal "." aktuális könyvtár ".." szülő könyvtár "/" gyökér könyvtár
JZsCs 2007
12
Standard fa /bin rendszerprogramok
/usr/bin közérdekű felhasználói programok /etc a rendszer működéséhez és karbantartásához szükséges állományok és programok /etc/passwd felhasználók azonosításához szükséges adatok egy része /tmp ideiglenes állományok elhelyezése /dev speciális állományok /home felhasználói könyvtárak JZsCs 2007
13
/dev/fd* hajlékonylemezes egység neve
/dev/tty* a terminálok nevei, a „* ” helyén bármely karakter állhat a gép kiépítettségétől függően /dev/hd* merevlemez neve, a „* ” helyén alfanumerikus karakterek, elsősorban számok állnak /dev/fd* hajlékonylemezes egység neve /dev/mem állományként elérhető memória neve /dev/null különleges rendeltetésű állomány, ha olvasunk belőle, akkor azonnal az állomány végét érzékeljük, ha pedig írunk bele, akkor korlátlanul elnyel mindent anélkül, hogy bárhol is tárolná JZsCs 2007
14
Memória Szerencsére nincs felosztva, teljesen egyben kezeli.
Virtuális memória külön partíción (swap partíció) JZsCs 2007
15
Könyvtár- és állománykezelés
pwd az aktuális munkakönyvtár elérési úttal ellátott nevének kiírása ls [-altrR] könyvtár egy könyvtár tartalmának kilistázása ABC sorrendben -r a rendezés iránya fordított -R alkönyvtárak is rekurzívan -a a rejtett állományok is -l kiegészítő információk drwxrwxrwx ln user group size date time name -t módosítási idő szerinti rendezés JZsCs 2007
16
cd [elérési_út/]könyvtár könyvtárváltás ln -s állománynév linknév
mkdir [elérési_út/]könyvtár egy új könyvtár létrehozása mkdir –p ./elso/masodik létrehozza az elso könyvtárat is cd [elérési_út/]könyvtár könyvtárváltás ln -s állománynév linknév link létrehozása -s szimbolikus link cat állomány1 [...állományN] állományok összefűzése: cat állomány1 állomány2 > állomány3 állomány kiíratása: cat állomány új állomány létrehozása: cat > állomány <CTRL>+<D> JZsCs 2007
17
rm kapcsolók állománynév állomány törlése
-f nincs figyelmeztető üzenet -r könyvtárak törlése rekurzívan rmdir könyvtárnév üres könyvtár törlése !kitörölt állomány nem állítható vissza wc kapcsolók állománynév állomány jellemzőinek számlálása -c bájtok -l sorok -w szavak cp kapcsolók forrás cél állományok másolása -r rekurzív -s szimbolikus linket hoz létre másolás helyett (csak akkor működik, ha az aktuális könyvtárba másolunk) -f nincs figyelmeztető üzenet JZsCs 2007
18
- name minta név szerint - user név tulajdonos szerint
find kezdőpont kifejezés állomány keresése a könyvtárrendszerben kezdőponttól lefelé - name minta név szerint - user név tulajdonos szerint grep kapcsoló minta állománynév minta előfordulását keresi állományokban -c csak a mintát tartalmazó sorok száma -i kis és nagy betű azonos -l csak állománynevek -n sorszám + sor -v mindent ami nem tartalmazza a mintát JZsCs 2007
19
mv kapcsolók forrás cél állományok átnevezése és/vagy mozgatása
-f létezőt kérdés nélkül felülír -b mozgatás előtt biztonsági másolatot készít cél állomány vagy könyvtár more kapcsolók állomány... állomány tartalmának oldalakra tördelt megjelenítése a képernyőn -p nem görget, hanem lapoz -s több üres sorból egyet cmp kapcsolók áll1 áll2 állományok összehasonlítása -c a különböző bájtokat karakterként írja ki JZsCs 2007
20
sort kapcsolók állománynév állomány sorainak rendezése
-b beveztő szóközt kihagy -c rendezettséget vizsgál -o állomány állományba írja az eredményt -r fordított sorrend JZsCs 2007
21
-c becsomagolás (újat létrehoz) -r becsomagolás (hozzáfűz)
tar kapcsolók újnév állományok állományok/könyvtárak összecsomagolása és kibontása -t lista (teszt) -f lemezes álomány -x kibont -c becsomagolás (újat létrehoz) -r becsomagolás (hozzáfűz) -A hozzámásol tar állományt --delete töröl -W ellenőriz -v kiírja az állományneveket a képernyőre JZsCs 2007
22
Tar tar –cvf ujnev.tar allomanyok tar –xvf ujnev.tar
tar –tvf ujnev.tar JZsCs 2007
23
File file fájlnév megadja az állomány típusát a magic fájl alapján
JZsCs 2007
24
LESS Fájl tartalmának a megtekintése úgy, hogy abban közlekedni is lehet. JZsCs 2007
25
Állományrendszerek beiktatása és leválasztása
felcsatolás az állományrendszer valamely könyvtára helyére általában rendszergazdai jogosultság szükséges felcsatolás mount lecsatolás umount JZsCs 2007
26
Ext2 FS inode táblák ... ... ... ... inode 1 ... 2 ... 3 4 ... 5 6 7 8
9 10 11 12 ... 13 ... ... ... JZsCs 2007
27
Háttértárak /dev könyvtár eszközfájljain keresztül érhetők el.
/dev/fd0 floppy lemez (DOS-ban A:) /dev/fd1 floppy lemez (DOS-ban B:) IDE winchesterek, IDE CD meghajtók /dev/hda 1. csatorna master /dev/hdb 1. csatorna slave /dev/hdc 2. csatorna master /dev/hdd 2. csatorna slave Partíciók: /dev/hdc3 a 2. csatorna master lemezének 3. partíciója JZsCs 2007
28
PORTOK /dev/ttyS0 a DOS alatti COM1 soros port.
/dev/lpt0 a DOS alatti LPT1 párhuzamos port. /dev/psaux A PS/2 port JZsCs 2007
29
Mount /dev/hda1 /dev/hda2 JZsCs 2007
30
Fájl rendszerek hozzáépítése (mount)
Minden egyetlen gyökérkönyvtárból érhető el: merevlemezen levő fő könyvtárfa Az egyes tároló eszközök (floppy, CD, stb.) fájljai 1-1 fájlrendszerbe vannak szervezve, melyek mindaddig elkülönülnek a könyvtárfától, míg nem csatoljuk őket ahhoz, ekkor részfává válnak Hozzáépítés (mount-olás): mount eszközhozzáépítési -pont # mount /dev/fd0 /mnt/floppy floppy hozzáépítése # mount /dev/hda4 /mnt merevlemez partíciók hozzáépítése JZsCs 2007
31
A df parancs Eszköznevek megadásával kilistázza
az összes fájl-rendszert az összes partíciót a szabad hely méretét az egyes fájlrendszerekben a hozzáépítési pontot az egyes fájlrendszerekben $df Filesystem 1024-blocks Used Available Capacity Mounted on /dev/hda % / /dev/hda % /mnt/dos /dev/hdc % /mnt/cdrom JZsCs 2007
32
Leválasztás (unmount)
umount eszközhozzáépítési –pont Nem a meghajtó, hanem maga az adathordozó kerül mount-olásra, unmount-olásra !!! A floppy-t, cd-t sem lehet csak úgy kivenni! Kilépéskor minden automatikusan leválasztásra kerül # umount /dev/fd0 /mnt/floppy floppy leválasztása # umount /dev/cdrom /dev/mnt cd leválasztása JZsCs 2007
33
A védelmi rendszer uid - user identifier gid - group identifier
/etc/passwd uid és alap gid /etc/group felhasználó-csoport összerendelések Felhasználói körök: tulajdonos csoporttárs többiek su - superuser (uid=0) JZsCs 2007
34
Jogok olvasás - állomány tartalmának megtekintése, könyvtár esetén a tartalom kilistázása írás - állomány bővítése, kicserélése, megváltoztatása, ill. könyvtár esetén bejegyzés létrehozása, törlése végrehajtás - állomány futtatás, könyvtárban keresés, belépés az adott könyvtárba cd-vel, és informálódás az ls utasítás segítségével egy konkrét könyvtár vagy állomány meglétéről és tulajdonságairól JZsCs 2007
35
Védelmi kódsor trwxrwxrwx t - bejegyzés típusa
b blokkorientált speciális állomány (pl. /dev/hda1) c karakterorientált speciális áll. (pl. /dev/stty4) d alkönyvtár-bejegyzés l szimbolikus keresztkapcsolat - egyszerű állomány tulajdonos csoporttárs bárki JZsCs 2007
36
Jogadás Futtatási időre setgid bit setuid bit Állandó chmod chown
chgrp JZsCs 2007
37
Jogosultságok - fájl d könyvtár l link R olvasható(4) Gazda jogai
w írható(2) x futtatható(1) Gazda jogai Csoport jogai Többi felhasználó jogai JZsCs 2007
38
chown újtulajdonos állománynév állomány tulajdonosának megváltoztatása
chgrp újcsoport állománynév állomány csoportjának megváltoztatása chmod kapcsoló[kinek] op jogok [op jogok] jogok beállítása - adása kinek : u az aktuális felhasználónak g a csoportnak o a többieknek op + jogokat adunk hozzá - jogokat veszünk el = pontosan JZsCs 2007
39
jogok a következő betűk kombinációi lehetnek: r olvasási jog
w írási jog x végrehajtási jog X végrehajtási jog, ha az állomány könyvtár vagy ha már van másik x bitje; s setuid vagy setgid mód chmod g-w állomány chmod +x állomány chmod 622 állomány JZsCs 2007
40
Jogosultság – Speciális flagek
sticky bit: chmod +t fnev Fájloknál már nem használt (memóriában tartás) Könyvtárra beállítva: a könyvárban levő fájlokat csak a tulajdonos törölheti (rendszerfüggő) példa erre a /tmp, közös ftp könyvtárak suid (set user id): chmod +s fnev Futtatható fájloknál a futtató felhasználó a fájl tulajdonosával lesz azonos (jogosultság szempontjából) pl: másolás root által írható helyre veszélyes! shell scriptnél különösen sgid: Mint a suid, csak csoporttal JZsCs 2007 40
41
Alapértelmezett bitek
umask maszk az umask környezeti változó értékét maszk&0777-re állítja az open() használja az újonnan létrehozott állományok jogainak meghatározására az open() mode paramétere pl. umask 022 mode 0666 az új állomány jogai: 0666&~022= & rw-r--r-- JZsCs 2007
42
Folyamatok JZsCs 2007
43
ps –A információk folyamatokról
kill kapcsolók PID jel küldése folyamathoz kill -9 PID (folyamat leállítása) -s szám jel küldése -l jel lista date dátum és idő kiírása utasítás& utasítás a háttérben fut JZsCs 2007
44
Háttér – előtér időzítés
programnév& program futtatás a háttérben fg háttérben futó folyamat előhozása JZsCs 2007
45
Átirányítás Standard input more < help.txt Standard output
ls -la > lista.txt Standard hibakimenet find / -name *.html 2> hibák JZsCs 2007
46
Parancs csatolás Az első parancs standard kimenete lesz a második parancs standard bemenete. ls -la *.tar | wc -l A képernyőn megjelenik az aktuális könyvtárban található tar kiterjesztésű állományok száma JZsCs 2007
47
Helyettesítő karakterek
* 0 vagy több tetszőleges karakter ? egy darab tetszőleges karakter [afu] a vagy f vagy u [135] 1 vagy 3 vagy 5 [a-g] a-tól g-ig terjedő intervallumból egy karakter [1-6] 1-től 6-ig terjedő intervallumból [a-g1-6] az a-tól g-ig vagy az 1-től 6-ig terjedő intervallumból egy karakter JZsCs 2007
48
Semlegesítő karakterek1
\ a mögötte álló karaktert védi cat > ab\*c '..' shell behelyettesítéstől védi a közrefogott szöveget find / -name *.c 2>hibák | grep -l 'int len' megkeresi azokat a c kiterjesztésű állományokat, amelyek tartalmazzák az idézőjelek között megadott szöveget JZsCs 2007
49
Semlegesítő karakterek2
".." shell behelyettesítéstől védi a közrefogott szöveget, de a környezeti változókat behelyettesíti ls "${HOME}/ab*c" megnézi, hogy van-e a saját könyvtárunkban ab*c nevű állomány `..` kiértékeli a közrefogott parancsot, és annak értékét helyettesíti az idézőjeles kifejezés helyére echo Ebben a könyvtárban `ls | wc -l` darab bejegyzés található JZsCs 2007
50
Példa ls /dev/t*[3-8] ls /dev/*[0-9]* | wc -l JZsCs 2007
51
Felhasználókezelés who név, terminál, bejelentkezés dátuma, ideje
whoami saját felhasználói név w rendszerindítás ideje, bejelentkezett felhasználók száma, terhelés, felhasználók, terminálok, honnan jelentkeztek be, mikor, mit csinálnak JZsCs 2007
52
Felhasználókezelés /etc/passwd : felhasználói információk (nyílt szöveg) /etc/shadow : jelszavak (kódolt) /etc/group : csoportok adatai groupadd : csoportot hozhatunk létre vele useradd: felhasználót adhatunk a rendszerhez /home/usernev -en belül lesznek a felhasználók alaphelyzetben nem jön létre /etc/default/useradd /etc/skel - ez a könyvtár lesz a home tartalma User létrehozása Unix alatt csak néhány konfigurációs állomány módosításából áll. JZsCs 2007 52
53
/etc/shadow username:password:last_change:may_change:must_change:warn_days:expire_date:disable:reserved username: The username of the account as specified in the /etc/passwd file password: The password is in encrypted hash format, meaning that it has been hashed using a salt as the seed. The rest of the post is on this very topic. last_change: The number of days, since January 1, 1970, when the password was last changed. may_change: The number of days since the last password change before a new password change is allowed. must_change: The number of days since the last password change when a new password change is required. warn_days: The number of days before must_change when the user begins receiving warning about changing their password. expire_date: The number of days after the password expires when the account is disabled. disable: The number of days since January 1, 1970, when the account will be disabled. reserved: A reserved field for the system. JZsCs 2007
54
Csoport létrehozása groupadd gname groupadd -g
GID (group ID) megadása fölött a tipikus JZsCs 2007 54
55
Felhasználó hozzáadás
useradd user1 létrehoz egy felhasználót (beállítások nélkül) useradd -D : kiírja az alapértékeket useradd -g csoport1 user3 elsődleges csoport useradd -g csoport1 -G csop2,csop3,csop4 user4 másodlagos csoportok is useradd -m user5 home könyvtár automatikus létrehozása useradd -p kod user6 megadhatunk egy jelszót JZsCs 2007 55
56
Példa useradd -gusers -Gmgmt -s/bin/shell -pxxxx -d/home/roger -m roger Options: -d home directory -s starting program (shell) -p password -g (primary group assigned to the users) -G (Other groups the user belongs to) -m (Create the user's home directory JZsCs 2007
57
Rendrakás passwd passwd usernev groupdel csoportnev userdel usernev
saját jelszavunk megváltoztatása passwd usernev másik felhasználó jelszavának megadása groupdel csoportnev userdel usernev JZsCs 2007 57
58
BASH (Bourne-Again Shell)
Bourne shell – (sh) (Stephen Bourne) – az első nagy, majdnem standard a UNIX rendszereken a bash – (bash) az sh kibővítése visszafele kompatibilis az sh-val #!/bin/sh – ez a script első sora JZsCs 2007
59
BASH (Bourne-Again Shell)
milyen parancshélyt használunk? echo $SHELL segítség a parancsokról: date --help man date JZsCs 2007
60
Parancsok sort <állomány> tail <állomány>
-r - fordított sorrendben tail <állomány> +n első n sor megjelenítése -n utolsó n sor megjelenítése -f folyamatos megjelenítés JZsCs 2007
61
Aritmetika expr $ expr $ expr 10 / 2 $ expr 20 % 3 $ expr 10 \* 3 $ echo `expr 6 + 3` JZsCs 2007
62
Idézőjelek ” (2) karaktersor, nem értelmezi a speciális karaktereket (kivétel $ és \ ) echo -e ”a\tb\n\ax\a\naaaaaa\rbbb” ‘ (1) karaktersor, változatlanul marad ` (7) parancsként értelmezi, végrehajtja echo ”A mai dátum: `date`” JZsCs 2007
63
Idézőjelek % echo 'What the *heck* is a $ doing here???'
% echo "Is your home directory $HOME?" Is your home directory /home/kreskin/u0/barnett? % echo "Your current directory is `pwd`" Your current directory is /home/kreskin/u0/barnett JZsCs 2007
64
Néhány környezeti változó Felhasználó által definiált változók
$HOME $USERNAME $PWD $PATH $BASH_VERSION $SHELL Felhasználó által definiált változók n=10 helyes (Bourne Shell) set n=10 helyes (C Shell) n = 10 helytelen n= 10 helytelen n =10 helytelen echo $n Változók törlése unset n JZsCs 2007
65
Hivatkozás változókra
${VALTOZO_NEVE} $ VALTOZO_NEVE Példa: $ PATH=${PATH}:${XYZ_DIR} JZsCs 2007
66
Script paraméterek $# parancssori argumentumok száma $0 a script neve
$1 első paraméter $2 második $* az összes argumentum JZsCs 2007
67
Exit státusz $? a hibakódot tárolja (0 – OK) (!=0 Error)
a következő utasítás felülírja date echo $? rosszparancs JZsCs 2007
68
Értek beolvasása read változónév Példa: echo "Your first name please:„
read fname echo "Hello $fname, Lets be friend!" JZsCs 2007
69
Parancsok összefűzése
Több parancs végrehajtása parancs1;parancs2;parancs3 Példa: date;who JZsCs 2007
70
Feltétel if feltétel then parancs1; else parancs2; fi JZsCs 2007
71
Összehasonlítások 5 > 2 a < b c > 5 c > 5 + 30 -1
JZsCs 2007
72
Feltétel 0 - igaz 1,2,… - hamis -eq egyenlő if test 5 -eq 6
JZsCs 2007
73
-le kissebb vagy egyenlő -gt nagyobb -ge nagyobb vagy egyenlő
-ne nem egyenlő -lt kissebb -le kissebb vagy egyenlő -gt nagyobb -ge nagyobb vagy egyenlő JZsCs 2007
74
Állományok -s nem üres -f létező állomány -d létező könyvtár
-w írható állomány -r olvasható állomány -x futtatható If [ -f „$1” ] then echo „$1 létezik” fi JZsCs 2007
75
Ciklus while feltétel do parancsok done JZsCs 2007
76
While n=0 while [ num –lt 10 ] do echo $num num=$((num+1)) done
JZsCs 2007
77
for For változó in lista do parancs; done JZsCs 2007
78
for for valtozo in alma szilva korte do echo $valtozo done JZsCs 2007
79
for ciklus for (( i = 0 ; i <= 5; i++ )) do echo $i done JZsCs 2007
80
Ciklus ellenőrzés Continue – megszakítja az aktuális iterációt, folytatja a következővel Break – megszakítja a teljes ciklust JZsCs 2007
81
Ciklus ellenőrzés a=0 while [ "$a" -le "$LIMIT" ] do a=$(($a+1))
if [ "$a" -gt 2 ] then break fi echo -n "$a „ done echo; exit 0 JZsCs 2007
82
case Case „$változó” in „feltétel1” ) parancs;; „feltétel2” ) esac
JZsCs 2007
83
#. /bin/sh case $2 in p) chmod 777 $1;; [1-4a-b][. a-b]
#!/bin/sh case $2 in p) chmod 777 $1;; [1-4a-b][!a-b]?) ls -l;; x|X) ps -ew) who;; esac JZsCs 2007
84
proc) cat /proc/cpuinfo;; mem) cat /proc/meminfo;;
#!/bin/sh case $1 in proc) cat /proc/cpuinfo;; mem) cat /proc/meminfo;; hdd) if [ -d /proc/ide/hda ]; then echo Model: `cat /proc/ide/hda/model`; echo Cache size: `cat /proc/ide/hda/cache`; fi;; mnt) cat /proc/mounts;; esac JZsCs 2007
85
echo „Elérhető shellek: „ echo "`cat /etc/shells`" fi
if [ -f /etc/shells ] then echo „Elérhető shellek: „ echo "`cat /etc/shells`" fi JZsCs 2007
86
Példa for fis in `find $1 -perm -u=rx -type f` do echo $fis
# kiírjuk az állomány nevét head -$2 $fis # kiírjuk az első $2 sort az állományból done JZsCs 2007
87
Példa if [ ! $# -eq 2 ] then echo usage: shell1 dir nr exit 1 fi
JZsCs 2007
88
Példa #!/bin/sh n=0 for i in * do if [ -f $i ]; then n=`expr $n + 1`
done echo $n allomany van a katalogusban JZsCs 2007
89
Cut parancs grep "user" /etc/passwd | cut -d: -f5 | cut -d, -f1
for x in `ps -e | grep "sleep" | cut -c1-5` do kill $x 2>/dev/null done JZsCs 2007
90
Folyamatok listázása felhasználók szerint
ps -u ps U pkill –KILL –u user // felhasználó kill pgrep –u root sshd // az sshd nevezetű és root tulajdonosú folyamatok listázása JZsCs 2007
91
Példa Egy napnál régebben készült fájlok törlése
for i in $(find "$1" -type f -atime +1); do echo $i rm $i done JZsCs 2007
92
Megosztott mappa mountolása
mount -t cifs // /Linux -o username=myntaccount,password=mypassword /mnt/ntfs The CIFS VFS is a virtual file system for Linux to allow access to servers and storage appliances compliant with the SNIA CIFS Specification version 1.0 or later. Popular servers such as Samba, Windows 2000, Windows XP and many others support CIFS by default. The CIFS VFS provides some support for older servers based on the more primitive SMB (Server Message Block) protocol (you also can use the Linux file system smbfs as an alternative for accessing these). CIFS VFS is designed to take advantage of advanced network file system features such as locking, Unicode (advanced internationalization), hardlinks, dfs (hierarchical, replicated name space), distributed caching and uses native TCP names (rather than RFC1001, Netbios names). Unlike some other network file systems all key network function including authentication is provided in kernel (and changes to mount and/or a mount helper file are not required in order to enable the CIFS VFS). With the addition of upcoming improvements to the mount helper (mount.cifs) the CIFS VFS will be able to take advantage of the new CIFS URL specification though. The TODO list includes some of the other features being planned for future releases. The CIFS VFS has been tested with Linux and later as well as regular testing on Linux 2.6 (and has been in the kernel source starting with Linux kernel Testing has been done on various hardware architectures including x86 and even big endian zSeries hardware. The cifs and smbfs file systems can coexist on the same system and do not conflict. JZsCs 2007
93
Regularis kifejezések
"[xyz]" matches any one of the characters x, y, or z. "[c-n]" matches any one of the characters in the range c to n. "[B-Pk-y]" matches any one of the characters in the ranges B to P and k to y. "[a-z0-9]" matches any single lowercase letter or any digit. "[!b-d]" matches any character except those in the range b to d. JZsCs 2007
94
Tömbök array=(red green blue yellow magenta) len=${#array[*]}
echo "The array has $len members. They are:" i=0 while [ $i -lt $len ]; do echo "$i: ${array[$i]}" let i++ done JZsCs 2007
95
Példa Ftp-re #!/bin/sh HOST='ftp.users.qwest.net' USER='yourid'
PASSWD='yourpw' FILE='file.txt' ftp -n $HOST <<END_SCRIPT quote USER $USER quote PASS $PASSWD put $FILE quit END_SCRIPT exit 0 JZsCs 2007
Hasonló előadás
© 2024 SlidePlayer.hu Inc.
All rights reserved.