You are on page 1of 221

Qun tr H thng Linux - C bn

TI LIU O TO

QUN TR H THNG LINUX

Ti liu ny c bin son theo ti liu ging dy ca Vin Linux


(LPI)

H NI 2006

Qun tr H thng Linux - C bn

MC LC
GII THIU GIY PHP CNG CNG GNU..............................................8
GII THIU .......................................................................................................17
Gii thiu ti liu ................................................................................................... 17
CI T .............................................................................................................18
Cu trc ca a ci................................................................................................ 18
Ci t Cc b........................................................................................................ 19
Ci t qua Mng ................................................................................................... 20
Phc hi H thng.................................................................................................. 20
Chin lc Phn vng............................................................................................ 21
Khi ng kp vi nhiu h iu hnh .................................................................. 22
Bi tp .................................................................................................................... 22
CU HNH PHN CNG ................................................................................23
B nh.................................................................................................................... 23
Qun l Ti nguyn................................................................................................ 23
USB........................................................................................................................ 25
SCSI ....................................................................................................................... 25
Network Card......................................................................................................... 26
Modem ................................................................................................................... 27
My in .................................................................................................................... 28
Bi tp .................................................................................................................... 28
QUN L THIT B .........................................................................................29
a v Phn vng ................................................................................................... 29
Cng c Phn vng a .......................................................................................... 30
Bootloader.............................................................................................................. 31
2

Qun tr H thng Linux - C bn


Nhng thit b qun l....................................................................................... 33
Quotas .................................................................................................................... 34
Bi tp .................................................................................................................... 35
H THNG FILE TRONG LINUX.................................................................36
Cu trc ca h thng file ...................................................................................... 36
H thng file chun ext2 ........................................................................................ 38
Kim sot dung lng a...................................................................................... 40
Quyn truy xut File, Th mc.............................................................................. 41
Bi tp .................................................................................................................... 44
CH DNG LNH .....................................................................................46
Tng tc vi SHELL ........................................................................................... 46
Bin mi trng ca Shell ..................................................................................... 48
Chuyn hng kt xut .......................................................................................... 50
Du ngoc v Cc k t a ngha (Metacharacter)............................................... 53
Lch s dng lnh................................................................................................... 55
Bi tp .................................................................................................................... 56
QUN L FILE .................................................................................................59
Di chuyn quanh h thng file............................................................................... 59
Tm kim file v th mc....................................................................................... 59
Lm vic vi th mc ............................................................................................ 62
S dng cp v mv .................................................................................................. 62
Hard links v symbol links .................................................................................... 64
Touching v dd-ing ................................................................................................ 65
Bi tp .................................................................................................................... 66
QUN L TIN TRNH ...................................................................................68
Xem cc tin trnh ang chy ................................................................................ 68
3

Qun tr H thng Linux - C bn


Thay i tin trnh.................................................................................................. 70
Tin trnh v Shell.................................................................................................. 72
Bi tp .................................................................................................................... 74
X L VN BN ..............................................................................................76
cat the Swiss Army Knife ...................................................................................... 76
Cc cng c n gin............................................................................................. 77
X l vn bn......................................................................................................... 79
Bi tp .................................................................................................................... 81
CI T PHN MM......................................................................................84
Gii thiu ............................................................................................................... 84
Th vin tnh v th vin chia x .......................................................................... 85
Ci t ngun ......................................................................................................... 88
Qun l gi Redhat ( Redhat Package Manager RPM) ......................................... 89
Cng c Alien ........................................................................................................ 93
Bi tp .................................................................................................................... 94
THAO TC VI VN BN NNG CAO ......................................................95
Cc biu thc chnh qui ......................................................................................... 95
H grep................................................................................................................... 96
Lm vic vi grep .................................................................................................. 96
egrep v fgrrep ....................................................................................................... 97
B son tho Stream sed ..................................................................................... 97
Bi tp .................................................................................................................... 99
S DNG TRNH SON THO VI .............................................................101
Cc ch Vi....................................................................................................... 101
Cc mc vn bn.................................................................................................. 101
Chn vn bn........................................................................................................ 102
4

Qun tr H thng Linux - C bn


Xo vn bn ......................................................................................................... 103
Copy / Paste ......................................................................................................... 103
Tm kim.............................................................................................................. 104
Lm li (Undo)..................................................................................................... 105
Ghi vn bn .......................................................................................................... 105
Bi tp .................................................................................................................. 106
NHN LINUX...................................................................................................107
Khi nim nhn .................................................................................................... 107
Nhn Modular ...................................................................................................... 108
Bin dch li nhn ................................................................................................ 109
Thc hnh ............................................................................................................ 116
KHI NG LINUX ......................................................................................117
Tng quan ............................................................................................................ 117
Tm hiu cc mc thc thi (Runlevels)................................................................ 117
inittab ................................................................................................................... 119
GRUB - GRand Unified Bootloader.................................................................... 121
T khi ng n bash......................................................................................... 123
Thc hnh ............................................................................................................ 124
QUN L NGI DNG V NHM .........................................................125
To ngi dng mi............................................................................................. 125
Lm vic vi nhm .............................................................................................. 126
File cu hnh......................................................................................................... 128
Cc tham s la chn ca cu lnh..................................................................... 131
Sa thit lp mc nh v ti khon ..................................................................... 131
Thc hnh ............................................................................................................ 134
CU HNH MNG ..........................................................................................136
5

Qun tr H thng Linux - C bn


The Network Interface ......................................................................................... 136
Thng tin my ch (Host Information)................................................................ 137
Khi ng (Start) v dng (Stop) mng .............................................................. 138
nh tuyn............................................................................................................ 140
Cc cng c mng................................................................................................ 143
Thc hnh ............................................................................................................ 147
MNG TCP/IP .................................................................................................149
S nh phn v Dotted Quad ................................................................................ 149
a ch Broadcast, a ch mng v netmask ....................................................... 149
Lp mng ............................................................................................................. 152
Subnets ................................................................................................................. 153
H giao thc TCP/IP............................................................................................ 155
Cc dch v v cc cng trong TCP/IP ................................................................ 157
Thc hnh ............................................................................................................ 159
CC DCH V MNG....................................................................................160
Tin trnh nn inetd (c) ...................................................................................... 160
Tin trnh nn xinetd............................................................................................ 161
TCP wrappers....................................................................................................... 162
Thit lp NFS....................................................................................................... 163
SMB v NMB ...................................................................................................... 164
Cc dch v DNS ................................................................................................. 166
My ch Apaches................................................................................................. 172
Thc hnh ............................................................................................................ 174
BASH SCRIPTING ..........................................................................................177
Mi trng bash................................................................................................... 177
Cc yu t Scripting............................................................................................. 179
Tnh ton logic ..................................................................................................... 181
6

Qun tr H thng Linux - C bn


Vng lp............................................................................................................... 182
Nhp d liu t dng lnh ................................................................................... 184
Lm vic vi s.................................................................................................... 185
Thc hnh ............................................................................................................ 185
BO MT .........................................................................................................187
Bo mt a phng ............................................................................................. 187
An ninh mng....................................................................................................... 190
Shell an ton......................................................................................................... 194
Cu hnh thi gian................................................................................................ 196
Bo mt nhn ....................................................................................................... 198
QUN TR H THNG LINUX....................................................................201
Tng quan ............................................................................................................ 201
Logfiles v cc file cu hnh ................................................................................ 201
Cc tin ch nht k.............................................................................................. 203
T ng ha cng vic (Automatic Tasks).......................................................... 205
Sao lu v nn...................................................................................................... 207
Ti liu ................................................................................................................. 209
Thc hnh ............................................................................................................ 212
IN N .................................................................................................................214
B lc (Filters) v gs............................................................................................ 214
My in v hng i in .......................................................................................... 214
Cc cng c in n................................................................................................. 215
Cc file cu hnh .................................................................................................. 217
Thc hnh ............................................................................................................ 220

Qun tr H thng Linux - C bn

GII THIU GIY PHP CNG CNG GNU


BN DCH TING VIT CA GIY PHP CNG CNG GNU
y l bn dch ting Vit khng chnh thc ca Giy php Cng cng GNU.
Bn dch ny khng phi do T chc Phn mm T do n hnh, v n khng quy
nh v mt php l cc iu khon cho cc phn mm s dng giy php GNU
GPL -- ch c bn ting Anh gc ca GNU GPL mi c tnh php l. Tuy nhin,
chng ti hy vng rng bn dch ny s gip cho nhng ngi ni ting Vit hiu
r hn v GNU GPL.
GIY PHP CNG CNG GNU (GPL)
Giy php cng cng GNU
Phin bn 2, thng 6/1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
Mi ngi u c php sao chp v lu hnh bn sao nguyn bn nhng
khng c php thay i ni dung ca giy php ny.

Li ni u
Giy php s dng ca hu ht cc phn mm u c a ra nhm hn ch bn
t do chia s v thay i n. Ngc li, Giy php Cng cng ca GNU c mc
ch m bo cho bn c th t do chia s v thay i phn mm t do - tc l
m bo rng phn mm l t do i vi mi ngi s dng. Giy php Cng
cng ny p dng cho hu ht cc phn mm ca T chc Phn mm T do v
cho tt c cc chng trnh khc m tc gi cho php s dng. (i vi mt s
phn mm khc ca T chc Phn Mm T do, p dng Giy php Cng cng
Hn ch ca GNU thay cho giy php cng cng). Bn cng c th p dng n
cho cc chng trnh ca mnh.
Khi ni n phn mm t do, chng ta ni n s t do s dng ch khng quan
tm v gi c. Giy php Cng cng ca chng ti c thit k m bo rng
bn hon ton t do cung cp cc bn sao ca phn mm t do (cng nh kinh
doanh dch v ny nu bn mun), rng bn c th nhn c m ngun nu bn
c yu cu, rng bn c th thay i phn mm hoc s dng cc thnh phn ca
8

Qun tr H thng Linux - C bn


phn mm cho nhng chng trnh t do mi; v rng bn bit chc l bn c
th lm c nhng iu ny.
bo v bn quyn ca bn, chng ti cn a ra nhng hn ch ngn chn
nhng ai chi b quyn ca bn, hoc yu cu bn chi b quyn ca mnh.
Nhng hn ch ny cng c ngha l nhng trch nhim nht nh ca bn khi
cung cp cc bn sao phn mm hoc khi chnh sa phn mm .
V d, nu bn cung cp cc bn sao ca mt chng trnh, d min ph hay
khng, bn phi cho ngi nhn tt c cc quyn m bn c. Bn cng phi m
bo rng h cng nhn c hoc tip cn c m ngun. V bn phi thng
bo nhng iu khon ny cho h h bit r v quyn ca mnh.
Chng ti bo v quyn ca bn vi hai bc: (1) bo v bn quyn phn mm,
v (2) cung cp giy php ny bn c th sao chp, lu hnh v/hoc chnh
sa phn mm mt cch hp php.
Ngoi ra, bo v cc tc gi cng nh bo v chnh mnh, chng ti mun
chc chn rng tt c mi ngi u hiu r rng khng h c bo hnh i vi
phn mm t do ny. Nu phn mm c chnh sa thay i bi mt ngi
khc v sau lu hnh, th chng ti mun nhng ngi s dng bit rng
phin bn h ang c khng phi l bn gc, do tt c nhng trc trc do
nhng ngi khc gy ra hon ton khng nh hng ti uy tn ca tc gi ban
u.
Cui cng, bt k mt chng trnh t do no cng u thng xuyn c nguy c
b e do v giy php bn quyn. Chng ti mun trnh nguy c khi nhng
ngi cung cp li mt chng trnh t do c th c c giy php bn quyn
cho bn thn h, t tr thnh c quyn i vi chng trnh . ngn
nga trng hp ny, chng ti nu r rng mi giy php bn quyn hoc
phi c cp cho tt c mi ngi s dng mt cch t do hoc hon ton
khng cp php.
Di y l nhng iu khon v iu kin r rng i vi vic sao chp, lu
hnh v chnh sa.
Nhng iu khon v iu kin i vi vic sao chp, lu hnh v chnh sa
0. Giy php ny p dng cho bt k mt chng trnh hay sn phm no m
ngi gi bn quyn cng b rng n c th c cung cp trong khun kh
nhng iu khon ca Giy php Cng cng ny. T Chng trnh di y c
9

Qun tr H thng Linux - C bn


ngha l tt c cc chng trnh hay sn phm nh vy, v sn phm da trn
Chng trnh c ngha l Chng trnh hoc bt k mt sn phm no bt
ngun t chng trnh tun theo lut bn quyn, ngha l mt sn phm da
trn Chng trnh hoc mt phn ca n, ng nguyn bn hoc c mt s chnh
sa v/hoc c dch ra mt ngn ng khc. (Di y, vic dch cng c
hiu trong khi nim chnh sa). Mi ngi c cp php c gi l bn.
Trong Giy php ny khng cp ti cc hot ng khc ngoi vic sao chp,
lu hnh v chnh sa; chng nm ngoi phm vi ca giy php ny. Hnh ng
chy chng trnh khng b hn ch, v nhng kt qu t vic chy chng trnh
ch c cp ti nu ni dung ca n to thnh mt sn phm da trn chng
trnh (c lp vi vic chy chng trnh). iu ny ng hay khng l ph
thuc vo Chng trnh.
1. Bn c th sao chp v lu hnh nhng phin bn nguyn bn ca m ngun
Chng trnh ng nh khi bn nhn c, qua bt k phng tin phn phi
no, vi iu kin trn mi bn sao bn u km theo mt ghi ch bn quyn r
rng v t chi bo hnh; gi nguyn tt c cc ghi ch v Giy php v v vic
khng c bt k mt s bo hnh no; v cng vi Chng trnh bn cung cp
cho ngi s dng mt bn sao ca Giy php ny.
Bn c th tnh ph cho vic chuyn giao bn sao, v tu theo quyt nh ca
mnh bn c th cung cp bo hnh i li vi chi ph m bn tnh.
2. Bn c th chnh sa bn sao ca bn hoc cc bn sao ca Chng trnh hoc
ca bt k phn no ca n, t hnh thnh mt sn phm da trn Chng
trnh, v sao chp cng nh lu hnh sn phm hoc nhng chnh sa theo
iu khon trong Mc 1 trn, vi iu kin bn p ng c nhng iu kin
di y:
a) Bn phi c ghi ch r rng trong nhng tp tin chnh sa l bn
chnh sa n, v ngy thng ca bt k mt thay i no.
b) Bn phi cp php min ph cho tt c cc bn th ba i vi cc sn
phm bn cung cp hoc pht hnh, bao gm Chng trnh nguyn bn,
tng phn ca n hay cc sn phm da trn Chng trnh hay da trn
tng phn ca Chng trnh, theo nhng iu khon ca Giy php ny.
c) Nu chng trnh chnh sa thng c lnh tng tc trong khi
chy, bn phi thc hin sao cho khi bt u chy s dng tng tc
theo cch thng thng nht phi c mt thng bo bao gm bn quyn v
10

Qun tr H thng Linux - C bn


thng bo v vic khng c bo hnh (hoc thng bo bn l ngi cung
cp bo hnh), v rng ngi s dng c th cung cp li Chng trnh
theo nhng iu kin ny, v thng bo ngi s dng c th xem bn
sao ca Giy php ny. (Ngoi l: nu bn thn Chng trnh l tng tc
nhng khng c mt thng bo no nh trn, th sn phm ca bn da
trn Chng trnh cng khng bt buc phi c thng bo nh vy).
Nhng yu cu trn p dng cho ton b cc sn phm chnh sa. Nu c nhng
phn ca sn phm r rng khng bt ngun t Chng trnh, v c th c
xem l c lp v ring bit, th Giy php ny v cc iu khon ca n s
khng p dng cho nhng phn khi bn cung cp chng nh nhng sn phm
ring bit. Nhng khi bn cung cp nhng phn nh nhng phn nh trong c
mt sn phm da trn Chng trnh, th vic cung cp ny phi tun theo nhng
iu khon ca Giy php ny, cho php nhng ngi c cp php c quyn
i vi ton b sn phm, cng nh i vi tng phn trong , bt k ai vit
n.
Nh vy, iu khon ny khng nhm mc ch xc nhn quyn hoc tranh ginh
quyn ca bn i vi nhng sn phm hon ton do bn vit; m mc ch ca
n l nhm thi hnh quyn kim sot i vi vic cung cp nhng sn phm bt
ngun hoc tng hp da trn Chng trnh.
Ngoi ra, vic kt hp thun tu Chng trnh (hoc mt sn phm da trn
Chng trnh) vi mt sn phm khng da trn Chng trnh vi mc ch lu
tr hoc qung b khng a sn phm vo trong phm vi p dng ca Giy
php ny.
3. Bn c th sao chp v cung cp Chng trnh (hoc mt sn phm da trn
Chng trnh, nu trong Mc 2) di hnh thc m bin dch hoc dng c th
thc thi c trong khun kh cc iu khon nu trong Mc 1 v 2 trn, nu
nh bn:
a) Km theo mt bn m ngun dng y c th bin dch c theo
cc iu khon trong Mc 1 v 2 nu trn trong mt mi trng trao i
phn mm thng thng; hoc,
b) Km theo mt ngh c hn trong t nht 3 nm, theo cung cp
cho bt k mt bn th ba no mt bn sao y ca m ngun tng
ng, v phi c cung cp vi gi chi ph khng cao hn gi chi ph vt

11

Qun tr H thng Linux - C bn


l ca vic cung cp theo cc iu khon trong Mc 1 v 2 nu trn trong
mt mi trng trao i phn mm thng thng; hoc
c) Km theo thng tin bn nhn c ngh cung cp m ngun
tng ng. (Phng n ny ch c php i vi vic cung cp phi
thng mi v ch vi iu kin nu bn nhn c Chng trnh di
hnh thc m bin dch hoc dng c th thc thi c cng vi li
ngh nh vy, theo phn b trong iu khon nu trn).
M ngun ca mt sn phm l mt dng u tin ca sn phm dnh cho vic
chnh sa n. Vi mt sn phm c th thi hnh, m ngun hon chnh c ngha
l tt c cc m ngun cho cc mun trong sn phm , cng vi tt c cc tp
tin nh ngha giao din i km vi n, cng vi cc hng dn dng kim
sot vic bin dch v ci t cc tp thi hnh. Tuy nhin, mt ngoi l c bit l
m ngun khng cn cha bt k mt th g m bnh thng c cung cp (t
ngun khc hoc hnh thc nh phn) cng vi nhng thnh phn chnh (chng
trnh bin dch, nhn, v nhng phn tng t) ca h iu hnh m cc chng
trnh chy trong , tr khi bn thn thnh phn li i km vi mt tp thi
hnh.
Nu vic cung cp lu hnh m bin dch hoc tp tin thi hnh c thc hin
qua vic cho php tip cn v sao chp t mt a im c ch nh, th vic
cho php tip cn tng ng ti vic sao chp m ngun t cng a im
cng c tnh nh vic cung cp m ngun, mc d thm ch cc bn th ba
khng b buc phi sao chp m ngun cng vi m bin dch.
4. Bn khng c php sao chp, chnh sa, cp php hoc cung cp Chng
trnh tr phi phi tun th mt cch chnh xc cc iu khon trong Giy php.
Bt k nh sao chp, chnh sa, cp php hoc cung cp Chng trnh theo
cch khc u lm mt hiu lc v t ng hu b quyn ca bn trong khun
kh Giy php ny. Tuy nhin, cc bn nhn c bn sao hoc quyn t bn
vi Giy php ny s khng b hu b giy php nu cc bn vn tun th y
cc iu khon ca giy php.
5. Bn khng bt buc phi chp nhn Giy php ny khi bn cha k vo .
Tuy nhin, khng c g khc m bo cho bn c php chnh sa hoc cung
cp Chng trnh hoc cc sn phm bt ngun t Chng trnh. Nhng hnh
ng ny b lut php nghim cm nu bn khng chp nhn Giy php ny. Do
vy, bng vic chnh sa hoc cung cp Chng trnh (hoc bt k mt sn phm
12

Qun tr H thng Linux - C bn


no da trn Chng trnh), bn th hin s chp thun i vi Giy php
ny, cng vi tt c cc iu khon v iu kin i vi vic sao chp, cung cp
hoc chnh sa Chng trnh hoc cc sn phm da trn n.
6. Mi khi bn cung cp li Chng trnh (hoc bt k mt sn phm no da
trn Chng trnh), ngi nhn s t ng nhn c giy php t ngi cp
php u tin cho php sao chp, cung cp v chnh sa Chng trnh theo cc
iu khon v iu kin ny. Bn khng th p t bt c hn ch no khc i
vi vic thc hin quyn ca ngi nhn c cp php t thi im . Bn
cng khng phi chu trch nhim bt buc cc bn th ba tun th theo Giy
php ny.
7. Nu nh, theo quyt nh ca to n hoc vi nhng bng chng v vic vi
phm bn quyn hoc v bt k l do no khc (khng gii hn trong cc vn
v bn quyn), m bn phi tun theo cc iu kin (nu ra trong lnh ca to n,
bin bn tho thun hoc ni khc) tri vi cc iu kin ca Giy php ny,
th chng cng khng th min cho bn khi nhng iu kin ca Giy php ny.
Nu bn khng th ng thi thc hin cc ngha v ca mnh trong khun kh
Giy php ny v cc ngha v thch ng khc, th hu qu l bn hon ton
khng c cung cp Chng trnh. V d, nu trong giy php bn quyn khng
cho php nhng ngi nhn c bn sao trc tip hoc gin tip qua bn c th
cung cp li Chng trnh th trong trng hp ny cch duy nht bn c th tho
mn c hai iu kin l hon ton khng cung cp Chng trnh.
Nu bt k mt phn no trong iu khon ny khng c hiu lc hoc khng th
thi hnh trong mt hon cnh c th, th s cn i p dng cc iu khon, v
ton b iu khon s c p dng trong nhng hon cnh khc.
Mc ch ca iu khon ny khng nhm buc bn phi vi phm bt k mt bn
quyn no hoc cc quyn s hu khc hoc tranh lun v gi tr hiu lc ca bt
k quyn hn no nh vy; mc ch duy nht ca iu khon ny l nhm bo
v s ton vn ca h thng cung cp phn mm t do ang c thc hin vi
giy php cng cng. Nhiu ngi ng gp rt nhiu vo s a dng ca cc
phn mm t do c cung cp thng qua h thng ny vi s tin tng rng h
thng c s dng mt cch thng nht; tc gi/ngi cung cp c quyn quyt
nh rng h c mong mun cung cp phn mm thng qua h thng no khc
hay khng, v ngi c cp php khng th c nh hng ti s la chn ny.

13

Qun tr H thng Linux - C bn


iu khon ny nhm lm r nhng h qu ca cc phn cn li ca Giy
php ny.
8. Nu vic cung cp v/hoc s dng Chng trnh b cm mt s nc nht
nh bi quy nh v bn quyn, ngi gi bn quyn gc a Chng trnh
vo di Giy php ny c th b sung mt iu khon hn ch vic cung cp
nhng nc , ngha l vic cung cp ch c php cc nc khng b lit k
trong danh sch hn ch. Trong trng hp ny, Giy php a vo nhng hn
ch c ghi trong ni dung ca n.
9. T chc Phn mm T do c th theo thi gian cng b nhng phin bn
chnh sa v/hoc phin bn mi ca Giy php Cng cng. Nhng phin bn
s ng nht vi tinh thn ca phin bn hin ny, nhng c th khc mt s
chi tit nhm gii quyt nhng vn hay nhng lo ngi mi.
Mi phin bn s c mt m s phin bn ring. Nu Chng trnh v "bt k
mt phin bn no sau " c p dng mt phin bn Giy php c th, bn c
quyn la chn tun theo nhng iu khon v iu kin ca phin bn giy php
hoc ca bt k mt phin bn no sau do T chc Phn mm T do cng
b. Nu Chng trnh khng nu c th m s phin bn giy php, bn c th
la chn bt k mt phin bn no tng c cng b bi T chc Phn mm
T do.
10. Nu bn mun kt hp cc phn ca Chng trnh vo cc chng trnh t do
khc m iu kin cung cp khc vi chng trnh ny, hy vit cho tc gi
c php. i vi cc phn mm c cp bn quyn bi T chc Phm mm
T do, hy xut vi t chc ny; i khi chng ti cng c nhng ngoi l.
Quyt nh ca chng ti s da trn hai mc tiu l bo h tnh trng t do ca
tt c cc sn phm bt ngun t phn mm t do ca chng ti, v thc y vic
chia s v ti s dng phn mm ni chung.
KHNG BO HNH
DO CHNG TRNH C CP PHP MIN PH NN KHNG C MT
CH BO HNH NO TRONG MC CHO PHP CA LUT
PHP. TR KHI C CNG B KHC I BNG VN BN, NHNG
NGI GI BN QUYN V/HOC CC BN CUNG CP CHNG
TRNH NGUYN BN S KHNG BO HNH DI BT K HNH
THC NO, BAO GM NHNG KHNG GII HN TRONG CC HNH
THC BO HNH I VI TNH THNG MI CNG NH TNH
14

Qun tr H thng Linux - C bn


THCH HP CHO MT MC CH C TH. BN L NGI CHU TON
B RI RO V CHT LNG CNG NH VIC VN HNH CHNG
TRNH. TRONG TRNG HP CHNG TRNH C KHIM KHUYT,
BN PHI CHU TON B CHI PH CHO NHNG DCH V SA CHA
CN THIT.
TRONG TT C CC TRNG HP TR KHI C YU CU CA LUT
PHP HOC C THO THUN BNG VN BN, NHNG NGI C
BN QUYN HOC BT K MT BN NO CHNH SA V/HOC
CUNG CP LI CHNG TRNH TRONG CC IU KIN NH NU
TRN U KHNG C TRCH NHIM VI BN V CC LI HNG
HC, BAO GM CC LI CHUNG HAY C BIT, NGU NHIN HAY
TT YU NY SINH DO VIC S DNG HOC KHNG S DNG
C CHNG TRNH (BAO GM NHNG KHNG GII HN TRONG
VIC MT D LIU, D LIU THIU CHNH XC HOC CHNG
TRNH KHNG VN HNH C VI CC CHNG TRNH KHC),
THM CH C KHI NGI C BN QUYN V CC BN KHC
C THNG BO V KH NNG XY RA NHNG THIT HI .

KT THC CC IU KIN V IU KHON.


p dng nhng iu khon trn nh th no i vi chng trnh ca bn
Nu bn xy dng mt chng trnh mi, v bn mun cung cp mt cch ti a
cho cng chng s dng, th bin php tt nht t c iu ny l pht trin
chng trnh thnh phn mm t do ai cng c th cung cp li v thay i
theo nhng iu khon nh trn.
lm c vic ny, hy nh km nhng thng bo nh sau cng vi chng
trnh ca mnh. An ton nht l nh km chng trong phn u ca tp tin m
ngun thng bo mt cch hiu qu nht v vic khng c bo hnh; v mi
tp tin u phi c t nht mt dng v bn quyn v tr n ton b thng bo.
Mt dng tn chng trnh v ni dung ca n.
Bn quyn (C) nm, tn tc gi.
Chng trnh ny l phn mm t do, bn c th cung cp li v/hoc chnh sa
n theo nhng iu khon ca Giy php Cng cng ca GNU do T chc Phn

15

Qun tr H thng Linux - C bn


mm T do cng b; phin bn 2 ca Giy php, hoc bt k mt phin bn sau
(tu s la chn ca bn).
Chng trnh ny c cung cp vi hy vng n s hu ch, tuy nhin KHNG
C BT K MT BO HNH NO; thm ch k c bo hnh v KH NNG
THNG MI hoc TNH THCH HP CHO MT MC CH C TH. Xin
xem Giy php Cng cng ca GNU bit thm chi tit.
Bn phi nhn c mt bn sao ca Giy php Cng cng ca GNU km theo
chng trnh ny; nu bn cha nhn c, xin gi th v T chc Phn mm T
do, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
Xin hy b sung thng tin v a ch lin lc ca bn (th in t v bu in).
Nu chng trnh chy tng tc, hy a mt thng bo ngn khi bt u chy
chng trnh nh sau:
Gnomovision phin bn 69, Copyright (C) nm, tn tc gi.
Gnomovision HON TON KHNG C BO HNH; xem chi tit hy g
`show w'. y l mt phn mm min ph, bn c th cung cp li vi nhng
iu kin nht nh, g show c xem chi tit.
Gi thit lnh `show w' v `show c' cho xem nhng phn tng ng trong Giy
php Cng cng. Tt nhin nhng lnh m bn dng c th khc vi show w' v
`show c'; nhng lnh ny c th l nhn chut hoc lnh trong thanh cng c tu theo chng trnh ca bn.
Bn cng cn phi ly ch k ca ngi ph trch (nu bn l ngi lp trnh)
hoc ca trng hc (nu c) xc nhn t chi bn quyn i vi chng trnh.
Sau y l v d:
Yoyodyne, Inc., ti y t chi tt c cc quyn li bn quyn i vi chng
trnh `Gnomovision' vit bi James Hacker.
Ch k ca Ty Coon, 1 April 1989
Ty Coon, Ph Tng Gim c.
Giy php Cng cng ny khng cho php a chng trnh ca bn vo trong
cc chng trnh c quyn. Nu chng trnh ca bn l mt th vin th tc
ph, bn c th thy n hu ch hn nu cho th vin lin kt vi cc ng dng
c quyn. Nu y l vic bn mun lm, hy s dng Giy php Cng cng
Hn ch ca GNU thay cho Giy php ny.
16

Qun tr H thng Linux - C bn

GII THIU
Gii thiu ti liu
Ti liu Qun tr h thng Linux C bn l cun gio trnh c xy dng vi
mc ch chuyn ti cc kin thc ht sc c bn nhng cn thit i vi cc hc
vin, c bit l i vi nhng ngi lm cng tc ging dy.
Ti liu ny c bin dch chnh da trn b gio trnh ca Hc vin Linux LPI
(Linux Professional Institute). y l b gio trnh c bin son mt cch cng
phu, t m v khoa hc, dng cho vic o to v n luyn cc chng ch LPI ca
Hc vin Linux.
Do ang trong qu trnh xy dng, trong ni dung ti liu khng trnh khi nhiu
thiu st. Rt mong c s ng gp kin ca ngi c ti liu ngy cng
c hon chnh hn.
Xin chn thnh cm n!

17

Qun tr H thng Linux - C bn

CI T
Cu trc ca a ci
Hin ti, c rt nhiu phin bn phn phi Linux khc nhau. Vi mi bn, cch
t tn ca cc th mc trn a ci cng khc nhau. Thng thng chng c
dng nh sau:

packages: Th mc cha cc gi phn mm c bin dch trc. Ty vo


tng bn phn phi m th mc ny c tn khc nhau. Di y l mt s v d:
debian: dist
mandrake: Mandrake
redhat: RedHat
suse: suse
fedora: Fedora

images: Dng cha nh ca Linux. C nhiu kiu file nh khc nhau. Mi file
c mt cng dng ring:
- Khi ng tin trnh ci t
- Cung cp module cho nhn
- Khi phc li h thng
Mt s nh c th c ghi li vo a mm hoc CD, USB nhm mc ch khi
ng qu trnh ci t t nhiu ngun khc nhau.

18

Qun tr H thng Linux - C bn


Bn thn nhiu file nh cng cha bn trong n nhng file v th mc con. C
th truy cp n nhng file v th mc ny thng qua vic nh x file nh vo
mt thit b loop.

mount o loop /path/to/Image /mnt

dosutils: Th mc cha mt s cng c gip cho vic chun b ci t c


thun li hn trong mi trng DOS.

Ci t Cc b
Ci t cc b l cch thc d dng v ph thng nht trong tt c cc phng
thc ci t. Hu ht cc bn phn phi Linux u c dng boot CD cho php
khi ng qu trnh ci t mt cch t ng. Vi nhng my tnh khng c
CD, c th thay th n bi a mm hoc USB khi ng qu trnh ny (khi
, th mc packages thng c t trong cng).
to ra a mm hoc a USB c kh nng khi ng, c th dng lnh dd
trong Linux hoc rawrite.exe trong DOS/Win.

dd if=/path/to/Image of=/dev/fd0 (hoc /dev/sdX)


rawrite.exe

V d: i vi cc bn phn phi ca RedHat cc file nh ny c tn l


boot.img. Ngoi ra, c th cn c mt s file nh c bit khc c cung cp
nh: bootnet.img hay pcmcia.img.

19

Qun tr H thng Linux - C bn

Ci t qua Mng
Thng thng cc gi ci t c ti mt server xa, ngi dng ch cn
khi ng qu trnh ci t, thit lp cc tham s mng chnh xc sau , tin
trnh ci t s t ng download cc gi cn thit v my tnh ci (thng qua
cc giao thc nh FTP, HTTP, NFS).
khi ng qu trnh ci t c th s dng bt k phng thc no nh
miu t trong phn Ci t Cc b. Ngoi ra, qu trnh ny cng c th c khi
ng thng qua mt Card Mng c kh nng boot kt hp vi DHCP v TFTP
Server c thit lp cho mc ch ny.

Phc hi H thng
Trong trng hp h thng b trc trc, khng th khi ng chnh xc, c th
phc hi c mt s li thng qua c ch khi ng Phc hi H thng.
Khi khi ng c ch ny, mt phin bn thu gn ca Linux v mt h thng file
o c np vo v chy ngay trn RAM h thng. H thng file tht s c tm
kim v nh x vo mt th mc ca h thng file o ny. Ngi dng c th
dng lnh chroot chuyn qua h thng file tht v x l s c. Thng thng
nu tm thy, n s c nh x vo th mc /mnt/sysimage ca h thng o.

20

Qun tr H thng Linux - C bn

Chin lc Phn vng


Phn vng cng l qu trnh khng th thiu trong khi ci t Linux. Ty theo
tng phin bn phn phi m qu trnh ny c th thc hin t ng hoc th
cng. thc hin th cng, cn c s hiu bit su sc v h thng file trong
Linux cng nh mc ch s dng h thng.

Hnh trn m t mt lc phn vng dng n gin cng h thng file ca


mt h thng mu. Thc cht h thng file trong Linux l mt cy bao gm th
mc gc / v cc th mc con nhiu cp. Cc ti nguyn h thng c s
dng lu tr d liu c gn kt/nh x (mounted) vo cc im ch nh
trn h thng file, cc im ny c gi l cc im gn kt/nh x (mount
point). Th mc gc / cng l mt im gn kt v phn vng lu tr d liu
cho / s c xc nh trong qu trnh khi ng.

21

Qun tr H thng Linux - C bn

Khi ng kp vi nhiu h iu hnh


Cng ging nh Windows, Linux h tr nhiu h iu hnh trn mt my tnh.
Chng trnh khi ng ca Linux s t ng nhn bit cc h iu hnh ny.
Nu nhn bit thnh cng, mt la chn s c t ng thm vo menu khi
ng.
Linux cng h tr khi ng h iu hnh Windows. thit lp c h thng
nh vy, cn phi c chin lc phn vng ng n. Sau , cch n gin nht
l ci t Linux sau khi ci t Windows. Nu khng, phi c kinh nghim v
cng, bng phn vng v nhng phn lin quan c th khc phc s c.

Bi tp
1. Ci t (qua mng hoc khng) mt h thng Linux vi yu cu nh sau:
+ Chn Custom System
+ Phn vng cng vi Disk Druid thnh cc phn vng nh sau:
/boot
SWAP
/
/usr
/home
/tmp
/var
+ Ci t GRUB ln MBR v t mt khu cho GRUB.
+ Ci t cc gi theo yu cu ca ging vin.
2. Phc hi h thng
+ Gi s bn b qun mt khu root, khi ng li my tnh v phc hi li n
bng ch single.
+ Gi s bn cng qun c mt khu ca GRUB nn khng khi ng vo ch
single c. Khi ng my tnh bng a c kh nng cu h (Rescue Mode).
Sa li file cu hnh ca GRUB (/boot/grub/grub.conf) xa mt khu.
22

Qun tr H thng Linux - C bn

CU HNH PHN CNG


B nh
RAM h thng c d tm bi BIOS trong qu trnh khi ng v kernel s
dng kt qu ca qu trnh ny. V vy, trong nhng trng hp h thng s
dng RAM s lng t hn thc t ci t, cn phi kim tra li phn cng xem
cm ng qui cch cha hoc BIOS c hot ng ng khng.
Trong trng hp mun ch nh chnh xc lng RAM m Linux phi dng, c
th thm cc tham s cho chng trnh khi ng c ci t trn h thng:
LILO
Sa file /etc/lilo.conf, thm dng
append=mem=<Dung lng RAM>M

Sau chy /sbin/lilo.


GRUB
Sa file /boot/grub/grub.conf nh sau:
kernel vmlinuz mem=<Dung lng RAM>M

Qun l Ti nguyn
truy cp vo cc thit b, h thng (CPU) phi cp pht cc ti nguyn truy
cp cho chng. Sau y l cc kiu ti nguyn ny:

IRQs (Interrupt Request Lines)


L cc ng truyn lin lc trc tip t thit b n CPU gip cc thit b yu
cu CPU x l thng tin ca chng gi n. Mi khi c yu cu/ngt, CPU phi
tm dng cng vic ang thi hnh x l ngt. C 16 IRQs nh s t 0 n 15.
a ch I/O (Input/Output Nhp/Xut)
L nhng a ch trn b nh h thng c nh x vo b nh ca thit b. Mi
thao tc trn vng nh ny tng ng vi thao tc ln b nh ca thit b.
23

Qun tr H thng Linux - C bn

DMA (Direct Memory Access channels)


L cc knh truyn d liu cho php thit b thao tc trc tip ln b nh h
thng m khng phi thng qua CPU.

Lit k cc ti nguyn cp pht


Nhn lu gi cc thng tin ny trong th mc /proc. Cc file c s dng l:
/proc/dma
/proc/interrupts
/proc/ioports
/proc/pci
Nhng thng tin ny cng c th c lit k ra bi cc cng c nh lspci hay
dmesg:
lspci
Lit k danh sch thng tin ca nhng chipset gn trn thit b ti cc khe PCI.
Vi tham s -v, lnh s lit k cc thit lp v I/O v IRQ.
Vi tham s -b (BUS centric) lnh s lit k thng tin do BIOS qun l (c th
khc vi do nhn qun l).
dmesg
Hin th tt c cc thng ip mc nhn tnh t lc khi ng my. Nhng thng
tin ny cng c th ly c t file /var/log/dmesg.
Mt s Ti nguyn thng dng
Device

I/O port

IRQ

/dev/ttyS0

0x03f8

/dev/ttyS1

0x02f8

/dev/lp0

0x378

24

Qun tr H thng Linux - C bn


/dev/lp1

0x278

soundcard

0x220

USB
USB (Universal Serial Bus) l chun kt ni gia cc thit b vi nhau v vi PC.
Chng c chia thnh cc lp thit b nh sau:
Display Devices
Communication Devices
Audio Devices
Mass Storage Devices
Human Interface Devices (HID)
Mi thit b gn vo cng USB u c iu khin bi mt b iu khin USB
Controller. Bt u t phin bn nhn 2.2.7, Linux mi h tr USB Controller.
C 3 kiu USB Controllers nh sau:

Host Controler

Kernel Module

OHCI (Compaq)

usb-ohci.o

UHCI (Intel)

usb-uhci.o

EHCI (USB v 2.0)

ehci-hdc.o

SCSI
Hin nay, chun SCSI c hai kiu giao tip l:
- Chun giao tip 8-bit vi mt knh truyn h tr 8 thit b SCSI. Tuy nhin do
bao gm c controller nn card SCSI theo chun ny ch c th kt ni c
vi ti a 7 thit b SCSI khc.

25

Qun tr H thng Linux - C bn


- Chun giao tip 16-bit (WIDE) cng tng t nh chun 8-bit vi s thit b
kt ni ti a l 15.
Mi thit b SCSI c gn mt s hiu SCSI ID duy nht. Cc s hiu ny chy
t 0 n 7 hoc 15 v c th c thit lp bi cc jump trn chng.

H thng s t ng khi ng t thit b c SCSI ID = 0. Tuy nhin, th t ny


c th thay i c trong menu SCSI khi h thng khi ng

Network Card
dng c card mng, nhn ca h thng phi h tr chng. Thng tin v
card mng ang dng trong h thng c th c tm thy thng qua cc lnh
hoc file sau: dmesg, lspci, scanpci, /proc/interrupts, /sbin/lsmod hay
/etc/modules.conf

V d trn cho thy mt card mng ang dng c chipset l Tulip, a ch I/O l
0xf800 v IRQ = 10. Nu cc thng tin ny hot ng tt th c th s dng n
26

Qun tr H thng Linux - C bn


ti cc h thng khc tng ng v phn cng nhng c li khi np module
hay I/O hoc IRQ b xung t. thay i cc tham s ny c th s dng cc
lnh modprobe hoc insmod (thay i trc tip) hay ghi vo trong file
/etc/modules.conf (c hiu lc t ln khi ng sau).

Modem
Do cc Modem cm trong yu cu CPU x l d liu cho chng nn thng
thng Linux khng h tr cc thit b loi ny (mc d c nhiu cch i ng
vng gii quyt vn trn).
V vy, ti liu ny ch cp n cc modem cm ngoi (s dng cng serial).
Trong Linux, cc cng serial c nh ngha khc so vi trong DOS/Windows:
DOS

Linux

COM1

/dev/ttyS0

COM2

/dev/ttyS1

COM3

/dev/ttyS2

Mc d hu ht cc phin bn phn phi Linux u c cng c ha d tm


v thit lp tham s cho modem, nhng trong cc server ch s dng giao din
text, setserial l cng c hu ch cho vic ny. Vi tham s -g, setserial c th
tm c cng serial no ang c thit b kt ni. Ngoi ra, setserial cng c kh
nng thit lp li tham s hot ng cho nhng cng ny.

thit lp kt ni v quay s trong mi trng text, c th dng b cng c


wvdial, wvdialconf, wvdial.conf.
27

Qun tr H thng Linux - C bn

My in
Hng dn chi tit hn v my in s c cp n trong nhng phn sau ca
ti liu. Thng thng nhng my in c kh nng PnP s c d tm ngay khi
h thng khi ng (k c my in USB cng c th c d thy) v c th nhn
thy bi lnh dmesg.
Qu trnh In trong Linux c thc hin trong hai bc. u tin, d liu in
c lc qua mt b lc theo nh dng ca trnh qun l my in. Sau , d liu
mi c x l a ra my in.

Bi tp
1. S dng lng dmesg xem thng tin t file /var/log/dmesg. Tm trong cc
thng tin v USB, tty hoc eth0 v tr li:
- Tn ca USB controllers c s dng?
- S hiu IRQ ca hai cng serial u tin l bao nhiu?
2. Kim tra ni dung ca cc file:
/proc/ioports
/proc/interrupts
/proc/pci
/proc/dma
3. PCI bus:
- Kim tra output ca cc lnh lspci -v and scanpci v. Kiu ca card mng trn
my bn l g?
- Kim tra xem c bao nhiu mc bus trong file /proc/pci. Nhng thng tin ny
c ging nh kt qu ca 2 lnh trn khng?
4. USB:
- Dng lnh lsmod v lsusb kim tra xem kiu host controller no ang c
s dng trong h thng? UHCI, OHCI hay EHCI.

28

Qun tr H thng Linux - C bn

QUN L THIT B
a v Phn vng
a vt l
a vt l c nhn Linux gn vo cc mc trong th mc /dev. Mi kt ni t
nhn n cc thit b u thng qua b s major/minor. Cc s major c nh
ngha trong file /proc/devices. V d: a cng IDE u tin c s major = 3
Block devices:
1

ramdisk

fd

ide0

nhn dng cc cng trong /dev, Linux dng hai k t bt u l hd cho cc


thit b IDE, sd cho cc thit b SCSI hoc a USB (nhng li dng st cho
bng SCSI). Sau l cc k t thm vo nh danh cc thit b cng h:
hda

Primary Master

hdb

Primary Slave

hdc

Secondary Master

hdd

Secondary Slave

sda

First SCSI/USB disk

sdb

Second SCSI/USB disk

Phn vng a
c th s dng c, cc a cng cn phi c phn vng. Linux thm vo
ng sau nh danh a cng s hiu ca cc phn vng qun l.
hda1

Partition u tin trn IDE u tin

hda2

Partition th hai trn IDE u tin

sdc3

Partition th ba trn SCSI th ba

Mi IDE ch cho php c 4 phn vng chnh v mt trong s chng c th c


nh du l phn vng m rng. Phn vng ny c th c nh chia thnh
29

Qun tr H thng Linux - C bn


nhiu phn vng con bn trong. Linux h tr ti a 64 phn vng trn IDE v
16 phn vng trn SCSI.

Trong v d trn (dng fdisk -l), h thng c ba phn vng chnh c nh danh
t hda1 n hda3. Phn vng th 3 c nh du l m rng v cha trong n 7
phn vng con. Do hda3 khng c dng. Cc phn vng con c nh
danh t hda5 tr i.

Cng c Phn vng a


Trc khi ci t Linux
30

Qun tr H thng Linux - C bn

PartitionMagic
fips
fdisk

Trong khi ci t Linux


Trong qu trnh ci t Linux, c th s dng chnh cng c T ng phn vng
ca mt s bn phn phi hoc dng cng c phn vng th cng i km:

diskdrake

Mandrake

DiskDruid

RedHat

Trn h thng ang hot ng


fdisk lun l cng c c la chn phn vng cc a cng. Tp lnh ca
fdisk tng i n gin, ch gn g lnh m trong giao din lnh ca fdisk
xem y cc lnh ca n.
Sau khi fdisk, nu c thay i bng phn vng, cn phi khi ng li my tnh
hoc dng partprobe cp nht ng (lnh ny khng ng cho mi trng
hp). s dng c cc phn vng ny, phi nh dng chng vi cc nh
dng h thng file m Linux hiu c thng qua cc lnh: mkfs hoc mke2fs.

Bootloader
Bootloader l chng trnh mc nh c ci t trn MBR nhm gip my tnh
la chn c phn vng khi ng, np b mi h iu hnh v chuyn quyn
kim sot cho h iu hnh.
Cc bn Linux c phn phi vi hai Bootloader ring. Tuy nhin, chng cng
nhn vai tr mi h iu hnh nn c th ci t vo BR ca phn vng khi
ng ch khng nht thit phi ci t trn MBR.

LILO (the LInux bootLOader)


31

Qun tr H thng Linux - C bn


c thit k vi 3 thnh phn chnh
LILO
M nh phn ca trnh bootloader, c ci t trn MBR hoc BR. N s np
m khi ng giai on 2 ti /boot/boot.b.
/etc/lilo.conf
File cu hnh ca LILO vi mt s tham s nh sau:
boot*

Ni LILO c ci t (/dev/hda l MBR)

install

Ni m khi ng giai on 2 c ci t (mc nh l boot.b)

prompt

Cho ngi dng la chn h iu hnh khi khi ng my.

default

Tn ca file nh c np khi khi ng mc nh

timeout

Thi gian kt thc la chn

image*

ng dn ch n nhn khi ng

label*

Tn ca file nh

root*

Tn ca a cha th mc gc ca h thng file.

/sbin/lilo
Cng c dng c tham s t /etc/lilo.conf v thit lp cho LILO.

GRUB (the Grand Unified Bootloader)


c pht trin sau LILO vi mt vi u im so vi LILO. Thng tin chi tit v
GRUB c th c xem qua lnh info.

32

Qun tr H thng Linux - C bn

Nhng thit b qun l


File /etc/fstab lu thng tin v cc im kt ni xc nh trc cho cc thit b
khi.

Ngoi ra, /etc/fstab cng c dng tr gip cho cc kt gn ti nguyn thi


gian thc. V d:

Chng trnh mount s c /etc/fstab v quyt nh ti nguyn (hoc im kt


ni) no s c s dng v cc tham s ca vic kt ni cng c th c xc
nh ti bc ny. Sau y l mt s tham s ty chn (option) ca mount:

rw, ro

c-ghi hoc ch c

users

c th c v umount bi mi ngi dng

user

ch c th umount bi ngi dng mount n

owner

c th thay i quyn v thuc v ngi dng


mount n
33

Qun tr H thng Linux - C bn


usrquota

bt thit lp hn ngch a mc ngi dng

grpquota

bt thit lp hn ngch a mc nhm ngi dng

Nu s dng vi tham s -a, mount s t ng nh x tt c cc khai bo trong


/etc/fstab m cha c mount v khng c ty chn noauto.
Mt s thit b c truy cp thng qua cc nhn. Nhn c gn cho thit b bi
lnh tune2fs:

Quotas
Quota l cng c cho php qun tr h thng thit lp hn ngch lu tr trn a.
Cng c ny khng yu cu khi ng li h thng. Sau y l mt s bc lm
chung:
1. Thm ty chn usrquota vo file /etc/fstab ti dng cha phn vng cn phn
hn ngch.
2. Remount li phn vng ny:

3. Thit lp tnh trng quota:

Sau lnh ny, nu thit lp ng, file aquota.user s c sinh ra ti th mc gc


ca phn vng.
4. Sa li hn ngch cho tng ngi dng:
34

Qun tr H thng Linux - C bn

Tham s soft/hard limit phi c thit lp cho c s blocks ln inodes cho mi


user. H thng s cho php s dng vt qu con s soft limit cho n khi ht
hn v mt thi gian. Khi , hard limit s c s dng quyt nh chnh xc
hn ngch ca ngi dng. S dng tham s -T quyt nh thi gian ny.
5. Bt ch hn ngch ln:

Ngi dng c th kim tra hn ngch ca mnh bng lnh quota, qun tr c th
sinh ra bo co v hn ngch bng lnh repquota hoc quotastats.

Bi tp
1. S dng fdisk, xa phn vng /home, sau to li 1 phn vng mi. Khi
ng li my tnh. Vn g s xy ra? Gii quyt nh th no?
2. Dng lnh mkfs to ra nh dng h thng file kiu ext3 trn phn vng ny
3. To th mc data trong th mc gc. Thit lp li /etc/fstab sao cho th mc
ny l mount point ca phn vng mi nh dng.
4. Dng lnh mount c tham s kim tra li xem thit lp /etc/fstab ng
cha.
5. Thit lp hn ngch a cho phn vng trn theo tng bc hng dn.

35

Qun tr H thng Linux - C bn

H THNG FILE TRONG LINUX


Cu trc ca h thng file
Mi h thng file c cu trc ging nh mt ci cy dng ngc. Gc ca cy
c t trn cng v bn di l l ca n.
Nh cp trn, mi phn vng khi c to ra u c th c mt mount
point. Cng vic ny thng c thi hnh trong qu trnh ci t. hiu k
hn v vn ny, hy quan st kin trc phn cp ca mt h thng file trong
Linux di y:

Trong hnh trn, gc ca kin trc phn cp ny l th mc gc /. N gn


tng t nh C:\ trong DOS ngoi tr vic C:\ chnh l phn vng u tin
ca a cng u tin, trong khi th mc gc / ca Linux c th l nh x ca
bt k phn vng no.
The base directories

36

Qun tr H thng Linux - C bn


Cc th mc c s l nhng th mc con cp 1 nm ngay di th mc gc /.
Chng c to ra bi mt gi thng c tn l filesystem.

Tin trnh khi ng s nh x th mc gc u tin nhm gip tt c cc thao


tc tip theo nh kim tra phn vng, np module cho nhnvv v khi nh x
th mc gc xong th cc chng trnh nh: fsck, insmod hay mount mi c th
c s dng.

m bo cho qu trnh khi ng din ra chnh xc, cc th mc /dev, /bin,


/sbin, /etc v /lib bt buc phi l th mc con ca / v khng th l nh x ca
bt k phn vng no khc.

Sau y l mt s th mc c s v gii thch ngn gn ngha ca chng:


/bin v /sbin
Cha nhng file cn thit cho qu trnh khi ng v nhng lnh thit yu duy
tr h thng.
/dev
Cha cc nh danh nh x ca thit b hoc nhng file c bit.
/etc
Cha cc file cu hnh ca h thng v nhiu chng trnh tin ch.
/lib
Cha cc th vin dng chung cho cc lnh nm trong /bin v /sbin. V th mc
ny cng cha cc module ca nhn.
/mnt hoc /media
Mount point mc nh cho nhng h thng file kt ni bn ngoi.
/proc

37

Qun tr H thng Linux - C bn


Lu cc thng tin ca nhn, ch c th ghi c ni dung trong th mc
/proc/sys.
/boot
Cha nhn Linux khi ng v cc file system maps cng nh cc file khi
ng giai on hai.
/home (ty chn)
Th mc dnh cho ngi dng khc root. Thng tin khi to th mc mc nh
ca ngi dng c t trong /etc/skel/
/root (ty chn)
Th mc mc nh ca ngi dng root.
/tmp
Th mc cha cc file tm thi.
/usr
Th mc cha nhng file c nh hoc quan trng phc v tt c ngi dng.
/usr/local hoc /opt (ty chn)
Th mc cha cc phn mm ci thm.
/var/www, /var/ftp/ hoc /srv (Suse)
Th mc cha thng tin ca cc dnh v WEB hay FTP.
/var
Th mc cha cc thng tin hay thay i nh: spool v log

H thng file chun ext2


c th lu tr v qun l d liu, mi phn vng trn a cng u phi c
to ra mt h thng file. Ngay trc khi khi to, bao gi ngi thit lp cng
phi ch nh kiu nh dng ca h thng file mi cn to.
Hin nay, nhn Linux h tr rt nhiu kiu nh dng ca h thng file. Trong
, kiu h thng file ext2 c coi l mc nh trong cc h thng ca Linux
Linux Native (Trong nhiu h thng ext3 c coi l mc nh nhng thc t
ext3 chnh l ext2 km thm chc nng journal).
38

Qun tr H thng Linux - C bn


Mt kiu khc ca h thng file cng hay c dng l SWAP. Kiu nh dng
h thng file ny ch c dng cho phn vng swap.

The Second Extended File System


Ext2 l kiu nh dng h thng file c thit k da trn vic qun l cc khi
d liu c kch thc 1KB (1024 byte), y l kch thc mc nh v c th
thay i c. C 3 loi khi nh trn c nh ngha trong ext2:
Superblocks
Lp li sau mi 8193 khi. Khi ny cha thng tin nh: block-size, free inodes,
last mounted time
Inodes
Cha cc con tr tr n khi d liu. 12 khi d liu u tin c truy cp trc
tip t con tr ny. Nu d liu > 12KB th cc inodes gin tip s c s dng.
Mi inode bao gm 256 byte v cha cc thng tin v user, group, permissions
v time stamp ca d liu m n qun l.
Khi d liu
C th l file hoc th mc vi ni dung tht c cha trong cc khi ny.

Tin ch nh dng
Do nhn Linux ch c th c c cc h thng file c nh dng t trc
nn lu tr v qun l d liu trn cc phn vng mi, cn phi nh dng mt
h thng file trn thng qua cc cng c nh dng.
nh dng mt phn vng c kiu h thng file l ext2 bng lnh mkfs.ext2
hay mke2fs. Tng t nh vy vi kiu h thng file xfs (ca Silicon Graphics)
vi lnh mkfs.xfs.
Lnh mkfs thc cht l mt chng trnh kim tra yu cu nh dng v la chn
ng lnh thi hnh. C php ca mkfs l:
mkfs t <fstype>

39

Qun tr H thng Linux - C bn

S an ton ca h thng file


Nu h thng file b hng hoc sai lch, tin ch fsck c s dng chnh sa
li cc h hng ny tuy nhin cc h thng file ny cn phi unmount trc
m bo tnh chnh xc.
Cng nh mkfs, fsck thc cht ch kim tra cc tham s ca ngi dng v la
chn ng chng trnh thi hnh, v d: fsck.ext2, fsck.ext3

Kim sot dung lng a


S dng mount v df
C hai lnh trn u cng hot ng cng mc thit b. Hai lnh mount v
umount dng qun tr cc h thng file gn kt trong file /etc/mtab.
Nu s dng mount khng tham s, tt c cc h thng file c gn kt trong
h thng s c lit k ra mn hnh. Kt qu ging nh trong file /etc/mtab.
Ngoi ra, nhn cng lu gi thng tin v h thng file c kt ni trong
/proc/mount.
xem thm thng tin v im kt ni hin ti c th s dng lnh df. Lnh ny
cho php hin th thm dung lng a s dng v dung lng cn trng. n
v kch thc hin th l 1K.

40

Qun tr H thng Linux - C bn

S dng du
Tin ch ny c s dng hin th khng gian a c s dng nhng mc
th mc. V vy, du cng khng th hin th khong trng cn tha ca a.

Quyn truy xut File, Th mc

Thay i quyn truy xut v ch s hu


Quyn truy xut file, th mc v ch s hu c nh ngha quy nh cch
thc truy cp d liu trong h thng.
41

Qun tr H thng Linux - C bn


thay i quyn truy cp, s dng lnh chmod. C ba nhm i tng chnh
c tc ng bi quyn truy cp l:

Ngi dng s hu

Nhm ngi dng s hu

Khng thuc hai i tng trn

V d:
-rw-rw-r-- 1 jade sales 24880 Oct 25 17:28 libcgic.a

Ty chn hay dng vi chmod, chown v chgrp l R cho php thay i trong c
cc th mc, file bn trong th mc ch nh.
Ngoi cch s dng k t i din cho cc quyn: read=r, write=w, execute=x,
chmod cho php s dng mt b s h bt phn thay i quyn theo bng sau:

read

write

execute

user

group

other

rwx

r-x

rw-

4+2+1=7

4+1=5

4+2=6

42

Qun tr H thng Linux - C bn


Quyn truy xut chun
Cc h thng UNIX to ra file v th mc vi quyn truy xut chun nh sau::
Files

666

-rw-rw-rw-

Directories

777

-rwxrwxrwx

umask
L khi nim c thit lp ch nh quyn truy xut mc nh cho cc file v
th mc mi to i vi mi ngi dng. umask l mt mt n gm mt b cc
s h bt phn. Khi , quyn truy xut mc nh ca cc file v th mc i vi
mi ngi dng c tnh theo cng thc sau:

Final Permissions = Standard Permissions (logical AND) (NOT)Umask

Quyn truy cp SUID


L quyn truy cp c thit lp bi root cho php ngi dng bnh thng c
th thi hnh mt lnh nh l root. Quyn ny c thit lp vi tn l s (nm v
tr x ca nhm u) v c gn s h bt phn l 4000.

Quyn truy cp SGID


L quyn truy cp cho php ngi dng thuc nhm s hu c th thi hnh lnh
m khng cn dng newgrp chuyn nhm. Quyn ny c thit lp vi tn
l s (nm v tr x ca nhm g) v c gn s h bt phn l 2000. Ti th mc
c thit lp SGID, tt c cc file, th mc to bn trong s c nhm s hu
mc nh l nhm s hu ca th mc cha.

Bit nh du (The sticky bit)


Quyn ny c thit lp vi tn l t (nm v tr x ca nhm o) v c gn s
h bt phn l 1000. Quyn ny c thit lp :
- Cho php cc th mc cm ngi dng xa file tr phi h l ch s hu.
- Cho php file c thi hnh hoc np vo b nh nhanh hn.
43

Qun tr H thng Linux - C bn

Bi tp
Filesystem
1. Xa phn vng c nh x vo /data ca bi trc, to ra 2 phn vng mi c
kiu nh dng ca h thng file l ext2 v reiserfs.
2. To 2 th mc con trong /mnt v nh x hai phn vng mi vo.
mkdir /mnt/ext2
mkdir /mnt/reiserfs
3. S dng cc lnh mount, df, fsck kim tra i vi 2 phn vng mi to.
4. Chuyn i t ext2 sang ext3 bng lnh tune2fs
File permissions
1. Login bng 1 ngi dng khng phi root v to 1 file mi bng lnh touch.
Kim tra xem quyn truy xut ca file ny l g?
2. Thay i umask thnh 027. Quyn truy xut mc nh s l g?
3. Ni no s thit lp gi tr mc nh ca umask? /etc/profile, /etc/bashrc
4. Thm 2 ngi dng mi user1, user2 vi passwword tng ng. To nhm
mi sales. V thm 2 ngi dng mi to vo nhm ny.
5. To th mc /news s hu bi nhm sales v c quyn 770 cho th mc ny.
Sau t GID cho th mc ny.
6. Kim tra cc tnh cht ca GID vi user1 v user2.
7. Thm Sticky-Bit cho th mc /news. Kim tra tnh cht ca bit ny.

44

Qun tr H thng Linux - C bn

45

Qun tr H thng Linux - C bn

CH DNG LNH
Khi qut
S dng dng lnh l cch c bn tng tc vi h thng my tnh. B bin
dch shell (h v) thng dch cc lnh c nhp vo t bn phm. Du nhc shell
($ hoc # i vi ngi qun tr h thng) cho bit h thng sn sng hot
ng.
Shell cn l mt mi trng lp trnh cho php thc hin cc lnh khi ng.
Chng trnh shell c gi l script (kch bn).

Do bash shell l mt trong nhng shell thng dng nht trong cng dng linux, v
th ti liu ny tp trung ch yu vo bash shell.

Tng tc vi SHELL
Cc cu lnh thc hin trn shell c dng sau:

command [options] {arguments}


Hin th xu k t ra mn hnh
Bash shell s dng lnh echo hin th xu k t ra mn hnh

echo this is a short line

B danh

46

Qun tr H thng Linux - C bn


Chng ta c th to cc b danh cho cc lnh s dng nhiu tham s. Cch thc
to mt b danh l nh sau:

alias myprog=command [option] {arguments}

Bng cch ch g alias ti mt dng lnh, chng ta s c danh sch ca cc b


danh c nh ngha.

ng dn tuyt i/tng i
Shell thng dch t u tin ca bt k dng lnh no nh l mt cu lnh. Nu
dng lnh c mt ng dn tuyt i hoc tng i n cu lnh th cu lnh
s c thc thi. Nu khng th shell s tm kim trong alias. Nu t u tin
khng c k t / th shell s tm kim cc th mc c khai bo trong ni
dung bin mi trng PATH v thc hin chng trnh c tn trng vi cu lnh.
V d nu tham bin PATH ch cha cc th mc /bin v /usr/bin th cu lnh
xeyes s khng c tm thy khi m n nm trong /usr/X11R6/bin/xeyes v v
th ng dn tuyt i l cn thit cho cu lnh ny c thc thi.

/usr/X11R6/bin/xeyes

Ngi dng c th s dng ng dn tng i thay cho ng dn tuyt i


trong khi thc hin mt cu lnh. V d nu ngi dng ang truy cp vo th
mc cha chng trnh xeyes th h c th s dng cu lnh sau:

./xeyes

T in kt thc cu lnh
Bng cch n phm TAB, shell s kt thc cu lnh m chng ta ang g vo.

47

Qun tr H thng Linux - C bn

Bin mi trng ca Shell


Cc bin ca Shell ging nh cc bin c s dng trong cc ngn ng my
tnh khc. Cc tn bin c gii hn trong cc k t ch s. V d CREDIT=300
c ngha l gn gi tr 300 cho bin c tn l CREDIT

Khi to mt bin

Tn bin=gi tr (khng c du cch)

Tham chiu mt bin

$Tn bin

CREDIT=300
echo $CREDIT

Export, Set v Env


C hai loi bin: bin cc b v bin xut (c th gi l bin ton cc a
phng, thc t khi nim ny khng th ng ngha vi khi nim bin ton cc
trong cc ngn ng lp trnh. Tuy vy cho ngn gn, tt c cc th hin bin
ton cc xut hin trong ti liu ny u c ngha nh bin xut).
Bin cc b ch c truy cp bi shell hin thi. Trong khi bin xut s c
truy cp bi c shell v bt k tin trnh con ca shell ny.
Cc lnh set v env dng hin th cc bin d c nh ngha
Cc lnh set v env
set

Hin th tt c cc bin

env

Hin th tt c cc bin xut

Mt bin c gi l bin ton cc khi bt k tin trnh con no cng c th tham


chiu n n.

48

Qun tr H thng Linux - C bn

V d: To bin CREDIT l bin ton cc. Hin th n vi lnh set hoc env.

export CREDIT
env | grep CREDIT

Khi to mt shell mi (tin trnh con) v kim tra xem bin CREDIT c c
truy cp n khng?
Bin nh
ngha trc

ngha

DISPLAY

c X dng nh v ng dng khch (client)

HISTFILE

Ch n file lch s lnh ca ngi dng .bash_history

HOME

Ch n th mc dnh ring (home) ca ngi dng

LOGNAME

Tn c s dng bi ngi dng truy nhp

PATH

Cha nhng th mc s c tm kim bi shell khi ngi


dng thc hin chng trnh m khng ch ra ng dn

PWD

Th mc lm vic hin thi

SHELL

Tn shell c s dng

TERM

M phng thit b cui hin thi

Cc bin c bit
Mt s bin lin quan n vic qun l tin trnh

$!

Hin th m tin trnh (PID) ca tin trnh con cui cng

$$

Hin th m tin trnh (PID) ca shell ang thc thi

$?

Bng 0 nu lnh cui cng c thc hin thnh cng v 1 nu ngc li


49

Qun tr H thng Linux - C bn

Chuyn hng kt xut


Cc tin trnh UNIX thng thng m 3 dng m t file chun cho php n thc
hin vic xut, nhp v bo li. Cc dng m t chun ny c th c nh
ngha li bi bt k tin trnh no. Trong hu ht cc trng hp, m t stdin l
bn phm, v hai dng m t xut + bo li (stdout v stderr) l mn hnh.

Cc gi tr cho stdin, stderr, v stdout


stdin

stdout

stderr

i hng stdout
program > file
D liu theo hng t tri sang phi

fdisk l > partions.txt

Cu lnh ny s thc hin tin ch fdisk v kt qu u ra s c ghi vo file


partitions.txt. Kt qu khng c hin th ra mn hnh. Ch rng shell s thc

50

Qun tr H thng Linux - C bn


hin cu lnh ny bt u t bn phi. Nh vy, file partitions.txt s c to ra
nu nh n cha tn ti v s b ghi vo khi ton t > c dng.

Ton t >> s b sung thm kt qu vo ni dung file.

i hng stdin
program < file
Trong trng hp ny d liu theo hng t phi sang tri. Ton t < ch c
s dng cho stdin v khng th dng cho stdout.
Nu file instruction cha trn mi dng cc k t p, m, v q th trong v d sau
y fdisk s in bng phn vng (partition) ca /dev/hda, in tin ch tr gip, v
cui cng l thot khi cu lnh.

fdisk /dev/hda < instructions

i hng stderr
program 2> errorfile

51

Qun tr H thng Linux - C bn


stdin, stdout, v stderr c di din bng 0, 1, v 2 tng ng. Cu lnh trn cho
php chng ta chn lung stderr.

find / 2> /dev/null

Cc lnh ng ng
Program1 Program2
Cc ng ng (pipe) c di din bng k hiu . Dng d liu chuyn t
tri sang phi. Hnh sau y minh ha stdout ca mt tin trnh c chuyn
hng n stdin ca mt tin trnh khc nh th no.

cat /var/log/messages less

Cc chuyn hng ca d liu xut c phn tch t phi sang tri, do cc


lnh sau l khng tng ng:

command 2>&1 >logfile


command >logfile 2>&1
52

Qun tr H thng Linux - C bn

<<l s i hng cho kt thc file (EOF)


V d cu lnh:

cat << stop

s chp nhn cc gi tr nhp chun cho n khi t 'stop' c a vo.

Du ngoc v Cc k t a ngha (Metacharacter)


Metacharacter l cc k t c ngha c bit trong shell. Chng c dng ch
yu cho file globbing, tc l i snh mt vi file hoc tn th mc bng mt s
lng ti thiu cc k t.
Cc k t nhp (<), xut (>), v ng ng (|) cng l cc k t c bit v k t
$ c dng cho cc bin. Cc k t c bit ny s khng c lit k ht
y.

Cc k t i din (wildcard)
K t * c th i din cho 0 hoc mt s k t tu
ls /usr/bin/b*

hin th tt c cc chng trnh bt u bng k t b

K t ? i din cho mt k t tu
ls usr/bin/?b*

hin th tt c cc chng trnh c k t b v tr th 2

Cc min (range)
[] c dng nh ngha mt min cc gi tr

ls a[0-9]

hin th tt c cc file bt u bng k t a v c mt ch


s v tr th 2.
53

Qun tr H thng Linux - C bn


ls [!Aa]*

hin th tt c cc file khng bt u bng k t a hoc A

{xu1,xu2} mc d chng khng c dng i din mt h tn file


nhng chng c th s dng i snh vi tn nhng file c.

ls index.{htm,html}

Cc du ngoc (quote) v m escape


ngha c bit ca cc metacharacter c th b hu b bng cc k t escapechng cng l cc metacharacter.
Du vch cho ngc (\) l mt k t c bit v hu b ngha ca tt c cc
metacharacter yu cu shell thng dch chng.
Du ngoc n (' ') hu b ngha ca tt c cc metacharacter ngoi tr du vch
cho ngc.
Du ngoc kp (" ") c tc dng yu nht nhng cng c th hu b phn ln
ngha c bit ca cc k t nm trong du ngoc kp ngoi tr ng ng (|),
du vch cho ngc, v mt bin ($var).

Du nhy
Du nhy ny ging du huyn ca Ting Vit v thng c t cnh s 1 ca
bn phm y .
Cp du nhy (``) s thc hin cu lnh nm bn trong. V d sau y s nh
ngha bin TIME s dng lnh date

TIME="Today's date is `date +%a:%d:%b`


echo $TIME
Today's date is Sun:15:Jul

54

Qun tr H thng Linux - C bn


Mt cch khc thc hin cu lnh ging nh s dng cc du nhy l $().
V d di y s thc hin cu lnh bn trong v gn gi tr tr v vo bin
TIME.

TIME=$(date)

Lch s dng lnh


xem danh sch cc cu lnh c s dng t trc chng ta c th dng
bash gn lin vi lnh history

history
1.

ls

2.

grep 500 /etc/passwd

Chng ta c th gi li cc lnh s dng bng cch dng mi tn ln v xung


trn bn phm. Ngoi ra cn c cc lin kt phm emacs cho chng ta thc hin
v sa i cc lnh trc .

Emacs Key Bindings for Editing the Command History


Ctrl+p

Ln trn 1 dng

Ctrl+n

Xung di 1 dng

Ctrl+b

Quay li (sang tri) 1 k t

Ctrl+f

i tip (sang phi) 1 k t

Ctrl+a

V cui dng

Ctrl+e

V u dng

Du chm than (!) c th c dng thc hin cc lnh trc . V d:

!x

Thi hnh lnh gn nht trong lch s lnh c k t bt u l 'x'

55

Qun tr H thng Linux - C bn


!2

Thi hnh lnh c s th t = 2 trong lch s lnh

!-2

Thi hnh lnh ngay trc lnh va thi hnh

!!

Thi hnh lnh va chy

^string1^string2

Thi hnh lnh va chy v thay th string1 bi string2

Bi tp
stdin-stdout-stderr
G cc cu lnh sau y v a ra cc kt qu thc thi (nu c th) s dng cc
s ging nh nhng s c dng trong chng ny

ls /etc ; df > /tmp/out.1


(ls /etc ; df) > /tmp/out.2
find /etc -type f 2> /dev/null | sort
tr [a-z] [A-Z] < /etc/passwd | sort > /tmp/passwd.tmp
cat /tmp/passwd.tmp | tr [A-Z] [a-z]

Dng lnh
1. Hin th tt c cc file trong /usr/X11R6/bin m khng bt u vi k t 'x'
ls /usr/X11R6/bin/[!x]*

2. Cu lnh xterm c cc la chn sau:


-bg <mu>

thit lp mu nn

-fg <mu>

thit lp mu ch

-e <cu lnh> thc hin cu lnh


Thit lp mt b danh mi sao cho cu lnh su m mt xterm vi cc mu mi v
li nhc cho mt khu ch
alias su="xterm -bg orange -fg brown -e su -u &"

Bn s lu tr b danh ny ni no trn h thng?


3. Bn c th m kho cc file s dng cu lnh uuencode. File m ho s c
chuyn hng n stdout
56

Qun tr H thng Linux - C bn


V d: uuencode /bin/bash super-shell > uufile s m ho /bin/bash v
to ra mt file super-shell khi thc hin uudecode i vi uufile
- Gi /bin/bash c m ho n ngi dng cc b (trong trng hp
ny chng ta c th s dng uuencode v ng ng | hoc lu li kt qu
m ho vo file uufile v s dng i hng STDIN <)
- Chia file m ho thnh 5 file nh
uuencode /bin/bash super-shell > uufile
split -b 150000 uufile base-name.

Lnh ny s to ra cc file base-name.aa, base-name.ab,...


Thc hin lnh sau ghp ni cc file m ho c chia nh thnh file d
liu ban u (unsplit)
cat base-name.* > uufile.new

Cui cng gii m fie v kim tra xem n c hot ng khng


uudecode uufile.new

Cu lnh ny s to ra mt file nh phn gi l super-shell


4. Tin ch no s tm ra ng dn tuyt i ca mt file nh phn thng qua qu
trnh kim tra bin PATH?
Cc bin
1. Thc hin cc cu lnh sau
Khi to gi tr 'virus' cho bin ALERT
ALERT=virus

Kim chng xem bin ALERT c khi to cha bng lnh set?
set |grep ALERT

Hoc c th hin th ALERT bng cch dng lnh env


Tip theo, g 'bash'. Bn c th truy cp vo bin ALERT?
bash
echo $ALERT

Xem gi tr ca ALERT l trng hay khng?


G exit (hoc ^D) tr v phin lm vic ca ban.
S dng lnh export to bin ALERT l bin ton cc
export ALERT

57

Qun tr H thng Linux - C bn


Kim chng ALERT l bin ton cc cha?
env | grep ALERT

Khi to mt bash shell mi v chc chn rng ALERT c nh ngha trong


shell mi
bash
echo $ALERT

Trong shell mi ny, nh ngha li bin ALERT


export ALERT=green

Thot khi shell ny. Gi tr ca bin ALERT trong shell ban u s l bao
nhiu?
2. Ti li nhc cu lnh g cc dng sau:
CREDIT01=300;CREDIT02=400
for VAR in CREDIT01 CREDIT02; do echo $VAR;done

Ch rng bin VAR s c tham chiu bng $VAR


Thc hin li lnh ny
Thc hin lnh ny nhng thay th CREDIT01 bng $CREDIT01
3. S dng cc du ngoc thch hp thay i bin PS1 sao cho n gm ng
dn tuyt i n th mc bn ang lm vic
(Gi : gi tr ca PS1 l [\u@ \W]\$, do bn ch cn thay th \W bng \w)
PS1='

[ \u@\h \w ]\$ '

Bin PS2 c gi tr nh th no?

58

Qun tr H thng Linux - C bn

QUN L FILE
Di chuyn quanh h thng file
Cc ng dn tuyt i v tng i
Mt th mc hoc mt file c th truy cp bng ng dn tuyt i bt u t
th mc gc (/) hoc ng dn tng i bt u t th mc hin thi.
ng dn tuyt i: c lp vi th mc hin thi ca ngi dng v bt u
vi /
ng dn tng i: ph thuc vo th mc hin thi ca ngi dng v khng
bt u vi /
i vi mt h thng file c cu trc bt k, c mt s tin ch gip chng ta c
th duyt ton b h thng
pwd: a ra ng dn tuyt i v v tr ca bn trong h thng
cd: thay i th mc

Tm kim file v th mc
Chng ta s tm hiu cc tin ch find, which, whereis v locate
find
C php:
find <DIRECTORY> <CRITERIA> [-exec <COMMAND> {} \; ]

Tham bin DIRECTORY s cho bit v tr bt u tm kim v CRITERIA c th


l tn mt file hoc mt th mc m chng ta ang tm kim

V d

find /usr/X11R6/bin -name x*.


find / -user 502

59

Qun tr H thng Linux - C bn


Cc dng i snh s c hin th u ra chun. Kt qu ny c th c s
dng thc hin cc lnh tip theo. V d xo file hoc thay i quyn hn
Tin ch find c la chon -exec cho php chng ta thc hin iu . V d xo
tt c cc file thuc v ngi dng 502

find / -type f -user 502 exec rm f {} \;

xargs
Tin ch ny ny thng xem nh l mt cng c i km vi find. Thc t xargs
s x l mi dng ca kt qu xut chun nh mt tham bin cho mt tin ch
khc. Chng ta c th dng xargs xo tt c cc file thuc v mt ngi dng
bng lnh sau

find / -type f -user 502 | xargs rm f

Cc cu lnh chc chn nh rm khng th x l vi qu nhiu tham s. Chng ta


c th xa ton b cc file trong mt th mc vi lnh sau
ls | xargs rm -f

locate
C php:
locate <STRING>

60

Qun tr H thng Linux - C bn

Tin ch locate cho php hin th tt c cc file v th mc tho mn biu thc


(expression)

locate X11R

Vi tin ch ny qu trnh tm kim s nhanh hn rt nhiu. Thc t locate s truy


vn c s d liu /var/lib/slocate. C s d liu ny s c cp nht hng ngy
thng qua cron job da trn lnh updatedb
Khi thc hin updatedb t dng lnh th file /etc/updatedb.cn s c c
xc nh h thng file c chnh sa (tc l NFS) v cc th mc (tc l
/tmp)

which
C php:
which string

Tin ch ny s a ra ng dn tuyt i i vi file gi l string bng cch


ch kim tra cc th mc c nh ngha trong bin PATH ca ngi dng. V
th which ch c dng tm kim cc lnh.

whereis
C php
whereis string

Tin ch ny s a ra ng dn tuyt i i vi cc file ngun, nh phn, v


ti liu ph hp vi string bng cch kim tra bin PATH cng nh cc v tr hay
c s dng.
Cc la chn thng c dng ca ls
61

Qun tr H thng Linux - C bn

Lm vic vi th mc
To th mc vi lnh mkdir
Khi to mt th mc chng ta c th thit lp quyn truy nhp vi la chn -m.
Mt la chn c ch khc l -p s t ng to tt c cc th mc con khi cn.

V d:

mkdir p docs/programs/versions

Xo cc th mc
xo mt th mc chng ta c th s dng lnh rmdir hoc rm. Nu bn ang
th mc gc bn c th dung la chon -f xo tt c cc file.
Ch :

xo tt c cc file v cc th mc con v
dir1 l th mc trng
rm -rf /dir1/*

rm -rf /dir1/

xo tt c cc file v cc th mc con bao gm

c dir1

S dng cp v mv
cp
C php
cp [options] file1 file2
cp [options] file1 directory

62

Qun tr H thng Linux - C bn


Ch rng cp file1 file2 to mt bn copy mi ca file1 v khng lm thay i
file1

Hnh minh ho: file1 vi inode 250 s c copy sang file 2, sao y d liu n
mt vng d liu mi v tao inode mi 6238 cho file2.

Chng ta cng c th copy mt s file n mt th mc khc bng cch dng


danh sch lit k hoc k t i din. Bng sau dy s hin th cc la chn
thng c s dng

Ch :

cp -r /mydir/* /dir2/ s copy tt c cc file v th mc con

ngoi tr mydir
cp -r /mydir/ /dir2/ s copy tt c cc file v th mc con bao

gm c mydir

mv
C php:
mv [options] oldname newname
mv [options] source destination
mv [options] source directory

63

Qun tr H thng Linux - C bn


Lnh mv c th di chuyn hoc i tn cc file v th mc. Nu oldname l mt
file v newname l mt th mc th file oldname s c di chuyn n th mc
ny.
Nu source v destination cng nm trn mt h thng file th file khng c
copy nhng thng tin v inode s c cp nht xc nh v tr mi. Cc la
chn thng thng l -f ghi v -i truy vn tng tc.

Hard links v symbol links


Cc lin kt tng trng
Mt lin kt tt mm n mt file hoc mt th mc to mt inode mi ch n
cng mt vng d liu.

ln

s lilo.conf lilo.sys

y l danh sch nhng file ca cu lnh trn. Ch rng gi tr tham chiu l 1


cho c 2 file.

Hnh 2: Mt lin kt tt mm n mt file

Cc lin kt tt mm c th c to thng qua cc h thng file khc nhau

64

Qun tr H thng Linux - C bn


Cc lin kt tt cng
Mt lin kt tt cng l mt tn c to thm cho cng mt inode v gi tr
tham chiu ca file s c tng thm 1 cho mi lin kt tt cng mi

ln

lilo.conf lilo.link

Trong bng i y ch rng gi tr tham chiu l 2 v c 2 file c cng kch


thc. Thc t chng hon ton ging nhau.

Cc lin kt tt cng ch c th c to trong cng mt h thng file.

Touching v dd-ing
touch
Mt cch khc to hoc thay i mt file la s dung touch
C php:
touch {options} file(s)

Nu file cha c th n s c to mi. Chng ta c th thay i thi gian truy


cp file bng la chon -a, -m thay i thi gian sa i file, v -r dng s
dng cc thuc tnh thi gian ca file khc.
V d
touch file1.txt file2.txt

to cc file mi

touch myfile -r /etc/lilo.conf

myfile s ly cc thuc tnh thi

gian ca lilo.conf

To mt file -errors s dng la chn -:

65

Qun tr H thng Linux - C bn


touch -- -errors

dd
Lnh ny s copy 1 file vi kch thc khi I/O c th thay i. Lnh ny cng
c dng thc hin cc qu trnh chuyn i (ging nh tr). Cc la chn
chnh l if= (file nhp), of=(file xut), v conv=(chuyn i)
Cc kho chuyn i c th l: lcase, ucase, v ascii
V d
dd if=/mnt/cdrom/images/boot.img of=/dev/fd0

Bi tp
iu hng file
To mt th mc mi /bin trong /tmp
mkdir /tmp/bin

Trong /tmp/bin to mt file gi l newfile (s dng touch, cat, hoc vi)


Chuyn n th mc gc (cd /). Xem ni dung ca newfile t v tr ny.
Cu lnh ngn nht no gip bn quay tr v /tmp/bin?
Cu lnh ngn nht no gip bn chuyn n th mc home ca bn?
Bin PWD l cc b hay ton cc?

To v xo cc th mc
Cch no l nhanh nht to cc th mc /dir1/dir2?
Xo cc th mc ny vi rmdir sau vi rm

To khong trng trn h thng file


to thm khong trng trn thit b cha th mc /usr/share/doc chng ta cn
tm thit b d phng c khong trng copy ni dung ca /usr/share/doc
vo thit b ny.Sau chng ta s xo th mc /usr/share/doc v to mt im
lin kt tng trng t /usr/share/doc n v tr mi.

66

Qun tr H thng Linux - C bn

To mt th mc /spare trn chng ta s gn (mount) cc thit b d phng


ph hp (mt trong nhng phn vng c to t cc bi tp trc s ph hp
cho mc ch ny)
mkdir /spare
mount <device> /spare

Kim tra vi lnh df -h /spare v du -hs /usr/share/doc xem thit b ny c


dung lng ln cha tt c d liu ang c.
Tip theo, copy cc ni dung ca /usr/share/doc n /spare/
cp -a /usr/share/doc /spare

Sau khi chc chn d liu c copy ht th thay i /etc/fstab c th s dng


ngay sau khi ng.
Xo /usr/share/doc v to im lin kt tng trng t /usr/share/doc n
/spare/doc
ln -s /spare/doc /usr/share/doc

Thc hin tng t vi /home. Xem c vn g xy ra?

Tm kim cc file trn h thng


Copy file /etc/lilo.conf n /etc/lilo.conf.bak
1 Dng lnh find tm find mi
2 Dng locate tm /etc/lilo.conf.bak (Bn s cp nht c s d liu slocate
nh th no?)
Cc sao lu d phng (bc u tin)
Tm tt c cc file c thay i trong ngy hm nay trong th mc home ca
bn.
find /home -mtime -1 |tee list1 |wc --lines (-1 c ngha l t hn 1

ngy)
Chng ta s gii thiu cc tin ch lu tr phn sau, tuy nhin kt qu xut ca
cc lnh tm kim s c dn trc tip vo cpio.

67

Qun tr H thng Linux - C bn

QUN L TIN TRNH


Xem cc tin trnh ang chy
Cc tin trnh c mt m (ID) tin trnh duy nht l PID. Gi tr ca PID c
th dng thay i s u tin ca tin trnh hoc dng hn tin trnh .

Mt tin trnh l bt c chng trnh no ang thc hin. Nu process_2 c


sinh ra bi process_1 th n c gi l tin trnh con. Cn process_1 th c
gi l tin trnh cha.

Cy gia h ca cc tin trnh


Lnh pstree s a ra mt minh ho y ca h phn cp cc tin trnh cha v
con.
Hnh 1: Mt phn cc kt qu ca pstree

Trong hnh trn tt c cc m tin trnh (PID) u c nhn thy; gi tr ca


chng c tng dn. La chn thng dng nht ca lnh ny l -p s hin th
cc PID v -h s lm ni r cc tin trnh ca ngi dng.

68

Qun tr H thng Linux - C bn


Tm kim cc tin trnh ang thc hin
S dng lnh ps l mt cch trc tip xc nh tin trnh no ang thc hin.
Phn ln ngi dng kt hp mt s cc la chn ph hp vi mc ch tm
kim. Di y l 3 l chn nh vy.
ps -ux

hin th tt c cc tin trnh thc hin bi ngi dng

ps T

hin th cc tin trnh dang chy bi thit b u cui hin thi ca


ngi dng

ps aux

hin th tt c cc tin trnh trn h thng

bit chi tit hn cc la chn chng ta nn s dng lnh ps manpage v chn


ra nhng la chn ph hp nht.

Cp nht lin tc thng tin tin trnh


Tin ch top s cp nht thng tin trn cc tin trnh ti mt mc iu chnh.
Trong khi tin ch top ang thc hin chng ta c th g h i vi mt danh sch
cc lnh. Khong trng s c cp nht thng tin tc thi. Chng ta cng c th
dng top thay i mc u tin ca mt tin trnh.

69

Qun tr H thng Linux - C bn

Thay i tin trnh


Dng cc tin trnh
Lnh kill s gi cc tn hiu n cc tin trnh. C tng cng 63 tn hiu. Tn hiu
mc nh dng mt tin trnh c gi l SIGTERM vi gi tr 15.

kill
c php
kill SIGNAL process_PID

Mi tin trnh c th la chn nhn hay khng nhn mt tn hiu ngoi tr


SIGKILL s c thc hin bng nhn h thng. Cc daemon s hiu SIGUP c
ngha l "c li file cu hnh"

Chng ta c th s dng lnh killall dng cc tin trinh m khng cn bit


PID

killall
C php
killall SIGNAL process_NAME

Hnh 1: Tn hiu gia cc tin trnh

70

Qun tr H thng Linux - C bn

u tin tin trnh v cc gi tr (nice value)


Cc gi tr nice value (NI) thay i quyn u tin ca CPU v c dng cn
bng qu trnh s dng CPU trong mi trng a ngi dng. Mi tin trnh bt
u vi gi tr NI mc nh l 0. Cc NI nm trong phm vi t 19 [thp nht] n
-20[cao nht]
Ch c ngi qun tr h thng c th gim gi tr NI ca mt tin trnh. T khi
tt c cc tin trnh bt u vi gi tr NI mc nh l 0, ch c ngi qun tr h
thng c th thit lp gi tr m cho cc gi tr NI.

S dng lnh renice thay i mc u tin ca mt tin trnh. Dng lnh


nice thit lp mc u tin ca mt tin trnh.
71

Qun tr H thng Linux - C bn

C php
nice -<NI> <process>
renice <+/-NI> -p <PID>

Ch rng renice thc hin vi cc PID v x l danh sch cc tin trnh ti mt


thi im. Mt la chn c ch ca renice l -u, la chn ny s nh hng n
tt c cc tin trnh thc hin bi ngi dng.

Thit lp gi tr 1 cho cc tin trnh 234 v 765

renice +1

-p

234 765

Thit lp gi tr -5 cho xclock

nide

--5 xclock

Tin trnh v Shell


Cc tin trnh nn sau v nn trc
Sau khi chng ta bt u mt tin trnh t shell, chng ta s tin trnh cho
shell t ng thng dch. Chng ta ch rng s khng c lnh no p ng na.
L do cho vn ny l ch c th thc hin cc chng trnh trong nn trc
fg hoc nn sau bg ca shell.

72

Qun tr H thng Linux - C bn


Khi mt chng trnh ang chy trong ch nn trc, du nhc shell c th
khi phc bng cch ngt chng trnh . Tn hiu ngt c sinh ra bi t hp
phm Ctrl Z.

Dng v bt u cc cng vic (job)


Mt tin trnh bt u t shell cn c gi l mt cng vic. Khi mt cng vic
nhn tn hiu ^Z, n s c dng v du nhc shell s xut hin. khi to li
chng trnh trong ch nn sau chng ta ch cn g: bg
V d
[mike localhost /bin]$xclock

xclock chy trong ch nn trc, du


nhc shell bin mt

[1]+ Stoppep xclock

xclock nhn tn hiu ^Z

[mike localhost /bin]$bg

du nhc shell c khi phc v a vo


lnh bg

[1]+ xclock &

xclock ang chay trong ch nn sau

[mike localhost /bin]$

Ch k hiu [1]+ trn. Gi tr ny l job number ca tin trnh. Trong du


hiu '+' ch ra tin trnh c thay i ln gn nht. Du hiu '-' ch ra tin trnh
c thay i ln lin k

Hin th cc cng vic


Tin ch jobs hin th tt c cc tin trnh ang chy bt u t shell hin thi.
Gi tr job number, trng thi cng vic (ang chy hay dng), v 2 tin trnh
c thay i gn nht s c hin th

Job number
73

Qun tr H thng Linux - C bn


Chng ta c th dng v bt u la chn cc cng vic mt cch thun tin bng
cch s dng job number. Vic la chn ny c thc hin cng vi lnh fg

Gi job 2 nn trc v loi b (kill) job 1


fg 2 hoc

kill -9 %1

fg %2 hoc
fg %?xma

Trnh s dng HUP vi nohup


nohup l mt chng trnh c vai tr nh mt tin trnh cha c lp vi phin
ngi dng. Khi mt ngi dng thot khi h thng, th h thng s gi HUP
n tt c cc tin trnh nm trong nhm tin trnh ca ngi dng. V d,
trnh tn hiu HUP, mt chng trnh gi l bigbang s c gng tnh thi gian
xut hin ca cc tin trnh

nohup bigbang &

Bi tp
Bn nn chy X trc khi bt u cc bi thc hnh sau
1. Kim tra gi tr nice value (NI) hin thi ca x-terminal ang chy. Thay i
gi tr ny bng ln top hoc renice
2. Tn hiu tng ng ca ^Z gi n mt tin trnh l g? (Hin th tt c cc
tn hiu vi kill -l)
3. Tn hiu no c nh ngha li cho phn ln cc daemon v yu cu c li
file cu hnh?
4. Tn hiu mc dnh gi n mt tin trnh l g khi s dng kill hoc killall?
5. Tn hiu no c trc tip x l bng nhn h thng (kernel) v khng th
nh ngha li?
74

Qun tr H thng Linux - C bn


6. Trc ht bn hy ng nhp vo thit b u cui o (tty1 to tty6). Chng ta
s thc hin mt script cho php tip tc chy khi chng ta thot ra khi h thng
dng tin trnh cha nohup
Trong th mc /tmp to mt file gi l print-out vi ni dung sau y
#!/bin/bash
count=0
while (true) do
echo this is iteration number $count
let count+=1
done

Chng ta trc ht thc hin cc bc sau (khng dng nohup)

Chng ta c th khng nhn thy dng lnh khi g exit nhng cu lnh ny
s lm bn thot ra khi h thng. Khi bn ng nhp li hy kim tra print-out
c dng

Tip theo bt u vi lnh

ng nhp li v kim tra nhng lnh sau

75

Qun tr H thng Linux - C bn

X L VN BN
cat the Swiss Army Knife
Dng cat son vn bn
Tin ch cat c th dng nh mt chng trnh son tho n gin

Ch cch dng Ctrl+D. Lnh ny c dng kt thc nhp input.

Dng cat c vn bn
Thng thng hn cat c dng a vn bn ra stdout. Cc la chn thng
c dng l

-n

nh s mi dng ca output

-b

ch nh s dong ouput khng trng

-A

hin th k hiu xung dng

V d

Lnh tac s c vn bn t cui ln u

76

Qun tr H thng Linux - C bn


Lnh ny ging nh cat ngoi tr ni dung vn bn c c t dng cui ln
u

Cc cng c n gin
S dng head hoc tail
Cc tin ch head hoc tail thng c dng phn tich cc logfile. Chng s
xut a ra mc nh 10 dng vn bn. Sau y l cch dng

Hin th 20 dng u tin ca /var/log/messages:

Hin th 20 dng cui cng ca /etc/aliases:

Tin ch tail c thm mt la chn cho php hin th ni dung vn bn bt u t


dng a vo cho en ht.

Hin th ni dung vn bn bt u t dng 25 trong /var/log/messages:

77

Qun tr H thng Linux - C bn


Cu hi: nu mt vn bn c 90 dng, chung ta s s dng lnh tail v head nh
th no hin th cc dng t 50 ti 65? C th c nhiu hn mt cch thc
hin iu ny?

Cui cng tail c th c lin tc mt file bng la chn -f. La chn ny rt c


ch khi chng ta mong mun mt file c thay i trong thi gian thc

m s dng, s t v byte
Tin ich wc s m s lng cc byte, cc t, v cc dng trong file. Mt vi la
chn cho php chng ta thay i gi tr output ca wc

Cc la chn cho wc
-l

m s dng

-w

m s cc k t hoc t

-c hoc m

m s cc byte hoc k t

Lu :
Nu khng c tham bin, wc s m da trn ni dung c g vo stdin

nh s cc dng
Tin ch nl c tc dng ging nh cat -b
nh s tt c cc dng gm c cc dng trng

nh s cc dng vn bn khng trng

78

Qun tr H thng Linux - C bn

Thay th tab bng space


Lnh expand cho php thay th TAB bng cc du cch (space). Chng ta c th
dng lnh unexpand thay th ngc li.

Xem cc file nh phn


C mt s cng c thc hin iu ny. Cng c ph bin nht l od (octal
dump) v hexdump.

X l vn bn
Cc cng c sau y thay i b tr vn bn
La chn cc trng (field) v cc k t vi cut
Tin ch cut c th ly ra mt vng cc k t hoc cc trng t mi dng ca
vn bn.
La chn -c c dng x l k t.
C php:

V d:

V d trn s a ra cc k t t v tr 5 n 10 v t 15 n cui dng ca mi


dng trong /etc/password

Chng ta c th xc nh du phn cch cc trng (du cch, du phy,...) ca


mt file cng nh cc trng i vi output. Cc la chn c thit lp vi c
hiu -d v -f tng ng

C php:
79

Qun tr H thng Linux - C bn

V d:

V d ny s a ra cc trng t trng u tin n trng th by ca


/etc/passwb c phn cch bng du cch. Mc inh ca output-delimiter l
ging nh cc phn cch input ban u. La chn --output-delimiter cho php
chng ta thay i gi tr mc nh ny.

Kt ni v dn vn bn
Tin ch n gin nht l paste s ghp hai file bn cnh nhau
C php

Vi tin ch join chng ta c th xc nh c th hn nhng trng m chng ta


ang quan tm

C php

Vn bn c gi n stdout ch khi nhng trng c th i snh. Qu trnh so


snh c thc hin trn mt dng ti mi thi im cho n khi c s trng
nhau c tm thy v qu trnh s c dng nay lp tc mc d c th c
nhng s trng nhau nm pha sau.

Sp xp output
80

Qun tr H thng Linux - C bn


Lnh sort s sp xp mc nh mt vn bn theo th t abc. La chn -n s thc
hin vic sp xp theo th t s.

nh dng output
Chng ta c th thay i s lng cc k t trong mi dng ca output bng lnh
fmt. Mc nh fmt s lin kt cc dng v a ra 75 k t cho mi dng

Cc la chn fmt
-w

s lng cc k t trn mi dng

-s

tch nhng dng di nhng khng in y dng cn li

-u

t mt du cch gia mi t v 2 du cch cui mi cu

Thay th cc k t
Tin ch tr s thay th mt tp hp cc k t bng tp h k t khc.

V d thay i cc ch ci vit hoa bng ch ci thng


tr

[AB] [ab]

<file.txt

Thay th cc du phn cch trong /etc/passwd:

Ch : tr ch c 2 tham bin! V file khng c tnh l tham bin.

Bi tp
1. S dng cat g vn bn sau vo mt file c tn l message
cat >> message
line 1

81

Qun tr H thng Linux - C bn


^D

Thc hin tng t nhng dng t kho STOP thay th iu khin kt thc file
(^D)
cat >> message << STOP
line 2
STOP

Tip theo, thm vn bn sau vo message s dng echo

echo line 3 >> message

2. To mt file c tn l index vi 2 trng REFERENCE v TITLE c phn


cch bng du cch
v d 001 Using_Linux

To file th hai c tn l pricing vi 2 trng REFERENCE v PRICE c


phn cch bng du cch
v d 001 9.99

S dng ln join hin th cc trng reference, title, v price.

3. S dungh tr thay th ton b du hai chm bng du chm phy trong


/etc/passwd
Thc hin tng t dng lnh cut

4. S dng lnh head v tail hin th dng 75 n 80 ca /var/log/messages

5. S dng tin ch cut cng vi grep v ifconfig in ra duy nht a ch IP ca


giao din mng eth0

82

Qun tr H thng Linux - C bn

6. Trong /tmp to mt th mc vi tn l files


mkdir /tmp/files

To 50 file trong th mc ny
# ! /bin/bash
count=0
while [ $count -lt 50 ] do
touch /tmp/files/$count.txt
let count+=1
done

Cc bn s g cc dng lnh sau thay i cc file c phn m rng txt sang


dat

83

Qun tr H thng Linux - C bn

CI T PHN MM
Gii thiu
Hy bt u cng vi mt on m ngun ngn. V d ny s gip gip chng ta
tm hiu vn m khng cn c kin thc su v ngn ng lp trnh C

Tp main.c:
#include<stdlib.h>
int main(){
Hello();
}

Tp Hello.c:
#include<stdio.h>
void Hello(){
printf(Hi ! \n);
}

Ch : main.c l cha hon thnh nu hm Hello() l cha c nh ngha.


Cng nh vy i vi Hello.c nu khng c khi bo main. Do , cc tp ny
l ph thuc nhau. Tuy nhin tng hm ring bit vn c th c dch theo mt
i tng kiu Object (.o) y l kiu files c s dng xy dng cc ng
dng.

Dch cc file i tng


gcc c main.c
gcc c Hello.c

Cu lnh trn s to ra 2 tp main.o v Hello.o c s dng xy dng cc


ng dng app.
Dch app
84

Qun tr H thng Linux - C bn

La chn o xc nh tn ca m ngun c dch. Nu khng c tn tp no


c ch ra tp dch s c t tn mc nh a.out
Tt c cc bc trn c th c chy t ng bng cch s dng a Makefile.
Di y l mt v d nh dng Makefile to ng dng app
Makefile
SHELL = /bin/sh
CC = /usr/bin/gcc
app: main.o Hello.o
$(CC) o app main.o Hello.o
main.o: main.c
$(CC) c main.c
Hello.o Hello.c
$(CC) c Hello.c

Th vin tnh v th vin chia x


Cc hm chc nng thng dng c lu li trong cc th vin. Trong thi gian
dch chng trnh cc th vin ny c th c link ti m ngun ni c s dng
lnh gi th vin chc nng. Th vin c th c link ti m ngun mt cch
tnh hoc ng.
Lnh dch gcc c th link th vin trong cc cch khc nhau. Tuy nhin theo ch
mc nh n s l link cc tp(files) c khai bo trong dng lnh khng c
phn m rng .c (ch c cc tp c m rng .c l c hiu nh m ngun).
Listing 1. Kt ni mc nh (linking)

gcc main.c Hello.o

Dng lnh trn s to tp chy a.out cng tp i tng Hello.o c link tnh
ti n.

85

Qun tr H thng Linux - C bn


Th vin tnh
Cc th vin tnh c lu tr trong file .o. Cc lu tr c to ra bi cng c
ar v c phn m rng .a.
Hnh 2: thm mt file i tng vo phn lu tr

ar rcs libfoo.a file1.o file2.o

Th vin ng / Th vin chia s


Th vin chia s l mt th vin s c ti bi chng trnh khi n c thc
thi. Mt khc chng ta cng c th ni n l th vin m c ti ng
(dynamically loaded)
Hnh 3: To th vin chia s:

gcc c fPIC Hello.c

to file i tng

gcc shared W1, soname, libfoo.so.1 o libfoo.so.1.0


Hello.o

C hiu (flag) -fPIC s kch hot v tr m ngun c lp

Hnh 4: Dch chng trnh vi th vin chia s:

gcc main.c libfoo.so.1.0

Dng lnh trn s to file chy a.out. Tuy nhin nu bn th chy file ny my
tnh s thng bo li di y.

Thng bo li khng tm thy th vin chia s


./a.out:
error
libfoo.so.1.0:cannot

while
loading
open shared object

86

shared
file: No

libraries:
such file or

Qun tr H thng Linux - C bn


directory

Trong phn tiptheo chng ta s tm hiu cch sa li ny.

t tn Th vin chia s v ti dynamic


Chng ta s dng v d trong phn trc tm hiu Th vin Linux c bo
tr(maintain) th no.

Hnh 1: Tn th vin chia s

S dng cng c ldd xem Th vin chia s no mt file chy cn trong thi
gian thc thi.

87

Qun tr H thng Linux - C bn


V d:

ldd a.out
libfoo.so.1.0 => not found
libc.so.6 => /lib.libc.so.6 (0x40028000)
/lib/ld-linux.so.2
(0x40000000)

=>

/lib/ld-linux.so.2

Ch chng ta s khng tm thy file libfoo.so.1.0 v a.out cn ti(load)


ng th vin ny v kt ni ng ld.so khng bit c s tn ti ca th vin ny.

C th lm theo mt trong cc cch sau khc phc li ny.


1. Nu tp nh phn cn ch tm thi, kim tra nh ngha bin
LD_LIBRARY_PATH nh sau:

export LD_LIBRARY_PATH =$(pwd)

2. Copy libfoo.so.1.0 vo th mc /usr/lib v chy ldconfig nng


cp ld cache

Ci t ngun

88

Qun tr H thng Linux - C bn

Qun l gi Redhat ( Redhat Package Manager RPM)

Figure1: Cc chc nng ca Qun l Gi ( Package Manager)

t tn package
Rpm c t tn theo cch sau
name-version-release.architecture.rpm

Ch (mode) chnh
Tt

M t

-i

- install

Ci t gi

-U

-update

Cp nht hoc ci t gi

-F

--freshen

Cp nht ch nhng gi install

-V

--verify

C file, MD5, quyn, kiu ...

89

Qun tr H thng Linux - C bn


-q

--query

Yu cu gi cc gi v cc file ci t/ g
b

-e

--erase

G b gi

Ch th cp
Tt

M t

p dng cho tt c cc gi ci t

cng vi q a ra cc file cu hnh

cng vi q a ra cc file ti liu

chy bng bm (hash) trong khi x l

cng vi q a ra thng tin v gi

cng vi q a ra tt c file v th mc trong mt gi

cng vi q ch ra truy vn no c thc hin i vi file

verbose

Cc mode yu cu (query mode)


Chng ta xem xt v d vi gi routed-0.17.i386.rpm. Bn c th truy vn gi
ny v a ra ni dung ca n trc khi ci t cng vi la chn nh sau:

rpm -qpl routed-0.17.i386.rpm

Khi gi ny c ci t bn c th truy vn gi ci t nh sau:

rpm -ql routed-0.17

or

rpm ql routed

90

Qun tr H thng Linux - C bn

Cui cng nu chng ta mun tm gi no ci t file /usr/sbin/routed d liu


rpm c th c yu cu cng:

rpm -qf /usr/sbin/routed

Ba kiu truy vn (query): uninstalled packages, installed packages v file


Kiu truy vn

Tu chn

Package File

-qp

Installed Package

-q

File

-qf

Mt tu trn m rng s cho php bn ly thng tin trong tt c cc files ci


t l, ti liu ci t d, file cu hnh c, v.v...

Cc Tu chn c bit
--nodeps

cho php ci t khng ph thuc

--force

p buc nng cp, ci t

--test

khng ci t hoc nng cp, ch in ra stdout

--requires

ch ra cc yu cu ca gi

M ngun cho rt nhiu packages RPM cng c th c di dng package


RPM v s c s dng xy dng mt package nh phn. Tn kt hp s l:
name-version-release.src.rpm

tn-phin_bn-ngy_xut-

bn.src.rpm)
Cc gi nh vy s cha t nht 2 file, tarball cng m ngun v mt spec file.
spec file cha ng ch dn v (patch), dch v xy dng RPM package.Nu
m ngun cn c v trc khi dch th ming v s nm trong package ngun.
91

Qun tr H thng Linux - C bn


C ba cch khc nhau xy dng mt package RPM. Gi s rng bn c mt
package vi tn gi: name-version-release.src.rpm.

i vi cc phng thc ny, trc tin bn cn ci t gi rpm-build

Cch 1:
Ci t package ngun RPM vi:
rpm ivh name-version-release.src.rpm

Lnh trn s copy cc filevo th mc sau:


/usr/src/redhat/SPECS
/usr/src/redhat/SOURCES

Trong th mc /usr/src/redhat/SPECS c mt file vi tn name.spec (trong


name l tn ca package). bt u xy dng package dch, tn nameversion-release.i386.rpm, g trong ca s lnh:
rpm ba name.spec

Dng lnh trn s kch hot mt lot cc scripts. tarball trong


/usr/src/redhat/SOURCES s c m (unpackage) ti
/usr/src/redhat/BUILD

Nu qu trnh dch thnh cng th package nh phn s c lu trong


/usr/src/redhat/RPMS/.

C mt s cc th mc th cp khc nhau tng ng vi mt s models/th h


ca CPU. Nu qu trnh dch khng lin i ti cc c tnh c bit t cc chip
th package s c lu vo th mc noarch.

Cch 2:
Cch ny cng tng t nh cch th 1 nhng bt u vi lnh n sau y:
92

Qun tr H thng Linux - C bn


rpm --rebuid name-version-release.src.rpm

Cch 3:
Trong mt vi trng hp nh pht trin s phn phi tarball cng vi nhau trong
mt file spec. Nu tarball c gi tn name-version-release.tar.qz bn c
th tm mt file .spec vi lnh sau:
tar tzvf name-version-release.tar.gz | grep .spec

Nu tarball c mt file spec th bn c th xy dng mt package RPM bng cch


g:
rpm --bt name-version-release.tar.gz

Cng c Alien
Cng c ny s chuyn i packages Debian sang Redhat v ngc li. Bn c
th ti xung ti: http://kitenet.net/programs/

93

Qun tr H thng Linux - C bn

Bi tp
Trong cc v d sau ti mt file RPM ngun ( vd. bash-2.05-8.src.rpm vi Redhat
7.2) t www.rpmfind.net
1. Ci t tarball
Bung cc thnh phn ca gi RPM m khng dch bt c file no:
rpm ivh bash-2.05-8.src.rpm

Trong th mc /usr/src/redhat/SOURCES, m gi tarball vi:


tar xvzf bash-2.05-8.tar.gz

Tu chn( khuyn ngh): Ming v c th c p dng. C php s thay


i ph thuc vo bn ang th mc no
T /usr/src/redhat/SOURCES:
patch p0 b <file.patch

T /usr/src/redhat/SOURCES/bash-2.05-8
patch p1 b <file.patch

Cui cng dng:


./configure
make

Nu bn chc chn bn mun ci t package ny hy dng make install nhng


nh rng n s khng ci t phn mm s dng package manager.
2. Xy dng li RPM package manager.
rpm -rebuild package.src.rpm

Package nh phn dch s trong /usr/src/redhat/RPMS


o Kim tra thnh phn ca package vi tu chn qpl
o ci t package, v chy truy xut vi cc package ci t
o G b(uninstall) package

94

Qun tr H thng Linux - C bn

THAO TC VI VN BN NNG CAO


Tm kim mt t hoc mt cm t trong mt vn bn c lu tr s dng grep,
fgrep hoc egrep. Cc t kho s dng trong qu trnh tm kim l mt t hp
ca cc k t c gi l biu thc chnh quy (regular expressions-regex). Biu
thc chnh quy c nhn dng bi rt nhiu ng dng nh sed, v vi.

Cc biu thc chnh qui


Bng 1. Danh sch regex chnh
K t

Tm kim tn ng

x ( hoc bt c k t no)

Cc chui cha ng x

\<KEY

Cc t bt u bng KEY

WORD\>

Cc t kt thc bn WORD

Bt u ca mt dng

Kt thc mt dng

[ Range]

Gii hn ca bng m ASCII

[^c]

Khng phi k t c

\[

K t [

cat*

Chui cha ng ca hoc cat v cc k t bt k


tip theo

Tm kim cc k t n

Biu thc chnh quy m rng (extended regex- eregex): Cc k t chnh ca


eregex l: . ?,() v |
Bng2: Danh sch eregex chnh
K t

Tm kim tng ng

95

Qun tr H thng Linux - C bn


A1|A2|A3

Chui cha ng A1 hoc A2 hoc A3

cat+

Chui cha ng t nht cat v cc k t bt k tip theo

cat?

Chui cha ng ca hoc cat v cc k t bt k tip


theo.

H grep
Tnh nng grep h tr biu thc chnh quy regex nh m t bng1.
egrep
Cng c egrep h tr biu thc chnh quy m rng eregex nh m t trong
bng2.
fgrep
fgrep biu din cho grep nhanh v fgrep dch chui gc ( khng c h tr ca
regex hoc eregex)

Lm vic vi grep
C php ca grep:
grep PATTERN FILE

Grep

Main Options

-c

m s lng dng trng vi PATTERN

-f

Tm PATTERN t file

-i

b qua cc trng hp nhy cm

-n

ch ra s dng ca file

-v

xut ra tt c cc dng t nhng dng cha PATTERN

-w

Tm kim chnh xc tuyt i PATTERN

V d a ra danh sch ca tt c cc dng khng trng trong /etc/lilo.conf:


96

Qun tr H thng Linux - C bn

grep v ^$ /etc/lilo.conf

egrep v fgrrep
Tin ch fgrep khng nhn bit c ng ngha c bit ca mt biu thc chnh
quy. V d

fgrep cat* FILE

Dng lnh trn ch tm kim cc t cha ng cat. Kh nng ca fgrep c b


sung thm nh la chn LIST. C php nh sau :
fgrep f LIST FILE

Tin ch egrep s thc hin vi mi biu thc chnh quy mi. N cng c th tm
kim mt vi t kho nu chng c bt u vi dng lnh c chia bi pipes.
V d:

egrep linux|^image /etc/lilo.conf

B son tho Stream sed


Tin ch sed thng thng c s dng tm kim v thay i pattern trong
vn bn. N h tr phn ln cc biu thc chnh quy (regex).
Lm quen vi sed
C php :
sed [option] lnh [INPUTFILE]

file input l tu v sed cng lm vic trong cc th mc file v pipes. y l


mt vi v d gi s chng ta lm vic trong mt file gi l MODIF.
97

Qun tr H thng Linux - C bn

Xo tt c cc dng ch thch :

sed /^/ d MODIF

Ch rng pattern c tm kim nm gia hai gch cho //.

Thay th /dev/hda1 bi /dev/sdb3:

sed

s/\/dev\/hda1/\/dev\/sdb3/g

MODIF

K t s trong dng lnh biu din cho substitute. K t g biu din cho
globally v p substitution trn mi dng
Nu dng cha ng t kho KEY th thay th : vi ;

sed

/KEY/ s/:/;/g

MODIF

sed nng cao


Bn c th s dng mt vi lnh bt u vi e ti dng lnh. V d, (1) xo tt
c du trng khi (2) thay th OLD bng NEW trong file MODIF

sed

-e /^$/ d e s/OLD/NEW/g MODIF

Cc lnh trn c th c vit vo mt file, v d COMMANDS. Khi mi


dng c dch nh mt dng lnh chy.

sed

-e /^$/ d e s/OLD/NEW/g MODIF

98

Qun tr H thng Linux - C bn

1 s/old/new
/keyword/ s/old/new/g
23,25 d

C php s dng cng COMMANDS file l:


sed

-f

COMMANDS MODIF

Vic ny tin li hn rt nhiu vic phi nh lin tc nhng dng ln di.

Tm tt la chn cho sed


C dng lnh
-e Thc hin cc lnh tip sau
-f c cc lnh t mt file
-n Khng in ra cc dng khng c sa i

Tu chn ca lnh
d Xo mt dng
r c mt file v xut ra file output
s Thay th
w Ghi kt qu ra vo mt file

Bi tp
1. To mt file mi c tn FILE vi ni dung sau:
Using grep,
fgrep and
egrep
99

Qun tr H thng Linux - C bn


to grep for 99% of the cats
% these are two
% commented lines

S dng grep xut ra ch nhng dng lnh khng phi l dng ch thch
Tm kim cc dng cha ng cc t bt u vi a
2. Biu thc chnh quy. Thm cc dng sau vo file trn:
ca
cat
cats
catss
cat+
cat*
cat?
car
carriage
Xem kt qu ca cc lnh sau khi s dng grep, egrep v fgrep:
grep cat+ FILE
grep cat? FILE
grep cat. FILE
grep cat* FILE

3. S dng sed thc hin cc thay i sau trong FILE


( s dng file COMMAND, sau lm cc bc sau trn dng lnh)
trong dng u thay th grep, vi soap
xo fgrep trong dng th hai
thay th egrep vi water
trong dng th t thay th grep for vi wash
Save kt qu vo mt file s dng tu chn w

100

Qun tr H thng Linux - C bn

S DNG TRNH SON THO VI


vi c s dng nh l trnh son tho chnh trong Linux, mt cng c hu ch
nh grep hoc cat v c t ti /bin

Cc ch Vi
thc hin cc thao tc phc tp nh l copy/paste, trnh son tho vi c th
thc hin bng nhiu ch khc nhau
Ch dng lnh (Command Mode)
y l ch son tho v nh du thng s dng mt ch ci. V d
dng ch ci j nhy xung dng tip theo
Nh l qui tc ngn tay ci (rule of thumb), nu bn mun thc hin mt
thao tc nhiu ln, bn c th in s ln thc hin trc khi g cu lnh.
V d: dng lnh 10j nhy n 10 dng tip theo.
Ch dng (hoc ct) cui cng
Bn c th s dng ch ny mn hnh dng lnh (command line
mode) bng cch nh du hai chm. Ct s hin th gc bn tri cui
cng ca mn hnh. Trong ch ny, bn c th thc hin cc thao tc
n gin nh tm kim, ghi d liu, thot hoc chy mt cu lnh shell.
Ch chn
Cnh n gin nht thc hin ch ny trong mn hnh dng lnh
(command Mode) l dng ch ci i hoc a. y l ch trc quan nht
v thng c s dng chn vn bn vo mt ti liu.
Phm Esc s thot ch chn v quay tr v mn hnh dng lnh

Cc mc vn bn
Cc mc vn bn nh l t (words) hoc on vn bn (paragraph) c inh
ngha trong ch dng lnh (command mode) cho php son tho cc lnh s
dng trong cc ti liu vn bn m khng cn dng n thit b chut.
T, cu v on (Words, sentences and paragraphs)
101

Qun tr H thng Linux - C bn


e reps. b

Chuyn n cui / u t hin thi

( reps. )

Chuyn n cui / u cu hin thi

{ reps. }

Chuyn n cui / u on hin thi

tng t nh e nhng thm mt du cch sau t hin thi

u v cui (Beginning and End)


^

u dng

Cui dng

1G

u tp

Cui tp

Tt c cc mc vn bn trn c th c s dng nh du mt ch (w) hoc


mt on vn bn (})mt ln, di chuyn n u dng (^) hoc u tp (G), vv...
cng nh c s dng thc hin cc cu lnh nh xo hoc copy.

Chn vn bn
Trong ch dng lnh, i cho php bn chn thm vn bn vo ti liu. Cc c
tnh khc ca trnh son tho vi cng c thc hin tng t nh vy. Bng sau
y s lit k ton b cc c tnh chn vn bn ca vi.
Cc cu lnh chn
a

Chn vn bn vi con tr ti k t cui cng ca dng

Chn vn bn vi con tr ti k t cui cng cui dng

Chn vn bn ti v tr con tr hin ti

Chn vn bn vo dng mi

Chn vn bn vo dng mi pha trn

Xo k t hin thi v chn vn bn

Xo dng hin thi v chn vn bn

102

Qun tr H thng Linux - C bn

Xo vn bn
Nu bn mun xo mt k t n trong ch dng lnh th dng x v xo
dng hin ti th dng dd.
Ch : Gn nh tt c cc cu ln trong vi c th c lp li bng cch g thm
s ln lp li pha trc. Bn cng c th cch ny i vi cc mc vn bn
(nh t, cu, on vn bn, ...) bng cch thay th thc th (entity) sau cu lnh.
Bng 4: Cc t v k t
w

Ch n

K t n

V d:
Xo mt t
dw
Xo vn bn t v tr con tr n cui dng hin ti
d$
Xo vn bn t v tr con tr n cui on hin ti
d}
Bn c th xo cng lc mt mc vn bn ng thi chuyn sang ch chn vi
lnh c. Nh thng l bn c th s dng cu lnh ny vi mt mc vn bn nh
w hoc {.

Copy / Paste
Thao tc copy trong vi l cu lnh y (thay cho yank), v thao tc chn l p.

Nu mt dng c copy th s c chn vo dng tip theo pha di con tr.


Vic la chn vn bn c thc hin vi cc mc vn bn thng dng nh w, l,
}, $, ... Mt s ngoi l c m t trong v d di y.

V d:
103

Qun tr H thng Linux - C bn


Sao chp vn bn t v tr hin ti n cui dng hin thi
y$

Sao chp ton b dng hin thi


yy

Sao chp 3 dng


3yy

Mc xo cui cng thng thng c a vo b m v c th c chn vi


cu lnh p. iu ny tng ng vi thao tc copy v chn.

Tm kim
Do vic tm kim i hi phi khp theo mu do mt ln na chng ta li
cp n cc biu thc chnh qui (regular expressions regex). Nh mt s cng
c thao tc vi vn bn ca UNIX nh grep hoc sed, vi cng tun th cc biu
thc chnh qui ny.
thc hin tm kim, u tin phi chuyn v ch du hai chm. Cu lnh /
s tm kim t v tr hin ti xung cui v cu lnh ? s tm kim theo hng
ngc li.
c th thc hin thao tc tm kim v thay th. C php tng t nh i vi
sed.
V d:

Tm t bt u t ch comp trong ton b vn bn


/\<comp>

Tm dng bt u t ch ci z
/^z

104

Qun tr H thng Linux - C bn


Tm trong ton b vn bn vi t kho VAR v thay th bng var
:% s/VAR/var

Lm li (Undo)
Chng ta lun c th hu b cc thao tc va thc hin (trong ch dng lnh)
vi cu lnh u, v c th s dng i vi tp khi cha thao tc ghi cha c
thc hin.

Ghi vn bn
Cu lnh ghi d liu l w. Bng cch ny ti liu s mc nh c ghi li. Ngi
dng cng c th xc nh tn cho tp cn ghi. Tng on (portion) vn bn c
th c ghi li sang tp bn bn khc trong khi cc tp vn bn khc ang c
c hoc chn ti ti liu hin thi. V d sau s th hin iu ny.
V d:
Ghi ti liu hin ti ra tp c tn l newfile
:w newfile

Ghi dng 15 n dng 24 sang tp c tn l axtract


:w 15,24 extract

c t tp extract. Vn bn s c chn vo v tr con tr hin ti


:r extract

Ch : trong ng cnh ch ct (column mode) chng ta phi thc hin nh


sau
.

l dng hin thi

l cui ti liu

105

Qun tr H thng Linux - C bn

Bi tp
Ti root cp /var/log/messages to /tmp. S dng chc nng tm kim v thay th
ca vi to ra tt c cc dng bt u vi and end with;
G u hu b tt c cc thay i.
Copy /etc/lilo.conf ti /tmp, son tho tp ny v th copy/paste yy/p v
cut/paste vi dd/p
Kim tra kt qu ca :x, ZZ, :quit, :wq, v :q! (cu lnh no s ghi d liu v cu
lnh no khng)
Kim tra th kt qu sau khi s dng mt s ch chn vn bn nh: A, a, O, o,
S v s
La chn: Nu bn ci t gi vim-enhanced th chng trnh vimtutor s cho
thy mt s la chn thng dng ca vi.

106

Qun tr H thng Linux - C bn

NHN LINUX
Khi nim nhn
C 2 kiu nhn Linux, l:

A:

Nguyn khi (Monolithic)


L mt loi nhn h tr tt c cc phn cng, network v filesytem, c

bin dch vo trong mt file image n.


B:

H tr module (Modular)

L loi nhn cha mt s trnh iu khin, c bin dch nh l cc file i


tng m nhn linux c th ti vo v xa khi c yu cu. Loadable modules
c t trong th mc /lib/modules.

u im ca loi modular kernel l khng cn phi dch li khi cm thm phn


cng hoc thay th phn cng, nhanh, tin v p ng c hu ht cc trng
hp s dng. Monolithic c u im so vi modular kernel chnh c im
khng th np thm module mi vo nhn. Trong nhng h thng nhy cm,
monolithic kernel kt hp vi vic khng ci t trnh bin dch s hn ch

107

Qun tr H thng Linux - C bn


hacker rt nhiu trong vic s dng nhng module iu khin dng backdoor
mc nhn.

Nhn Modular
Rt nhiu thnh phn ca nhn linux c th bin dch nh l cc modules v cc
module ny c th ti vo hoc xa khi cn thit.
Cc module cho nhn linux c lu trong: /lib/modules/<kernel-version>.
Cc thnh phn tt nht module ha l cc thnh phn khng cn cho qu
trnh boot my, v d cc thit b ngoi vi v h thng v h thng file ph.
Cc module ca nhn linux c iu khin bng cc tin ch nm trong gi
modutils
-

lsmod

rmmod

insmod

modprobe

modinfo

Nhiu module ph thuc vo s c mt ca module khc. File lu thng tin v


cc module ph thuc /lib/modules/<kernel-version>/modules.dep c sinh ra
bi lnh depmod. Lnh ny c thc thi bi sript rs.syinit khi boot my.
-- modprobe s ti tt c cc module v cc module ph thuc s c lit k
trong modules.dep
-- /etc/modules.conf dng lu cc tham s module (IRQ v IO ports) nhng
thng cha mt danh sch cc b danh (alias). Nhng b danh cho php ng
dng tham chiu n thit b bng mt tn thng dng. V d thit b ethernet u
tin lun gi l eth0 v khng dng tn ca trnh iu khin c th.
Hnh 1: V d file /etc/modules.conf:
alias eth0 e100
alias usb-core usb-uhc

108

Qun tr H thng Linux - C bn


alias sound-slot-0 i810_audio
alias char-major-108 ppp_generic
alias ppp-compress-18 ppp_mppe

# 100Mbps full duplex


options eth0 e100_speed_duplex=4

Bin dch li nhn


Gii nn m ngun
M ngun ca nhn linux lu trong th mc /usr/src/linux, th mc ny l mt
l lin kt mm ti th mc /usr/scr/(kernel-version). Khi gii nn m ngun ca
nhn mi nn:

Xa lin kt mm ti th mc cha m ngun nhn c.

rm linux

M ngun ca nhn ng gi di dng gi RPM thng to ra mt lin kt tn


l linux-2-4
Gii nn m ngun mi (e.g linux-2.4.20.tar.bz2)

tar xjf linux-2.4.29.tar.bz2

Nhn phin bn 2.2 to ra th mc tn linux ch khng phi linuxversion. Do bc 1 l rt quan trng, ngoi ra c th nghi m ngun c
Ch :

bng m ngun nhn mi. T nhn phin bn 2.4 tr i, tn th mc l linuxversion.

To mt lin kt mm tn l linux t th mc mi va c to

109

Qun tr H thng Linux - C bn

ln -s linux-2.4.20 linux

n y, nhn sn sng cho vic cu hnh, nhng chng ta phi chc chn
rng, tt c file nh phn c c xa khi th mc cha m ngun ca
nhn, xa cc file nh phn hy dng lnh make mrproper.

Cu hnh nhn
u tin son tho file Makefile v thit lp bin EXTRAVERSION khc vi
cc phin bn c:
VERSION = 2
PATCHLEVEL = 4
SUBLEVEL = 20
EXTRAVERSION = -test

By gi l lc cu hnh cho nhn linux, cng vic c bn ca vic cu hnh l to


mt file c tn gi .config bng cch: t th mc /usr/src/linux thc hin mt
trong cc lnh sau:
make menuconfig
make xconfig
make config

Tt c cc lnh ny s ghi vo file /usr/src/linux/.config

Thng thng d dng trong vic cu hnh mt nhn mi s dng file .config
c bng cch s dng lnh make oldconfig. Lnh ny s ch nhc ngi dng
nhng c tnh mi trong cy th mc m ngun ca nhn (nu nhn mi hn
hoc nhn c sa cha)..

110

Qun tr H thng Linux - C bn


Ch : mt s dng linux (distributions linux) v d RedHat c mt th mc
configs con cha cc file config vi cc thng s cu hnh c thit lp trc.
kch hot cc tnh nng nhn (vi make menuconfig) bn s phi nhp
category mc cao nht bng cch chuyn cc phm mi tn v bm enter truy
cp vo category mong mun. Trong category c th, bm thanh du cch s lm
thay i nhn h tr i vi mt c tnh hoc mt driver
Cc kh nng h tr l
o H tr (bin dch tnh) [*]
o modular (bin dch ng) [M]
o khng h tr [ ]
Cc la chn ging nh trn cng c th s dng i vi cc ch config v
xconfig.

Hnh2: make xconfig giao din mc trn cng:

111

Qun tr H thng Linux - C bn


Dch nhn

make dep
Khi cu hnh nhn xong, cn i chiu li cc chn la trong tt c cc th mc
con trong th mc m ngun ca nhn, bng cch dng lnh make dep. File
.depend cha ng dn ti cc header file nm trong th mc
/usr/src/linux/include, nhng file ny c sinh ra cng vi dep target.
make clean
Lnh make nhn ch th t Makefile v s to (build) nhng th cn thit. Nu
file no c ri th lnh make s s dng chng. C th l nhng file c m
rng l: *.o.
m bo mi la chn cu hnh trong .config c s dng to li cc file,
cn chy lnh make clean ( xa cc file *.o)
Ch : Bn khng cn chy lnh make clean giai on ny nu bn to th
mc ngun bng lnh make mrproper.

Sau hai lnh trn (vi nhng bn nhn 2.6 tr ln, mi dch ln u th khng cn
thit), nhn linux c bin dch bng mt trong hai lnh sau:

make zImage
make bzImage

Khi thc hin bin dch xong m khng c bt c li no, s c mt file tn l


vmlinux nm trong th mc /usr/src/linux/.
Hai lnh khc s to mt file b sung trong /usr/src/linux/arch/i386/boot gi l
zImage v bzImage. Hai lnh ny nn nhn bng gzip v bzip2. Xem mc ci
t mt nhn mi bit cch x l nhng file ny.

make modules
112

Qun tr H thng Linux - C bn


Dng bin dch cc modules
make modules_install
Lnh ny s copy cc modules vo cc th mc tng ng trong /lib/modules
Dy cc lnh c minh ha trong hnh 3:

Hnh 3 cc lnh bin dch nhn:

make dep
make clean
make bzImage
make modules
make modules_install

Ci t mt nhn mi

Nhn mi nm trong /usr/src/linux/arch/i386/boot/bzImage, ph thuc vo kin


trc my ca bn. File ny phi c copy vo th mc /boot, v t tn l
vmlinuz-<full-kernel-version>

/usr/src/linux/arch/i386/boot/bzImage /boot/vmlinuz-<full-kernel-version>

Tip theo chnh sa file /etc/lilo.conf hoc /boot/grub/grub.conf add nhn


mi c bin dch vo boot menu. Copy phn image ca nhn mi v a
vo cui file nh hnh minh ha:

Son tho file /etc/lilo.conf

113

Qun tr H thng Linux - C bn


Prompt
timeout=50
message=/boot/message

image=/boot/vmlinuz
label=linux
root=/dev/hda6

Existing section

read-only

image=/boot/vmlinuz-<full-kernel-version>
label=linux-new

Added section

root=/dev/hda6
read-only
----------snip-------------------------------

Bng k hiu cho cc th tc nhn khc nhau c th copy vo th mc /boot:

cp /usr/src/linux/System.map /boot/System.map-<full-kernel-version>

Phin bn nhn y
Trong mt h thng, phin bn ca nhn ang chy c th c in ra vi cu lnh
uname -r
Phin bn nhn ny cng c th c hin th trn cc terminal o nu tham s
la chn \k c s dng trong /etc/issue.

Khi to Ramdisks

Ramdisk c s dng h tr qu trnh khi ng np cc module truy cp


nhng block device cn thit (IDE, SCSI, RAID) cho vic truy cp phn vng
114

Qun tr H thng Linux - C bn


root ln u tin (dng ro). Ramdisk c to bng cch s dng lnh mkinitrd
vi hai tham s: tn file, v s hiu phin bn ca nhn.
Nu bn s dng ramdisk th bn phi thm dng initrd = line trong /etc/lilo.conf
V d:

mkinitrd /boot/initrd-$(uname -r).img $(uname -r)

La chn
Bn nn copy file /usr/src/linux/.config vo /boot/config-<full-kernel-version>

Chy li LILO
Cui cng LILO cn phi c chy li cp nht boot loader. Lc u LILO
c th chy ch kim th kim xem c li trong file cu hnh khng.

115

Qun tr H thng Linux - C bn

Thc hnh
Trc khi bt u lm nhng bi tp, bn hy kim tra trong th mc /usr/src,
nu c nhn ri th hy xa b v ch n lin kt mm ti th mc
/usr/src/linux
Bi 1: Dch li nhn linux theo cc bc sau y:
1. Download gi kernel-version mi nht t hai trang www.kernel.org v
www.redhat.com.

- Ci t 2 gi ny ra hai th mc khc nhau trong /usr/src, so snh s khc


nhau.

- Ln lt bin dch hai nhn theo cc ch dn trn v ci t vo h thng


nh nhng ty chn khi ng.

116

Qun tr H thng Linux - C bn

KHI NG LINUX
Tng quan
Hiu bit r hn v tin trnh khi ng s gip chng ta c th g ri khi gp
vn lin quan n phn cng v qun tr h thng.
u tin chng ta tp trung vo vai tr ca chng trnh khi ng v mi lin
quan gia chng trnh khi ng vi file cu hnh /etc/inittab.

Tm hiu cc mc thc thi (Runlevels)


Khng ging vi cc h iu hnh non-UNIX ch c hai ch c bn (on v
off). Cc h iu hnh UNIX, bao gm c Linux c nhiu mc thc thi khc
nhau v d nh mc duy tr (maitainance) hoc mc a ngi dng (multiuser), ... Cc mc thc thi c nh s t 0 n 6.
Danh sch 1: Cc mc thc thi Linux
Runlevel 0 tt my an ton, Runlevel 6 khi ng li my an ton
Runlevel 1 l ch n ngi dng
Runlevel 2 l ch a ngi dng, nhng khng khi ng NFS
Runlevel 3 l ch a ngi dng y
Runlevel 4 khng c nh ngha v thng khng s dng
Runlevel 5 ging vi runlevel 3 nhng chy trnh Qun l hin th ha

C init v telinit c dng chuyn i t mt ch thc thi ny sang


ch thc thi khc. Nn nh rng, init l chng trnh khi to u tin c
thc hin sau khi nhn h iu hnh c khi to ti thi im khi ng. PID
i vi init lun lun bng 1.
Danh sch 2: PID i vi init lun bng 1
[root@nasaspc /proc]# ps uax |grep init

117

Qun tr H thng Linux - C bn


USER

PID

%CPU

%MEM

VSZ

RSS

TTY

STAT

START TIME

COMMAND

root

0.0

0.2

1368

592

20:17 0:04

init [3]

Ti mi mc thc thi, h thng s dng hoc khi ng mt tp cc dch v nht


nh. Cc file qun l nhng dch v ny c lu gi trong /etc/rc/d/init.d. Th
mc ny cha gn nh tt c cc file qun l dch v m h thng c th chy.
Cc dch v khi chy c th c gi l daemon (dch v nn).

Danh sch 3: Danh sch cc dch v chnh trong /etc/rc.d/init.d/


ls /etc/rc.d/init.d/
anacron

cups

identd

kadmin

apmd

dhcpd

innd

krb5kdc

mcserv

Nscd

random

smb

xfs
xinetd

kdcrotate kudzu

named

Ntpd

rawdevices

snmpd

arpwatch functions ipchains

keytable

ldap

netfs

pcmcia

rhnsd

squid

atd

gpm

iptables

killall

linuxconf network portmp

rwhod

sshd

autofs

halt

irda

kprop

lpd

nfs

pgsql

sendmail

syslog

crond

httpd

isdn

Krb524

marsrv

nfslock

pppoe

single

tux

Ch : Cng c th dng hoc khi ng bng tay cc dch v daemon trong


/etc/rc.d/init.d bng cch a ra cc tham s tng ng. V d, nu bn mun
khi ng li dch v web mc nh, bn s phi g:

/etc/rc.d/init.d/httpd restart hoc service httpd restart

Khi lm vic vi cc mc thc thi, bn s cung cp mt tp cc chng trnh


c inh ngha trc nht nh dng chy. Nu bn mun mc thc thi 2
(runlevel 2), bn phi g

/sbin/init 2

118

Qun tr H thng Linux - C bn


n lt n s bt init c file cu hnh /etc/inittab tm ra iu g s xy ra
mc thc thi ny.

Trong trng hp ny (gi s chng ta ang chuyn i sang mc thc thi 2) cc


dng sau trong file inittab s c thc hin:

l2:wait:/etc/rc.d/rc 2

Nu bn tm kim trong file /etc/inittab cu lnh /etc/rc.d/rc N s khi ng


tt c cc dch v trong /etc/rc.d/rcN.d bt u vi S v s dng (stop) dch v
bt u vi K. Cc dch v ny l cc biu tng kt ni tr ti cc script trong
/ect/rc.d/init.d
Nu bn khng mun mt tin trnh thc hin trong mt mc thc thi N cho
trc, bn c th xo biu tng kt ni (symlink) trong /etc/rc.d/rN.d bt u
bi K.

inittab
Nh cp trn, chng ta hy xem file /etc/inittab
File s c cu trc nh sau:

id : runlevel : action : command

Hnh 3: file /etc/inittab


id:3:initdefault:
# System initialization.
si::sysinit:/etc/rc.d/rc.sysinit
l0:0:wait:/etc/rc.d/rc 0

119

Qun tr H thng Linux - C bn


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
-----------------------snip---------------------------------# Trap CTRL-ALT-DELETE
ca::ctrlaltdel:/sbin/shutdown -t3 -r now
-----------------------snip---------------------------------# 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


x:5:respawn:/etc/X11/prefdm nodaemon

Trng id c th l bt k. Nu mt mc thc thi c xc nh th cu lnh v


hnh ng c yu cu s ch c thc hin mc thc thi ny m thi. Nu
khng c s no c xc nh th cc dng lnh s c thc hin bt c mc
thc thi no.
File /etc/inittab:
Mc thc thi mc nh: mc ny c thit lp ti im bt u ca file vi id
v cng vic initdefault. Ch , khng c lnh no c a ra. Cu lnh ny
n gin ch cho init bit mc thc thi mc nh l g.
Chng trnh u tin c gi bi init: /etc/rc.d/rc.sysinit. Script ny s thit
lp cc mc inh ca h thng nh tham s PATH, xc nh nu mng c cho
php, tn my ch, ...

120

Qun tr H thng Linux - C bn


Cc dch v mc thc thi mc nh: Nu mc thc thi mc nh l 3 th ch c
dng l3 s c thc hin. Cng vic (action) s l ch, khng c chng
trnh no c thc thi cho n khi tt c cc dch v trong mc thc thi 3 c
chy.
Getty terminals: cc dng lnh vi id t 1n 6 thc thi cc thit b o (virtual
terminal). y l ni bn c th thay i s lng cc thit b o.
Mc thc thi 5: Dng cui cng trong inittab thc thi trnh qun l Xwindow
nu mc thc thi 5 c gn.

Ch :
1. Bn c th thit lp mt thit b modem nghe (listen) cc kt ni trong
inittab. Nu modem ca bn c kt ni ti /dev/ttyS1 th dng lnh sau
s cho php d liu kt ni (khng d liu fax) sau 2 hi chung:
S1:12345:respawn:/sbin/mgetty -D -x 2 /dev/ttyS1

2. Khi thay i /etc/inittab bn cn phi bt init c li file cu hnh ny.


iu ny c thc hin kh d dng bng cch:

/sbin/init q

GRUB - GRand Unified Bootloader


L chng trnh mi th h mi vi nhiu tnh nng mnh, GRUB hin nay l
ty chn mc nh trong nhiu bn phn phi Linux.

# grub.conf generated by anaconda


#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:

You have a /boot partition.

all kernel and initrd paths are relative to /boot/, eg.

121

This means that

Qun tr H thng Linux - C bn


#

root (hd0,0)

kernel /vmlinuz-version ro root=/dev/VolGroup01/LogVol00

initrd /initrd-version.img

boot=/dev/sda

default=1
timeout=0
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title Fedora Core (2.6.15-1.1833_FC4)
root (hd0,0)
kernel /vmlinuz-2.6.15-1.1833_FC4 ro root=/dev/VolGroup01/LogVol00
initrd /initrd-2.6.15-1.1833_FC4.img
title Fedora Core (2.6.15-1.1833_FC4smp)
root (hd0,0)
kernel /vmlinuz-2.6.15-1.1833_FC4smp ro root=/dev/VolGroup01/LogVol00
initrd /initrd-2.6.15-1.1833_FC4smp.img
title Fedora Core (2.6.11-1.1369_FC4smp)
root (hd0,0)
kernel /vmlinuz-2.6.11-1.1369_FC4smp ro root=/dev/VolGroup01/LogVol00
initrd /initrd-2.6.11-1.1369_FC4smp.img
title Fedora Core-up (2.6.11-1.1369_FC4)
root (hd0,0)
kernel /vmlinuz-2.6.11-1.1369_FC4 ro root=/dev/VolGroup01/LogVol00
initrd /initrd-2.6.11-1.1369_FC4.img

Vi GRUB, vic cp nht cc tham s khi ng khng qu phc tp nh LILO.


Ch cn sa li file /boot/grub/grub.conf v chp cc file cn thit vo /boot l
lp tc c hiu qu trong ln khi ng sau. File cu hnh ca GRUB cng c
nhiu la chn hn, cho php ngi dng c th s dng nhiu kch bn khi
ng khc nhau.
Cng nh LILO, GRUB cho php la chn nhiu kch bn khi khi ng, cng
nh cho php ngi dng chnh sa cc tham s khi ng ngay trc khi khi
ng. C th s dng mt khu ngn chn vic ny thng qua khai bo password
122

Qun tr H thng Linux - C bn


trong file cu hnh. Lnh grub-md5-crypt cung cp hm m ha md5 cho php
che du mt khu khi s dng.
Cc khai bo khc c th tham kho chi tit thng qua lnh info grub.
Trong qu trnh khi ng, tt c cc thng bo nhn h thng c mc nh ghi
li trong /var/log/dmesg. File ny c th c v in ra stdout vi tin ch
/bin/dmesg.
Trong qu trnh ci t hoc s dng, nu GRUB b hng, c th d dng sa
cha li bng lnh grub-install trong ch rescue.

T khi ng n bash
By gi chng ta s xem xt cc bc trong qu trnh khi ng h thng Linux.
Ramdisk c khi to v np vo b nh tht ti cc module cn thit.
Nhn h thng c ti t a cng (hoc CD) xc nh trong cu hnh ca
GRUB. Trong qu trnh ti ny th nhn s c gii nn.
Nhn h thng s gn (mount) phn vng root (/) theo dng ch c.
Lc ny cc chng trnh cn thit trong /bin v /sbin sn sng c truy cp.
Sau nhn h thng s ti init - tin trnh u tin.
init s c file /etc/inittab v thc hin theo cc ni dung ca n. C th l
rc.sysinit c chy.
Sau , tt c cc khai bo trong /etc/fstab c nh x (mount) v kim tra
(fsck).
Tip theo init s chuyn sang mc thc thi mc nh, cc dch v s c khi
ng. Dch v mc nh rc c u tin thp nht s thi hnh cui cng v gi
file /etc/rc.d/rc.local.
Du nhc ng nhp h thng c qun l bi gettys trong ttys.

123

Qun tr H thng Linux - C bn

Thc hnh
Hy xem li ton b ni dung ca phn trnh by trn v hon thnh cc bi tp
sau y:
-

Thay i mc thc thi mc nh ca h thng thnh 3 v 5.

Lm th no bn c th bit c mc thc thi hin ti?

Cho php t hp phm Ctrl + Alt + Del ch trong mc thc thi 3.

Thm mt du nhc ng nhp trong tty7.

Lm th no c th bt init c file cu hnh ca n?

S dng dmesg c thng tin chipset card mng ca bn.

So snh s khc nhau gia shutdown, halt v reboot.


Tham s la chn no ca shutdow s lm cho fsck ti ln khi ng tip
theo?

S dng cng c chkconfig hoc ntsysv tt (disable) chng trnh nn


sshd (sshd daemon) trong mc thc thi h thng 2, 3, 4 v 5.
m bo rng cc ng link k hiu (symbolic links) trong cc th mc
rc2.d, rc3.d, rc4.d v rc5.d thay i.

Khi ng li h thng. Ti du nhc khi ng nhp tham s init = tham


s b qua /sbin/init v khi ng mt tin trnh bash n gin.

124

Qun tr H thng Linux - C bn

QUN L NGI DNG V NHM


To ngi dng mi
Bc 1: To mt ti khon
Cu lnh /usr/sbin/useradd s thm ngi dng mi vo h thng v lnh
adduser thc cht cng tr ti cu lnh ny.
C php:
useradd [options] login-name

V d: thm mt ngi dng vi tn truy cp l rufu

useradd rufus

Cc gi tr mc nh s c s dng khi khng c tham s la chn no xc


nh. Ban c th lit k cc gi tr ny vi useradd D

Cc la chn mc nh c lit k vi useradd D


GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel

Ch rng thng tin ny cng nm trong file /etc/default/useradd


Bc 2: Kch hot ti khon vi mt khu mi
cho php mt ngi dng truy cp vo ti khon ca mnh, qun tr mng
phi thit lp mt mt khu cho ngi dng bng cng c passwd

125

Qun tr H thng Linux - C bn

C php:
passwd login-name

Cc bc trn dng to mt ngi dng mi. N cng nh ngha mt mi


trng ngi dng nh l th mc home directory v mt shell mc nh. Ngi
dng cng c th c gn cho mt nhm, v xc nh nhm mc nh ca mnh.

Lm vic vi nhm
Tt c ngi dng mi c gn vo mt nhm mc nh (hoc nhm chnh primary). Tn ti hai qui c.
Theo cch truyn thng, nhm chnh ny chung cho tt c ngi dng c gi
l nhm users vi ID ca nhm l (GID) 100. Mt s nh cung cp sn phm
Linux nh Suse v Debian cng tun th vi qui c ny.
Theo cch sp sp, nhm ngi dng ring (User Private Group - UPG) ny
c a ra bi RedHat v vic thay i qui c ny s khng lm thay i cch
thc lm vic nhm ca UNIX. Vi UPG, mi ngi dng mi s thuc v nhm
mc nh ca mnh. Nhm c cng tn vi tn ng nhp (mc nh) v GID s
nm trong phm vi t 500 n 60000 (ging vi UIDs).

Thnh vin trong nhm:


Mt ngi dng c th thuc v mt hoc nhiu nhm bt k. Tuy nhin, ti mt
thi im (v d khi to mt tp mi) th ch duy nht mt nhm l nhm c tc
ng.
Thng tin v danh sch tt c cc nhm m mt ngi dng thuc v c th c
lit k qua cu lnh groups hoc id.

V d i vi ngi dng root:

Lit k tt c ID:
126

Qun tr H thng Linux - C bn

id

uid=0(root) gid=0(root) groups=0(root), 1(bin), 2(daemon), 3(sys),


4(adm), 6(disk), 10(wheel), 600(sales)

Lit k tt c cc nhm:

groups

root bin daemon sys adm disk wheel sales

Chuyn nhm hin thi:


Lnh tham gia (chuyn) vo nhm s lm thay i nhm tc ng ca ngi
dng (users effective group) v bt u mt tin trnh mi m t ngi dng
c th thot ra khi nhm (logout). iu ny c th c thc hin qua cu lnh
newgrp.

V d: tham gia nhm sales

newgrp sales

Nu cu lnh groups c s dng th nhm u tin trong danh sch s chng


cn l root m l sales

To mt nhm mi
Cng c groupadd c s dng qun tr cc nhm. Cu lnh ny s thm
mt thc th vo file /etc/group
127

Qun tr H thng Linux - C bn

V d: to mt nhm devel

groupadd devel

Thm mt ngi dng vo mt nhm:


Cc cng vic qun tr c th c thc hin bng cng c gpasswd. C th
thm (-a) hoc g b (-d) ngi dng t mt nhm v gn mt ngi quan tr (A). Cng c ny ban u c thit k thit lp mt mt khu n vo mt
nhm, cho php tt c cc thnh vin trong cng mt nhm ng nhp vi cng
mt mt khu. V l do an ninh, tnh nng ny khng cn c s dng na.

V d: thm ngi dng rufus vo nhm devel

gpasswd -a rufus devel

File cu hnh
File /etc/passwd v /etc/shadow:
Tn ca tt c ngi dng trong h thng c lu gi trong file /etc/passwd c
cu trc nh sau:

1. Tn truy cp
2. Mt khu (hoc x nu s dng file shadow)
3. UID
4. GID
5. on text m t ngi dng
6. Th mc gc ca ngi dng
7. shell ca ngi dng
128

Qun tr H thng Linux - C bn

7 trng trn c ngn cch bi du hai chm nh c minh ho trong v d


sau y.
/etc/passwd entry with encrypted passwd:
george:$1$K05gMbOv$b7ryoKGTd2hDrW2sT.h:Dr G Micheal:/home/georges:/bin/bash

du mt khu m ho t ngi dng thng thng bn nn s dng file


shadow. File /etc/shadow s cha tn ngi dng v mt khu m ho v ch
c th c c bi ngi dng root.
Nu bn khng c file shadow trong /etc th bn c th s dng cu lnh sau y:

/usr/sbin/pwconv

(passwd -> shadow)

Cu lnh ny s b x trong trng th hai ca file /etc/passwd v to file


/etc/shadow. Nu bn khng mun s dng mt khu bng (shadow password),
bn c th lm nh sau:

/usr/sbin/pwunconv

(shadow -> passwd)

Ch : Khi s dng file mt khu bng (shadow password) /etc/passwd th c


th c c vi quyn (644) v file /etc/passwd phi c cm nhiu hn (600
hoc thm ch 400). Tuy nhin, khi s dng pwunconv th phi bo m thay i
quyn trn file /etc/password (600 hoc 400).

File /etc/group and gshadow:


Cng tng t nh trn, thng tin ca nhm c lu gi trong file /etc/group.
File ny c 4 trng c ngn cch nhau bi du hai chm.

1. Tn nhm
2. Mt khu nhm (hoc x nu file gshadow tn ti)
129

Qun tr H thng Linux - C bn


3. GID
4. Du phy ngn cch danh sch cc thnh vin

V d /etc/group entry:
java:x:550:jade, eric, rufus

Cng nh vi ngi dng, file /etc/gshadow cng c to khi s dng mt


khu bng nhm (shadow group passwords). Cc tin ch ny c s dng
chuyn i xui hoc ngc cc file shadow hoc non-shadow nh sau:

/usr/sbin/grpconv

creates the /etc/gshadow file

/usr/sbin/grpunconv

deletes the gshadow file

File /etc/login.defs v /etc/skel/


File /etc/login.defs cha cc thng tin sau y:
-

th mc mail (the mail spool directory):


MAIL_DIR

cc iu khin thi gian ca mt khu:


PASS_MAX_DAYS,
PASS_WARN_AGE

PASS_MIN_DAYS,

PASS_MAX_LEN,

gi tr max/min ca UID t ng la chn trong useradd:


UID_MIN, UID_MAX
gi tr max/min i vi la chn t ng GID trong groupadd:
GID_MIN, GID_MAX
t ng to mt th mc gc vi useradd:
130

Qun tr H thng Linux - C bn


CREATE_HOME
Th mc /etc/skel cha cc file mc nh v s c copy ti th mc gc ca
ngi dng mi c to: .bashrc, .bash_profiles, ..

Cc tham s la chn ca cu lnh


useradd (La chn)
-c

ghi ch (Tn y )

-d

ng dn ti th mc gc

-g

nhm khi to (GID). GID phi ang tn ti

-G

du phy ngn cch danh sch cc nhm b sung

-u

UID ca ngi dng

-s

shell mc nh ca ngi dng

-p

mt khu (m ho md5, s dng du !)

-e

ngy ht hn ca ti khon

-k

th mc skel

-n

tt nhm UPG

groupadd (La chn)


-g

gn mt GID

Sa thit lp mc nh v ti khon
Tt c cc la chn trong khi to mt ngi dng hoc nhm c th c thay
i. Tin ch usermod c mt s tham s la chn chnh sau:

usermod (tham s la chn)


131

Qun tr H thng Linux - C bn


-d

th mc ngi dng

-g

GID khi to ngi dng

-l

tn ng nhp ca ngi dng

-u

UID ca ngi dng

-s

shell mc nh

Ch : tt c cc tham s la chn trn cng ging i vi useradd.


Tng t nh vy, bn cng c th thay i chi tit v thng tin nhm vi tin
ch groupmod. C mt s tham s la chn chnh sau y:

groupmod (tham s la chn)


-g

GID

-n

tn nhm

Kho ti khon:
-

Mt ti khon ngi dng c th b kho bng cch thm vo mt du


chm than vo mt khu ngi dng. C th thc hin iu ny bng cc
cu lnh sau:
Kho

M kho

passwd l

passwd u

usermode L

usermod U

- Khi s dng shadow password, thay th x bi mt dy *


- Mt tham s la chn t hu ch l xo ton b mt khu vi cu lnh
passwd d

132

Qun tr H thng Linux - C bn

- Cui cng, c th gn /sbin/nologin hoc /bin/false cho shell mc


nh ca ngi dng trong /etc/passwd
Mc nh ban u, mt khu ngi dng c gi tr trong 99999 ngy, tng
ng vi 2739 nm (mc nh PASS_MAX_DAYS). Ngi dng c thng
bo trong vng 7 ngy rng mt khu ca bn s b ht hn (mc nh
PASS_WARN_AGE) vi dng thng bo sau mi khi ngi dng ng nhp vo
h thng:

C mt tham s thi gian ca mt khu khc c gi l PASS_MIN_DAY. y


l s ngy nh nht trc khi mt ngi dng c th thay i mt khu, gi tr
ny c thit lp mc nh ban u bng 0.

Cng c chage cho php qun tr h thng thay i cc tham s la chn trn:

Cch dng:

chage [ -l ] [ -m min_days ] [ -M max_days ] [ -W warn ]

[ -I inactive ] [ -E expire ] [ -d last_day ] user

Tham s -l u tin lit k gi tr ca policy hin thi ca mt ngi dng.


Chng ta ch cp n tham s la chn E. Tham s ny s kho mt ti
khon ngi dng ti thi im xc nh. nh dng ngy c th theo nh dng
ca UNIX hoc theo YYYY/MM/DD

Ch , tt c cc gi tr trn u c lu gi trong fiele /etc/shadow v c th


thay i trc tip.

Xo ti khon
Ti khon ngi dng c th c xo bi cu lnh userdel. m bo rng
th mc gc ca ngi dng cng c xo, ta s dng tham s la chn r.

133

Qun tr H thng Linux - C bn

userdel -r jade

Thc hnh

1. To ngi dng
S dng useradd to ngi dng c tn l tux vi ID ngi dng l 600
v ID nhm l 550.
S dng usermode thay i th mc gc ca ngi dng
C cn thit phi to mt th mc mi khng?
Ni dung ca /etc/skel c c copy sang th mc mi khng?
Cc ni dung trong th mc gc c vn c th c truy cp bi ngi
dng tux khng?
S dng usermode thm tux vo nhm wheel.
2. Lm vic vi nhm.
To mt nhm c tn l sales vi cu lnh groupadd.
Thm ngi dng tux vo nhm ny bng cu lnh gpasswd.
ng nhp vi tux v tham gia vo nhm sales vi newgrp.
3. File cu hnh.
Thm mt ngi dng vo h thng bng cch son tho /etc/passwd v
/etc/group.
To mt nhm c tn l share v thm ngi dng tux vo nhm ny bng
cch son tho bng tay /etc/group.
4. Thay i ti khon
Thay i tham s ngy ht hn ca ti khon ngi dng tux bng cch s
dng cu lnh usermod.
Kho ti khon ngi dng (S dng cc cng c hoc son tho file
/etc/shadow, ...)
134

Qun tr H thng Linux - C bn


Bo v ngi dng t ng nhp bng cch thay i shell mc nh ca ngi
dng thnh /bin/false.
Thay i tham s PASS_MAX_DAYS ca ngi dng tux thnh 1 trong file
/etc/shadow.
5. Thay i thit lp mc nh
S dng useadd D thay i cc thit lp mc nh ca h thng v do
tt c ngi dng mi s c gn trong /bin/sh thay v /bin/bash (ch : iu
ny s lm thay i file trong /etc/defaults/)
Son tho /etc/login.defs v thay i tham s mc nh PASS_MAX_DAYS
v do ngi dng mi s phi thay i mt khu ca mnh theo nh k 5
ngy.

135

Qun tr H thng Linux - C bn

CU HNH MNG
The Network Interface
Card mng phi c h tr t nhn ca h iu hnh. xc nh nhng card
mng no c th s dng c, bn c th truy vn thng tin qua cu lnh
dmesg, /proc/interrupts, /sbin/lsmod. hoc /etc/modules.conf
V d:
Dmesg

Linux Tulip driver version 0.9.14 (February 20, 2001)


PCI: Enabling device 00:0f.0 (0004 -> 0007)
PCI: Found IRQ 10 for device 00:0f.0
eth0: Lite-On 82c168 PNIC rev 32 at 0xf800, 00:A0:CC:D3:6E:0F, IRQ 10.
eth0:

MII transceiver #1 config 3000 status 7829 advertising 01e1.

cat /proc/interrupts

0:

8729602

XT-PIC

timer

1:

XT-PIC

keyboard

2:

XT-PIC

7:

XT-PIC

parport0

8:

XT-PIC

rtc

10:

622417

XT-PIC

eth0

11:

XT-PIC

usb-uhci

14:

143040

XT-PIC

ide0

136

cascade

Qun tr H thng Linux - C bn


15:

180

XT-PIC

ide1

/sbin/lsmod

Module
tulip

Size
37360

Used by

1 (autoclean)

T v d trn, chng ta thy rng Chipset ca card mng Ethernet l Tulip, a


ch i/o l 0xf800 v ngt (IRQ) l 10. Thng tin ny c th c s dng trong c
trng hp nu module sai c dng hoc cc ti nguyn (i/o hoc IRQ) khng
c.
Thng tin ny cng c s dng chn mt module vi mt a ch i/o khc
(s dng tin ch modprobe hoc insmod) hoc cng c th c ghi trong
/etc/modules.conf hoc /etc/modprobe.conf (s ghi cc thng s ci t trong
ln khi ng sau).

Thng tin my ch (Host Information)


Cc tp sau y c s dng lu tr cc thng tin mng.

/etc/resolv.conf cha danh sch cc my ch DNS

nameserver 192.168.1.108
nameserver 192.168.1.1
search linuxit.org

/etc/hosts cha a ch IP ca my tnh cng nh danh sch cc my ch


bit

# Do not remove the following line, or various programs

137

Qun tr H thng Linux - C bn


# that require network functionality will fail.
127.0.0.1

localhost

localhost.localdomain

# other hosts
192.168.1.108

mesa

192.168.1.119

pico

1.

mesa.domain.org

/etc/sysconfig/network xc nh nu mng phi c khi ng (c th


cha bin HOSTNAME)

NETWORKING=yes
HOSTNAME=mesa.domain.org
GATEWAY=192.168.1.1

2. /etc/sysconfig/network-scripts/ifcfg-eth0 Cc tham s thit lp cho eth0

DEVICE=eth0
BOOTPROTO=none
BROADCAST=192.168.1.255
IPADDR=192.168.1.108
NETWORK=192.168.1.0
ONBOOT=yes
USERCTL=no

Khi ng (Start) v dng (Stop) mng

138

Qun tr H thng Linux - C bn

T ch cu lnh

Cng c chnh c s dng hin th giao din mng l /sbin/ifconfig. u


tin khi to module nhn c gn cho eth0 trong /etc/modules.conf (v d
tulip.o) c load v sau gn gi tr a ch IP v mt n mng (netmask).

Kt qu l giao din c th c chuyn bt v tt m khng b mt cc thng tin


ny trong khi module nhn c thm vo.

V d: S dng ifconfig.
/sbin/ifconfig eth0 192.168.10.1 netmask 255.255.128.0
/sbin/ifconfig eth0 down
/sbin/ifconfig eth0 up

Mt cng c khc l /sbin/ifup. Tin ch ny c cc tp cu hnh h thng trong


/etc/sysconfig/network-script/ v gn cc gi tr c lu tr cho mt giao din
mng no . Script cho eth0 c gi l ifcfg-eth0 v c cu hnh. Nu
giao thc khi ng nh DHCP c nh ngha th ifup s khi ng giao din
mng vi giao thc ny.
V d: S dng ifup.

/sbin/ifup eth0
/sbin/ifup ppp0
/sbin/ifdown eth0

. S

dng network script

139

Qun tr H thng Linux - C bn


Ti

thi

im

khi

ng

card

Ethernet

khi

to

vi

/etc/rc.d/init.d/network script. Tt c cc file mng lin quan c cha trong


th mc /etc/sysconfig/.

Hn na script c th c cc la chn sysctl trong /etc/sysctl.conf, y l ni


m bn c th cu hnh h thng nh mt b nh tuyn (cho php a ch IP
chuyn trong nhn h iu hnh). V d dng lnh

net.ipv4.ip_forward = 1

cho

php

ch

IP

chuyn

(forwarding)

file

/proc/sys/net/ipv4/ip_forward s cha s 1

Network script c khi ng li vi cu lnh sau

/etc/rc.d/init.d/network restart

3. Phc hi li DHCP
Cc cng c sau y c th truy vn my ch DHCP cho mt a ch IP mi:
pump
dhcpclient
Mt daemon khch h tr DHCP c gi l dhcpcd (khng nhm ln vi
daemon my ch DHCP l dhcpd).

nh tuyn
Mt iu d nhn thy khc khi s dng ifup l bng nh tuyn ca h thng.
iu ny c th do file etc/sysconfig/network c c, trong khi default
140

Qun tr H thng Linux - C bn


gateway c lu tr, hoc my ch DHCP gi thng tin ny cng vi a ch
IP. Bng nh tuyn c cu hnh, kim tra v thay i vi cng c /sbin/route.
Cc vi d nh tuyn:
Thm mt tuyn tnh (static route) vo mng 10.0.0.0 qua thit b eth1 trong
s dng 192.168.1.108 lm gateway cho mng:

/sbin/route add -net 10.0.0.0 gw 192.168.1.108 dev eth1

Thm mt gateway mc nh (default gateway)

/sbin/route add default gw 192.168.1.1 eth0

Lit k bng nh tuyn nhn:

/sbin/route -n

Kernel IP routing table


Destination

Gateway

Genmask

Iface

192.168.1.0

0.0.0.0

255.255.255.0

eth0

10.1.8.0

192.168.1.108

255.0.0.0

eth1

127.0.0.0

0.0.0.0

255.0.0.0

lo

0.0.0.0

192.168.1.1

0.0.0.0

eth0

Gateway mc nh (Default Gateway):


Trong danh sch cui cng. Trng ch l mt danh sch cc mng. c bit,
0.0.0.0 c ngha l mi ni. Cn nh rng, tn ti 2 a ch IP trong trng
Gateway. Vy a ch no l default gateway?
141

Qun tr H thng Linux - C bn

trnh phi nhp bng tay cc tuyn tnh, cc daemon c bit gated hoc
routed c thc thi cp nht mt cch ng cc bng nh tuyn qua mt
mng.
Nu bn thuc v mng 192.168.10.0 v bn thm vo mt tuyn ti mng
192.168.1.0 th bn c th nhn c kt qu l cc my tnh trong mng va
thm vo l khng c (not responding) bi v khng c tuyn (route) c thit
lp t mng 192.168.1.0 ti my ch ca bn!! Vn ny c th c gii
quyt bng cch s dng nh tuyn ng (dynamic routing)

Cc tuyn tnh c nh
Nu bn c mt s mng vi nhiu hn mt gateway, bn c th s dng
/etc/sysconfig/static-routes (thay cho cc daemon nh tuyn). Cc tuyn ny s
c thm vo ti thi im khi ng bi network script.
Mt kch bn nh tuyn:

142

Qun tr H thng Linux - C bn

Cc cng c mng
Sau y l danh sch ngn cc cng c hu ch khi g ri cc kt ni mng:
143

Qun tr H thng Linux - C bn

ping host:

Cng c ny gi mt gi d liu ICMP ECHO_REQUEST ti mt my ch v


ch mt ICMP ECHO_RESPONSE.
Cc tham s la chn ca cng c ping:
-b

ping mt a ch broadcast

-c N

gi N gi tin

-q

Ch im lng: hin th ch cc gi tin u v cui

netstat:

Bn c th nhn c thng tin ca cc kt ni mng hin ti, bng nh tuyn


hoc cc thng k giao din mng ph thuc vo cc la chn sau c s dng:

Cc la chn ca netstat:
-r

ging nh /sbin/route

-I

hin th danh sch giao din mng (card mng)

-n

khng gii cc a ch mng IP

-p

tr v PID v tn ca cc chng trnh (ch s dng cho root)

-v

din gii di

-c

tip tc cp nht

V d: Kt qu ca netstart inet n:

Active Internet connections (w/o servers)


Proto Recv-Q Send-Q Local Address

tcp
ESTABLISHED

tcp
ESTABLISHED

0
0

Foreign Address

192.168.1.10:139
192.168.1.10:22

144

State

192.168.1.153:1992
192.168.1.138:1114

Qun tr H thng Linux - C bn


tcp

0 192.168.1.10:80

192.168.1.71:18858

TIME_WAIT

Trong danh sch trn bn c th thy my ch a phng (local host) thit


lp cc kt ni cng 139, 22 v 80.
arp:

Hin th b m gii a ch nhn.


V d:
arp

Address
192.168.1.71

HWtype
ether

HWaddress

Iface

00:04:C1:D7:CA:2D

eth0

traceroute:
Hin th tuyn (route) c ly t mt my ch a phng (local host) ti mt
my ch ch. Traceroute p ngay lp tc cc tuyn (routes) ti cc thng bo li
tr v (send back error message) (ICMP TIME_EXCEEDED) bng cch xem xt
thit lp gi tr tty (time to live) xung mc rt thp (too low).
Sau mi thng bo TIME_EXEEDED, traceroute tng gi tr ca tty, gi gi tin
tip theo i xa hn cho n khi ti c a ch ch ca n.

V d:
CMD:

/usr/sbin/traceroute -n
traceroute: Warning:
using 216.148.218.197

www.redhat.com

www.redhat.com

has

multiple

addresses;

traceroute to www.redhat.com (216.148.218.197), 30 hops max, 38


byte packets
1

192.168.1.1

0.440 ms

0.347 ms

0.341 ms

---- snip ---

145

Qun tr H thng Linux - C bn


14

12.122.2.145

112.116 ms

15

12.122.2.74

16

12.122.255.222

156.867 ms

156.641 ms

156.623 ms

17

216.148.209.66

159.982 ms

157.462 ms

158.537 ms

18

216.148.218.197

156.629 ms

110.908 ms
157.028 ms

157.395 ms

112.002 ms
156.857 ms

156.789 ms

156.080 ms

Cc la chn ca traceroute:
-f ttl

Thay i thi gian sng khi to v ttl thay v gi tr 1

-n

khng gii cc a ch IP

-v

din gii di

-w sec

thit lp thi gian ch ti cc gi tr v thnh sec

146

Qun tr H thng Linux - C bn

Thc hnh
1. Trong phn kch bn nh tuyn c trnh by trn a ra bng nh tuyn
i vi gateway ca mng LAN.
2. Khi ng giao din mng ca bn bng tay
ifconfig eth0 192.168.0.x

Lit k danh sch cc module nhn. m bo rng module eth0 c ti


(kim tra /etc/modules.conf).
3. Dng giao din mng vi:
(i) ifconfig eth0 down

Chc chn rng bn c th lu tr cc thng tin giao din mng ny m khng b


mt thng tin:
(ii) ifconfig eth0 up

4. Dng giao din mng v g b module nhn (rmmod module). iu g s xy


ra nu bn lp li bc 3 (ii)?
5. Chia lp thnh hai mng A (192.168.1.0) v B (10.0.0.0).
Th truy cp cc my qua cc mng
Chn mt my lm gateway (ti mt trong hai mng)
Ch trn my gateway! thc hin cc lnh sau:
-- cho php chuyn IP (allow IP forwarding):

echo 1 > /proc/sys/net/ipv4/ip_forward

-- a ra mt giao din mng c gn (s lm vic nh mt


giao din mng th hai).
Nu bn trong mng 192.168.1.0 th s thc hin cc lnh sau:
ifup eth0:1 10.0.0.x (trong x l mt a ch IP xc nh no

).

147

Qun tr H thng Linux - C bn


thm mt tuyn (route) ti mt mng mi v gn n s dng thit
b eth0:1
-- thm mt tuyn (route) ti mt mng khc bng cch s dng
mt my lm gateway (bn s cn bit thit lp eth0 hoc eth0:1 ca gw
ny ph thuc vo vic bn ang mng no)

148

Qun tr H thng Linux - C bn

MNG TCP/IP
S nh phn v Dotted Quad
S nh phn

10 = 2

100 = 2

101 = 2 + 1

111 = 100 + 010 + 001

iu ny cho thy mt s nh phn c th d dng chuyn sang s thp phn:


7

128

64

32

16

10000000

01000000

00100000

00010000

00001000

00000100

00000010

00000001

The Dotted Quad:


a ch IP c gn cho mt interface c gi l mt Dotted Quad. Trong
trng hp mt a ch Ipv.4, a ch l 4 bytes (4 ln 8 bits) phn cch nhau bi
cc du chm.

Decimal

Binary

192.168.1.1

11000000.10101000.00000001.00000001

a ch Broadcast, a ch mng v netmask


Mt a ch IP bao gm a ch ca host v a ch ca mng.
149

Qun tr H thng Linux - C bn


The Netmask
Netmask c dng qui nh s bit trong mt a ch IP c dng nh
a ch mng. Netmask hay cn gi l subnet mask.
V d netmask 16 v 17 bit:
255.255.0.0

16-bit

11111111.11111111.00000000.0

255.255.128.0

17-bit

11111111.11111111.10000000.0

a ch broadcast thng c sinh ra bi h thp phn.


V d: vi 16 bit netmask, cc IP sau nm trn cng mt mng
00100000
00100000

.
.

10000000

00000001

00000001

10000000

00000000

00000011

C ngha rng bt k mt bit no nm trong hnh ch nht (hnh v) (8+8 = 16


bits) s thay i a ch mng v cc host cn mt gateway kt ni chng vi
nhau.
Tng t, bt k bit no bn ngoi hnh ch nht (hnh v) s thay i a ch
ca host m khng lm thay i a ch mng.
V d: vi netmask 24 bit di y, 2 IP s nm trn 2 mng khc nhau:
00100000
00100000

.
.

10000000

00000001

00000001

10000000

00000000

00000011

a ch mng
Mi mt mng cn c mt s hiu, s hiu cn thit trong vic thit lp b dn
ng (routing). S hiu ca mng l c s nguyn(0-255) phn cch bi du
chm.

150

Qun tr H thng Linux - C bn


a ch Broadcast
a ch broadcast l mt min cc host/interface c th c truy cp trn mng
ging nhau. V d mt host c a ch broadcast l 10.1.255.255 s truy cp n
tt c cc my no c IP c dng 10.1.x.x. a ch broadcast in hnh
192.168.1.255.
Cc php ton logic c th p dng cho cc a ch broadcast, netmask, network.
ly a ch mng, ta lm ng tc n gin l thc hin php ton AND gia
a ch IP v netmask.
Network Address

IP

AND

Netmask

Tnh a ch broadcast bng cch: network address OR not MASK


Broadcast Address

Network

OR

not[Netmask]

AND v OR cc php ton logic trong mu nh phn ca cc a ch ny


V d:
a ch IP 192.168.3.5 vi net mask 255.255.255.0. Chng tac c th thc hin
cc php ton sau:
a ch mng

IP

AND

MASK

11000000. 10101000.00000011.00000101

(192.168.3.5)

11111111.11111111.11111111.00000000

(255.255.255.000)

AND

_____________________________________________
11000000.10101000.00000011.00000000

a ch Broadcast

IP

OR

(192.168.3.0)

NOT-MASK

11000000. 10101000.00000011.00000101

(192.168.3.5)

00000000.00000000.00000000.11111111

(000.000.000.255)

OR

151

Qun tr H thng Linux - C bn


_____________________________________________
11000000.10101000.00000011.11111111

(192.168.3.255)

T cc v d trn ta rt ra nhn xt. Mt a ch IP cng vi netmask xc


nh cc thng tin v mng v host .

Lp mng
a ch IP d phng
i vi cc mng ring bit, cc a ch IP c th khng bao gi c s dng
lm a ch IP trn internet. Cc a ch IP d phng ny thng thng ch c
s dng cho cc mng LAN.
Bng sau y s cho thy cc lp a ch ring/ d phng.

Bng1: a ch d phng
1

Class A

10.x.x.x

16

Class B

172.16.x.x -- 172.31.x.x

255

Class C

192.168.o.x

Lp a ch IP
Lp A:
8 bit dng nh a ch mng v 24 bit nh a ch host. Byte u tin d
phng cho a ch mng. V vy subnet mask mc nh s l 255.0.0.0.
Do 255.255.255 and 0.0.0 khng phi l a ch host nn c ti a 224 2 =
16777214 host trn mng. S IP c byte u tin nm trong min t 1 n 127,
tng ng vi s nh phn 00000001 -> 01111111. Hai bit u tin ca lp A c
th thit lp bng 00 hoc 01.

152

Qun tr H thng Linux - C bn


Lp B: a ch mng v host 16 bit
16 bit dng nh a ch mng v 16 dng nh a ch host trn
mng.Subnet mask mc nh l 255.255.0.0. C ti a 216-2 = 65 534 host trn
mt mng thuc lp B. Byte u tin c phm vi t 128 n 191. Tng ng vi
s nh phn l 10000000->10111111.

Hai bit u tin ca lp B lun thit lp l 10.


Lp C: a ch mng v host 24-bit
24 bit dng nh a ch mng v 8 bit dng nh a ch host trn mng.
Subnet mask mc nh l 255.255.255.0. C ti a 28 -2 = 254 host trn mt
mng thuc lp C. Byte u tin c gi tr t 192 n 223. Tng ng vi s nh
phn l 11000000 ->11011111. Nh vy 2 bit u tin ca lp C lun l 11.

Subnets
Subnet l khi nim phn chia mt mng thnh nhiu mng con bng cch dng
cc bit ca phn a ch host nh a ch mng.
V d netmask lp A l 255.0.0.0 c th c dng bin bit u tin ca byte
th 2 tr thnh bit nh a ch mng. Kt qu chng ta c 9 bit nh a chi
mng v 23 bit nh ch host trn mng.
Netmask c dng binary nh sau :
11111111.10000000.00000000.00000000 or 255.128.0.0
25-bit network
Netmask: 11111111.11111111.11111111.10000000 or 255.255.255.128

Do a ch mng Network = IP AND Netmask, t gi tr ca netmask, ta thy l


c th to c 2 mng con.
1. Cc a ch host nm trong min 192.168.1.0xxxxxxx thuc vo mng
192.168.1.0 network. S hiu ca mng l 0.
153

Qun tr H thng Linux - C bn


2. Cc a ch host nm trong min 192.168.1.1xxxxxxx thuc vo mng
192.168.1.128 network. S hiu ca mng l 128

Bng2: Trong c 2 trng hp, thay x byte bng 0 hoc 1, ta c cc a ch c


bit

Network address

Substitute with 1s

Substitute with 0s

Broadcast: 127

Network: 0

128

Broadcast: 255

Network: 128

S bit nh a ch host l 7 v tr i 2 gi tr c bit (tt c cc bit bng 0


hoc 1), chng ta c 27 2 = 126 trn mi mng v c tt c 252 host.
Nu chng ta dng subnet mask mc nh l 255.255.255.0 th chng ta c 254
a ch host.
Trong v d trn 192.168.1.127 l cc a ch c bit, do ch c 252 a ch
host c s dng.

26-bit network
Netmask: 11111111.11111111.11111111.11000000 or 255.255.255.192

To c 4 mng con, a ch ca mi mng c xc nh bng qui tc AND,


a ch ca cc host c xc nh nh sau:

1. a ch cc host nm trong min 192.168.1.00xxxxxx thuc vo mng


192.168.1.0 network.
2. a ch cc host nm trong min 192.168.1.01xxxxxx thuc v mng
192.168.1.64 network.
3. a ch cc host nm trong min 192.168.1.10xxxxxx thuc v mng
192.168.1.128 network.

154

Qun tr H thng Linux - C bn


4. a ch cc host nm trong min 192.168.1.11xxxxxx thuc v mng
192.168.1.192 network.

Thay th x bit trn bng 1 ta c a ch trn ta c cc a ch broadcast tng


ng:
192.168.1.63, 192.168.1.127, 192.168.1.191, 192.168.1.255

Mi mng con c 26 2 = 62 hosts v tng s c 62 x 4 = 248 host trn mng.

H giao thc TCP/IP

TCP/IP l mt b giao thc, c s dng trn mng Internet. Gi l h giao


thc v TCP/IP cha mt s giao thc, nhng giao thc ny dng truyn d
liu v chng trnh qua mng. Hai giao thc chnh trong h giao thc TCP/IP l
TCP (Transmission Control Protocol) v Ip (Internet Protocol).

Hiu mt cch n gin, giao thc IP ch x l cc gi tin v cc datagrams (gi


tin cha a ch n, kch thc) trong khi giao thc TCP x l vn kt
ni gia 2 my tnh. Cc giao thc kt hp vi nhau thc hin tc v c bit
ca mnh. Ti liu ny s trnh by cc tc v ca TCP/IP.

Hot ng ca cc giao thc din ra cc tng khc nhau trong tin trnh hot
ng ca mng.

Bng 1: M hnh 4 tng ca giao thc TCP/IP

Tn ng dng (Application) Mc ng dng(FTP,SMTP,SNMP)


Tng giao vn(Transport)

Kt ni cc my(TCP,UDP)

Tng internet(Internet)

Routing(Dn ng):IP,ICMP,IGMP,ARP
155

Qun tr H thng Linux - C bn


Tng truy cp mng()

Mc card mng, v d card Ethernet, token


ring

Tng quan v cc giao thc


IP

Giao thc IP lm nhim v truyn ti d liu cho giao thc


TCP , UDP v ICMP.IP cung cp dch v kt ni khng
tin cy (unreliable), c ngha l d liu truyn i khng
m bo c truyn n a ch cn gi. Giao thc IP cho
php tt c tnh ton vn ca d liu c x l bi mt
trong giao thc tng cao hn, v d nh giao thc TCP
hoc nhng thit b chuyn bit cho ng dng no . IP
c nhim v x l vn a ch v dn ng (routing)
gia cc mng. n v d liu s dng giao thc IP l
datagram.

TCP

Giao thc TCP(Transmission Control Protocol) cung cp


dch v kt ni tin cy. TCP c nhim v kim tra trn mi
host th t gi v nhn v kim tra v bo m rng mi
gi d liu (data packet) c truyn. V d cc ng
dng FTP hay telnet(ng dng ng nhp t xa) khng cn
156

Qun tr H thng Linux - C bn


phi x l vn mt d liu trong qu trnh truyn.
UDP

Giao thc UDP (User Datagram Protocol) cho php mt


chng trnh ng dng truy cp trc tip n IP, khng
ging nh TCP, UDP l giao thc khng lin kt v khng
tin cy.

ICMP

Giao thc ICMP(Internet Cntom Message Protocol) c


s dng bi cc thit b dn ng v cc host thoi di
trng thi ca mng. n v d liu s dng trong giao
thc ny l IP datagrams v ICMP l giao thc khng lin
kt.

PPP

Giao thc PPP(Point to Point) thit lp mt kt ni TCP/IP


thng qua ng in thoi. Ngoi ra n cn c s dng
bn trong cc kt ni c m ha nh pptp.

Cc dch v v cc cng trong TCP/IP


Danh sch cc dch v v cc cng ca n ni chung s tm thy trong
/etc/services. Danh sch cc dch v v cc cng tng ng vi cc dch v c
qun l bi IANA(Internet Assigned Numbers Authority).
Mi cng l mt s 16 bit, c tng s l 65535 cng. Cc cng t 1 n
1023 l cc cng c quyn, c ginh cho cc dch v chy bi ngi dng
root. Tt c cc ng dng bit s c phc v mt trng nhng cng ny.
Chng ta hy quan st kt qu ca dch v portscans(d tm cc cng). Nn nh
rng dch v ny l bt hp php, tuy nhin rt nhiu ngi dng dch v ny.
Di y l kt qu ca lnh qut cng:
Port

State

Service

21/tcp

open

ftp

22/tcp

open

ssh

23/tcp

open

telnet

25/tcp

open

smtp

157

Qun tr H thng Linux - C bn


70/tcp

open

gopher

79/tcp

open

finger

80/tcp

open

http

Dch v portscan cho bit cc cng ang m v phc v ng dng no


Cc cng chnh /etc/services:

ftp-data

20/tcp

ftp

21/tcp

telnet

23/tcp

smtp

25/tcp

domain

53/tcp

domain

53/udp

http

80/tcp

# www is used by some broken

www

80/tcp

# progs, http is more correct

pop-2

109/tcp

# PostOffice V.2

pop-3

110/tcp

# PostOffice V.3

sunrpc

111/tcp

sftp

115/tcp

uucp-path

117/tcp

nntp

119/tcp

ntp

123/tcp

netbios-ns

137/tcp

nbns

netbios-ns

137/udp

nbns

netbios-dgm

138/tcp

nbdgm

netbios-dgm

138/udp

nbdgm

netbios-ssn

139/tcp

nbssn

imap

143/tcp

NeWS

144/tcp

snmp

161/udp

snmp-trap

162/udp

mail

usenet

# Network News Transfer


# Network Time Protocol

# imap network mail protocol


news

158

# Window System

Qun tr H thng Linux - C bn

Thc hnh

Registering a service with xinetd


1. Vit mt bash script a ra mn hnh(stdout) dng Welcome. Lu li trong
/usr/sbin/hi
2. Trong th mc /etc/xinetd.d to mt file tn l fudge nh sau:
service fudge
{
socket_type

= stream

server

=/usr/sbin/hi

user

= root

wait

= no

disable

= no

3. Thm mt dch v tn l fudge trong /etc/services, dch v ny s dng cng


60000.
4. Khi ng li xinetd v dng dch v telnet n cng 60000.
5. Gi s bn c mt min IP trn mng 83.10.11.0/27
a. Bao nhiu mng c 4 byte u tin ging nh ca bn?
b. C bao nhiu my trn mng ca bn?
C bao nhiu a ch broadcast cho mng u tin ny?

159

Qun tr H thng Linux - C bn

CC DCH V MNG
Cc dch v mng c th chy ng thi hoc n l nh cc ng dng, chng
lm nhim v lng nghe (listen) cc kt ni v trc tip iu khin cc client
hoc chng cng c th c gi bi cc tin trnh nn mng (network daemon)
inetd hoc xinetd.

Tin trnh nn inetd (c)


Tin trnh nn ny s c thc hin ti thi im khi ng h thng v c
nhim v lng nghe (listen) cc kt ni ti cc cng (port) c xc nh trc.
iu ny cho php my ch ch chy mt tin trnh nn mng no (network
daemon) khi cn thit.
V d, dch v telnet c mt tin trnh nn /usr/sbin/in.telnetd s kim sot cc
tin trinhd telnet. lc no cng chy tin trnh nn ny inetd c ch nh
lng nghe cng 23. Ch nh ny c thit lp trong /etc/inetd.conf.

Hnh 1: Tin trnh nn inetd


160

Qun tr H thng Linux - C bn

Cc trng ca /etc/inetd.conf cha cc thng tin sau:


service-name

tn hp l t /etc/services

socket type

stream

protocol

giao thc hp l t /etc/protocols

flag

nowait

i vi

TCP

dgram

i vi

UDP

nu a tin trnh (multithreaded) v

wait

nu n tin trnh (single-threaded)


user/group

chy chng trnh nh user hoc group

program

tcpd

argument

tn ca chng trnh chy i vi dch v ny

thng thng

V d:
pop-3 stream tcp nowait root /usr/sbin/tcpd ipop3d

Ch : File /etc/services c s dng to s tng quan gia tn dch v v


s cng socket. Cc trng trong file services l:

service-name

port/protocol

[aliases]

Tin trnh nn xinetd


y l phin bn mi nht ca inetd. Tin trnh nn tcpd khng cn c s
dng na, do tt c mi th u c thc hin bi xinetd. Cu hnh ca
xinetd c thc hin qua mt file n /etc/xinetd.conf hoc bng cch son
tho cc file ring bit trong /etc/xinetd.d/ tng ng vi cc dch v s c
kim sot bit xinetd. Cng c th chuyn i t file cu hnh inetd c sang cc
file cu hnh ca xinetd hin thi.

161

Qun tr H thng Linux - C bn

Cu trc ca file service trong xinet.d


Service-name {
socket_type = stream i vi TCP v dgram i vi UDP
protocol = giao thc ph hp t /etc/protocols
wait = <yes hoc no>
user= ngi dng chy ng dng
group= nhm ca ngi dng chy ng dng
server= tn ca chng trnh chy ca dch v ny
}

TCP wrappers
Nu cc chng trnh c bin dch vi libwrap th chng c th c lit k
trong /etc/host.allow v /etc/host.deny. Th vin libwrap s xc nh nhng file
no tng ng vi hosts no.
nh dng mng nh i vi /etc/hosts.{allow,deny}:

DAEMON :

hosts [EXCEPT hosts ] [: spawn command]

Bn cng c th s dng nhng file ny ghi log cc dch v khng xc thc


(unauthorised services). y c xem nh s cnh bo sm ca h thng. Sau
y l mt s v d:

Truy vn thng tin v my ch (host):


4. /etc/hosts.allow
in.telnetd: LOCAL, .my.domain

5. /etc/hosts.deny
in.telnetd: ALL : spawn (/usr/sbin/safe_finger l @%h | mail root) &

162

Qun tr H thng Linux - C bn


Chuyn ti mt dch v gi (bogus service)
6. /etc/hosts.allow
in.telnetd:

ALL : twist

/dtk/Telnetd.pl

V d cui cng nm trong b cng c mo (Deception Tool kit) v c th


download ti a ch sau: http://all.net/dtk/download.html

Thit lp NFS
Thit lp pha my trm
i vi cc my trm Linux mun gn (mount) cc file h thng t xa (remote
file system):
1. file h thng nfs phi c h tr bi nhn
2. tin trnh nn portmapper phi ang c chy.
Tin trnh nn portmapper c khi ng bi script /etc/rc.d/init.d/portmap.
Tin ch mount s gn file h thng. Cc u vo thng thng trong /etc/fstab
s l:
nfs-server:/shared/dir

/mnt/nfs

nfs

defaults

0 0

Thit lp pha my ch
Mt my ch NFS cn phi chy portmap trc khi khi ng my ch nfs.
My ch nfs s c khi ng hoc dng vi script /etc/rc.d/init.d/nfs.
File cu hnh chnh l /etc/exports.
V d file /etc/exports:
/usr/local/docs *.local.org(rw, no_root_squash) *(ro)

Th mc c kt xut (export) ti tt c cc my ch (host) theo quyn ch c


(read-only) v c ghi (read write) ti tt c cc my ch (host) trng min
.local.org
163

Qun tr H thng Linux - C bn


Tham s la chn mc nh root_squash s ngn nga ngi dng root (root user
- uid = 0) trn my khch truy cp vo vng chia x trn my ch v c th c
thay i bi tham s la chn no_root_squash.
File /etc/exports s tng ng vi cc host nh *.machine.com trong khi
/etc/hosts.allow/deny tng ng vi cc host nh .machine.com
Nu file /etc/exports c thay i th tin ch exportfs s c chy. Nu cc
thc mc tn ti trong /etc/exports b thay i th n c th cn thit tho
(unmount) tt c cc chia s nfs trc khi chng c gn li (remount). Cc th
mc ring r c th c gn hoc tho (unmount) vi exportfs.
Kt xut v dng kt xut (unexporting) tt c th mc trong /etc/exports:

exportfs -ua ; exportfs a

SMB v NMB
Cc my Linux c th truy cp v cung cp cc ngun ti nguyn chia x ca
Window (th mc v my in). Giao thc c dng lm vic ny l MS
Windows Server Message Block SMB. Trong Linux cng c Samba thng
c s dng h tr cho phn mm khch v ch.

T ca s dng lnh
Tin ch smbclient c s dng lit k tt c ngun ti nguyn c chia x.
Cc th mc t xa (remote directories) thng thng c gn vi smbmount,
tuy nhin mount t smbfs cng c th c s dng.
V d:

164

Qun tr H thng Linux - C bn


Gi mt thng bo pop up ti mt my tnh win98desk

smbclient

-M win98desk

Gn mt th mc chia s ca my ch winserv

smbmount

//winserver/shared

/mnt/winserver/shared

My ch Samba c th c cu hnh vi file /etc/smb.conf v c khi ng


hoc dng vi script /etc/rc.d/init/d/smb. Ch smb s cng khi ng cc dch
v NBS. Khi thng bo NetBIOS (NetBIOS Message Block) sau y s cho
php gii tn (name resolution) trong Windows.
Hnh 1: Nautilus Browsing SMB shares::

Cc u vo chnh trong /etc/smb.conf:


[global]
workgroup = LINUXIT
os level = 2
kernel oplocks = No
security = user

165

Qun tr H thng Linux - C bn


encrypt passwords = Yes
guest account = nobody
map to guest = Bad User
[homes]
comment = Home Directories
read only = No
create mask = 0640
directory mask = 0750
browseable = No
[printers]
comment = All Printers
path = /var/tmp
create mask = 0600
printable = Yes
browseable = No

Cu hnh SWAT v Webmin GUI


Nu ci t gi swat th bn c th qun tr my ch samba qua nn web GUI ti
cng 901.
Mt cng c qun tr ph thng khc c s dng l webmin. Cng c ny c
th c ti v ti a ch www.webmin.com

CH

File cu hnh /etc/samba/smb.conf l mt ngun ti liu tt. Tt c cc tham s


la chn c m t v c th c chuyn thnh cu lnh bng cch xo du
ghi ch ;. C th xem trong trang hng dn smb.conf(5).

Cc dch v DNS

B phn gii a ch (Resolvers)

Khi mt chng trnh cn gii mt tn host th cn s dng mt c ch gi l b


gii (resolver). B gii u tin s tra cu file /etc/nsswitch (trc
/etc/host.conf) v xc nh phng thc no s c s dng gii cc tn host
(local file, name server, NIS hay ldap server).

166

Qun tr H thng Linux - C bn


File /etc/host.conf (hoc /etc/nsswitch.conf):
Cc file ny c qut bi b gii tn xc nh xem u l cc file, my ch
dns, c s d liu ldap hoc my ch nis s c tra cu.
V d (/etc/nsswitch):
hosts:

files dns nis

networks:

files

Dng u tin cho thy cc file ( y l /etc/hosts) s c truy vn u tin v


sau l my ch DNS nu n b li. Dng th hai ch dn s s dng file
/etc/networking cho thng tin v mng.
File /etc/hosts
Vi mt s nh cc my tnh c ni mng th c th chuyn i a ch IP
thnh tn bng cch s dng file /etc/hosts. Cc trng c th l:
IP

machine

machine.domain

alias

V d: file /etc/hosts
192.168.1.233

io

io.my.domain

61.20.187.42

callisto

callisto.physics.edu

File /etc/resolv.conf
Nu b gii cn s dng mt my ch tn min (DNS) th n s tra cu danh
sch cc my ch hin c ti file /etc/resolv.conf
Cu trc c cp bc
Cc my ch tn (Name servers) u c mt cu trc cp bc (hierachical
structure). Ph thuc vo v tr trong tn min iu kin y (fully qualified
domain name FQDM) m mt tn min c th c gi l mc top level,
mc th hai (second level) hoc mc th ba (third level).

V d i vi cc tn min cp 1 (top level)


167

Qun tr H thng Linux - C bn


com

Cc t chc thng mi

edu

Cc t chc gio dc M

gov

Cc t chc chnh ph M

mil

Cc t chc qun s M

net

Cc nh cung cp dch v v cng truy cp

org

Cc trang phi thng mi

uk

Cc trang thuc v nc Anh

Kiu ca My ch DNS
Cc tn min c th c chia nh hn thnh cc tn min con (subdomain).
iu ny s gii hn tng s thng tin cn qun tr trong mt min. Mi vng
(Zone) s c mt my ch tn min chnh (thng gi l primary DNS) v mt
hoc nhiu my ch tn min ph (thng gi li secondary). Vic qun tr my
ch tn gm c vic cp nht thng tin v mt vng c th. My ch chnh
thng c ra lnh cho vic xc thc.
File cu hnh DNS
Trong phin bn BIND c (trc phin bn BIND 8) file cu hnh l
/etc/named.boot. Vi BIND phin bn 8, file /etc/named.conf c thay th.
Bn c th d dng tin ch named-bootconf.pl chuyn i t file cu hnh c
sang file cu hnh mi.
File /etc/named.boot:
directory
cache

/var/named
.

named.ca

primary myco.org

named.myco

primary 0.0.127.in-addr.arp

named.local

primary 1.168.192.in-addr.arp

named.rev

Dng u tin nh ngha th mc c s c s dng. File name.ca s cha


danh sch cc a ch IP DNS cho vic truy vn cc a ch m rng. Dng th ba
l tham s la chn v cha cc bn ghi cho mng ni b. Hai tham s tip theo
c s dng cho tm kim ngc li (reverse lookup).
168

Qun tr H thng Linux - C bn


Trong /etc/named.conf
cache

c thay th bi hint

secondary

c thay th bi slave

primary

c thay th bi master.

p dng cc thay i ny i vi file cu hnh BIND4 s sinh ra cc file cu hnh


BIND8 v BIND9 nh sau.
File /etc/named.conf:
options {
directory /var/named;
};

zone

{
type hint;
file named.ca;

};

zone myco.org

type master;
file named.myco;
};

zone 1.168.192.in-addr.arp {
type master;
file named.rev;
};

zone 0.0.127.in-addr.arpa {
type master;
file named.local;
};

169

Qun tr H thng Linux - C bn

File vng DNS

Trong v d ny my ch c thit lp nh mt my ch ch by (catching-only


server). Tt c cc file vng (zone file) u cha cc bn ghi ti nguyn.
V d file named.local zone file:
@

IN

SOA

localhost. root.localhost. (
2001022700 ; Serial

IN

NS

IN

PTR

28800

; Refresh

14400

; Retry

3600000

; Expire

86400 )

; Minimum

localhost.
localhost.

y l mt file vng rt n gin nhng n cung cp y cc thng tin


gip ta hiu c c ch c bn ca mt my ch tn.
K hiu @ s gii (tham chiu) ti mt vng lin quan c khai bo trong
/etc/named.conf. iu ny cho php bt k file vng no cng c th s dng
nh l mt template cho cc vng khc (xem bi tp).

Bng 1: Kiu bn ghi thng thng


NS

Xc nh cc vng ca my ch tn min chnh

PTR

Tham chiu ngc a ch IP ti tn my host

MX

Bn ghi th in t Mail Exchange

Tng ng mt a ch IP vi mt my host

CNAME

Tng ng mt tn gn (alias) vi mt tn chnh ca my


host

Bng 2: Cc tham s vng

170

Qun tr H thng Linux - C bn


@

IN

SOA

Start Of Authority. Xc nh mt vng c cho php bi


cc tham s la chn nm trong du ngoc kp

serial

Gi tr c tng bng tay khi d liu thay i. Cc my


ch ph (secondary servers) s truy vn s hiu (serial
number) ca my ch chnh. Nu n thay i, ton b file
vng s c ti v (downloaded)

refresh

Thi gian c tnh bng giy trc khi my ch ph truy


vn bn ghi SOA ca tn min chnh (primary domain).
Gi tr ca n nh nht l mt ngy.

retry

Khong thi gian tnh bng giy trc khi mt vng mi


c chuyn (transfer) nu vic download trc li.

expire

Thi gian sau khi my ch ph loi b tt c d liu vng


nu n lin h vi my ch chnh. Gi th ca tham s ny
thng thng t nht l 1 tun

minimum

y l ttl i vi cc d liu c cached. Gi tr mc


nh l 1 ngy (86400 giy) nhng cng c th lu hn i
vi cc mng LAN n nh

Cu hnh Sendmail
Sendmail l dch v chuyn mail (MTA) ph bin nht trn internet. N s dng
giao thc Simple Mail Transfer Protocol (SMTP) v chy nh mt tin trnh nn
lng nghe cc kt ni ti cng 25.
Script Sendmail c dng dng hoc chy tin trnh nn sendmail thng
thng c t ti th mc /etc/rc.d/init.d/. Cu hnh chnh ca file l
/etc/mail/sendmail.cf (hoc /etc/sendmail.cf) Ti y bn c th xc nh tn
ca my ch cng nh tn ca cc host m t v mail relay c cho
php.
File /etc/aliases cha hai trng sau y:
alias: user

Khi chuyn ti /etc/aliases, cu lnh newaliases phi c chy rebuild c s


d liu /etc/aliases.db.
171

Qun tr H thng Linux - C bn


Khi th c my ch chp nhn, n s c mc vo mt file n vi tn do
ngi dng t. Cc file ny c lu tr ti /var/spool/mail. Ph thuc vo
Mail User Agent c s dng, ngi dng c th lu tr cc thng ip
(message) trong th mc gc ca mnh hoc c th download chng v mt my
khc.
Nu my ch ang chuyn tip (relaying), hoc nu mng chm v nhiu
message ang c chuyn, th s c lu tr trong hng i th
/var/spool/mqueue. Bn c th truy vn vi tin ch mailq hoc sendmail bp.
Qun tr mng c th flush hng i ca my ch vi cu lnh sendmail q.
Cui cng, ng k mt tn min nh mt a ch email hp l, mt bn ghi
MX cn c thm vo trong c s d liu DNS.
V d nu mail.company.com l mt my ch mail, n chp nhn mail nh
joe@company.com th bn s phi cu hnh nh sau

1. Thm company.com vo /etc/mail/local-host-names


2. company.com MX

10

mail.company.com trong mt file vng DNS

My ch Apaches
File cu hnh
File /etc/httpd/conf/httpd.conf cha tt c cc tham s thit lp cu hnh
Cc phin bn trc ca apache c thm hai file ngoi, mt l access.conf trong
s gii hn cc th mc c khai bo v mt file khc l srm.conf xc
nh th mc gc (rot) ca my ch.
Cc cu hnh cn ch :
ServerType standalone/inetd
ServerRoot /etc/httpd
DocumentRoot
/var/www/html
<Directory /var/www/cgi-bin>
AllowOverride None
Options ExecCGI
Order allow,deny
Allow from all
</Directory>

172

Qun tr H thng Linux - C bn


<VirtualHost
122.234.32.12>
DocumentRoot
/www/docs/server1
ServerName virtual.mydomain.org
</VirtualHost>

Chy Apache
chy v dng my ch, u tin bn c th s dng script
/etc/rc.d/init.d/httpd. Trn mt my ch bn (busy server) th nn s dng
apachectl c bit vi la chn graceful s khi ng li my ch chi khi cc
kt ni hin ti c tho thun.
Cc file nht k chnh c lu trong /var/log/httpd/. Cc file ny c th rt hu
ch trong cc l do an ninh. Thng thng chng ta kim tra file error_log v
access_log.

173

Qun tr H thng Linux - C bn

Thc hnh
Ci t mt my ch DNS chnh
Nh l mt bi tp, chng ta s ci t gi BIN9 rpm bind9-9.1.3-252.i386.rpm
v cu hnh mt domain c tn l gogo.com.
1. Tin hnh ln lt cc bc sau trong /etc/named.conf:
Copy/Paste cc on sau v sa li nh sau

2. Trong /var/named:
cp 127.0.0.zone

192.168.2.zone

cp local.zone gogo.zone

3. Thay i cc trng tng ng trong file vng mi (zone file). Thm mt host
c tn l harissa.
4. Thm dng nameserver 127.0.0.1 vo /etc/resolv.conf.
5. S dng host gii harissa.gogo.com
Qun tr Apache
Cc cu hnh c bn trong file /etc/httpd/conf/httpd.conf
1. Thay i Port t 80 thnh 8080.
2. Kim tra rng apache tr li vi cu lnh telnet localhost 8080. Bn s nhn
c:
Trying 127.0.0.1...
Connected to localhost.linuxit.org.

174

Qun tr H thng Linux - C bn


Escape character is '^]'.

Tip theo g GET / download file index .

3. Thit lp StartServer thnh 15. Khi ng li httpd v kim tra rng 15


tin trnh s c chy (thay v 8 tin trnh nh mc nh)
IP based virtual server
Card mng ethernet ca bn phi nh danh ti mt a ch IP mi (gi l newIP)
ifconfig eth0:0 new-IP

Thm cc on sau y vo /etc/httpd/conf/httpd.conf:


<VirtualHost new-IP>
DocumentRoot /var/www/html/virtual
ServerName www1
</VirtualHost>

Ci t mt th mc chia x SMB (shared SMB directory)


Trong hu ht cc trng hp bn s khng cn thm ngi dng smb
(smbusers) vo h thng. n gin ch cn son tho file smb.conf v thm nh
sau:
[public]
comment = Example Shared Directory
path = /home/samba
guest ok = yes
writeable = yes

Ci t mt my in chia s:
[global]
--- snip --printcap name = /etc/printcap
load printers = yes
[printers]
comment = All Printers
path = /var/spool/samba
browseable = no
# Set public = yes to allow user 'guest account' to print

175

Qun tr H thng Linux - C bn


guest ok = yes
writable = no
printable = yes

176

Qun tr H thng Linux - C bn

BASH SCRIPTING
Mi trng bash
Bin
Khi bn g cu lnh ti du nhc ca chng trnh bash shell th n s s dng
bin PATH tm xem bng thc hin (executable) no trong h thng m bn
cn chy. Bn c th kim tra gi tr ca bin path bng cch s dng lnh echo:
echo $PATH
/usr/bin:/bin:/usr/sbin:/usr/X11R6/bin:/usr/local/bin:/sbin/:/usr/loca
l/sbin/

Thc t, c rt nhiu bin cn thit i vi shell cung cp i vi mi mi


trng ngi dng. V d cc bin PWD, HOME, TERM v DISPLAY.
C php khi to v khai bo mt bin nh sau:
VARIABLE=VALUE

Ch rng khng c t bt k du cch no xung quanh du =. Khi mt


bin c khai bo v khi to, n s c th c tham chiu bng cch s dng
k t dolla ng trc nh v d sau y:
echo $VARIABLE

Khi mt phin shell c bt u, mt s cc tp cu hnh c c v hu ht


cc bin c thit lp.
gii phng mt bin khi gi tr hin thi, s dng unset.

Cc file cu hnh
177

Qun tr H thng Linux - C bn

u tin c th phn bit cc file cu hnh xem file no s c c i vi mi


phin bash mi.

File cu hnh Login:


Cc file c c khi login l /etc/profile v ~/.bash_profile (bash s tm mt
s file khc nh ~/.profile).
Tip theo bash s c cc file iu khin thi gian ca n ~/.bashrc v (nu tn
ti) /etc/bashrc.
Cc File bashrc:
Cc file ny c c mi ln khi mt phin shell c khi chy (v d mt
xterm mi). Cc file ny l /etc/bashrc v ~/.bashrc.
Cc nh danh (alias) v cc function c th c ghi trong ~/.bashrc
C php Function:
function-name ()
{
command1;
command2;
}

Bn c th kim tra xem nhng file no s c c bng cch thm mt dng


echo Profile trong /etc/profile, kiu:

bash

Khng profile no c c, bn khng thy g ht

bash -login

S bt bash ng vai tr nh mt login bash, t


Profile s c hin th.

Cc cu lnh sau y s iu khin cch thc m bash bt u:


bash -norc
bash -noprofile

178

Qun tr H thng Linux - C bn

Ch bt k phin bash mi no cng s k tha cc bin ca cha c khai


bo trong /etc/profile v ~/.bash_profile.

Cc yu t Scripting
File script
Script shell l mt danh sch cc ch dn c lu tr trong mt tp phng (flat
file). Ch c hai ch dn sau l cn thit.
1. Dng u tin ca script phi l #!/bin/bash (i vi script bash)
2. File phi c c th c v chy c (v d i vi quyn 755)

Nu cc dng ny khng hin hu th cng c th chy chng trnh script bng


ccg g:
bash program-name

Truyn bin vo script (Passing variables to the script)


Cc bin c to ti cc dng lnh c tham chiu bn trong script nh $1 i
vi i s u tin, $2 cho i s th hai, vv
V d script, mycat:
#!/bin/bash
cat $1

Script ny i hi mt i s l mt file v s hin th ni dung ca file bng


cch s dng cat. chy script ny trong file lilo.conf, bn s chy:
./mycat /etc/lilo.conf

179

Qun tr H thng Linux - C bn


Mt cch khc chuyn cc bin vo script l t du nhc script cho ngi
dng nhp u vo. Cch ny c th thc hin bng cch s dng cu lnh read.
Tn mc nh ca bin c c l REPLY. Sau y l mt script c thay
i:
Chuyn bin tng tc:
#!/bin/bash
echo -n "Which file shall I display ?"
read
cat $REPLY

hoc
read -p File to display: FILENAME
cat $FILENAME

Cc bin c bit
Cc bin c bit ch c th c tham chiu v c t ng thit lp bi bash.
Sau y l mt s bin c bit thng dng nht:
$*

Lit k tt cc cc bin c nhp ti dng lnh

$#

S lng cc i s c nhp ti dng lnh

$0

Tn ca script

$!

PID ca cu lnh nn gn nht

$$

PID ca shell hin ti

$?

M thot ca dng lnh cui cng

i vi cc tham s v tr $1, $2 vv php ton dch chuyn shift s t li tn


mi tham s mt cch tun hon theo cch sau.
$2 s thnh $1
$3 s thnh $2 vv
C th tng qut li nh sau $(n+1) $n
180

Qun tr H thng Linux - C bn

Tnh ton logic


Cc biu thc logic c c lng vi cu lnh test hoc du [ ]. Trong c hai
trng hp ny, kt qu u c lu tr trong bin $? nh:

if biu thc true then

$? l 0

if biu thc false then

$? Khng l 0

Sau y l mt s v d minh ho:


s dng test

S dng [ ]

gii ngha

Test f /bin/bash

[ -f /bin/bash ]

test nu /bin/bash l mt file

test -x /etc/passwd

[ -x /bin/passwd ]

test nu /etc/passwd l mt tp thi hnh

Cng c th c lng nhiu hn mt biu thc ti cng mt thi im bng


cch s dng cc php ton logic || (OR) v && (AND) trong mt dng lnh. V
d chng ta c th test nu /bin/bash l mt tp thc thi v tn ti trong
/etc/inittab:

test -x /bin/bash && test /etc/inittab


[ -e /bin/kbash ] || [ -f /etc/passwd ]

Cng tng t nh vy khi s dng c -o and -a trong php ton test

test -x /bin/bash -a -f /etc/inittab


[ -e /bin/kbash -o -f /etc/passwd ]

181

Qun tr H thng Linux - C bn

Vng lp
if then loop
C php:

if CONDITION ; then
command1
command2
fi

#!/bin/bash
if [ -x /bin/bash ] ; then
echo The file /bin/bash is executable

fi

182

Qun tr H thng Linux - C bn


if then else
C php:

if CONDITION ; then
command1
command2
else
command3
fi

vng lp while
C php:

while CONDITION is true; do


command
done

V d: Aligne 10 hashes (#) then exit


#!/bin/bash
COUNTER=0
while [ $COUNTER -lt 100 ]; do
echo -n "#"
sleep 1
let COUNTER=COUNTER+1
done

Vng lp Until
C php:

until CONDITION is false; do


command
done

V d: Ging nh trn, kiu C tng i vi mi COUNTER


#!/bin/bash
COUNTER=20
until [ $COUNTER -lt 10 ]; do
echo -n "#"
sleep 1

183

Qun tr H thng Linux - C bn


let COUNTER-=1
done

Vng lp for
C php

for VARIABLE in SET; do


command
done

V d: tp 'SET' c th l cc dng ca mt file


#!/bin/bash
for line in `cat /etc/lilo.conf`; do
IMAGE=$(echo $line | grep image)
if [ $IMAGE != ]; then
echo Kernel configured to boot: $line
fi
done

Nhp d liu t dng lnh


Gi s rng script i ngi dng nhp gi tr u vo, ph thuc vo kt qu tr
li, phn cn li ca chng trnh s thc hin mt s vic mt cch ph hp. C
hai cch thc hin iu ny l: select v case.
S dng case
C php:

case $VARIABLE in
CHOICE command ;;
CHOICE command ;;
esac

S dng select
C php:

select VARIABLE in SET; do


if [ $VARIABLE = CHOICE ]; then
command
fi
if [ $VARIABLE = CHOICE ]; then

184

Qun tr H thng Linux - C bn


command
fi
done

Lm vic vi s
Trong khi cc x l cc chui k t mt cch lin mch, mt c gng nh khc l
thc hin mt s php ton s hc ht sc c bn.
Cc php ton nh phn
Cng hoc nhn cc s c th c thc hin bng cc s dng c biu thc expr
hoc cu trc $(( ))s.
V d:
expr 7 + 3; expr 2 \* 10; expr 40 / 4; expr 30 11
$((7+3)); $((2*10)); $((40/4)); $((30-11))

Cc gi tr so snh
Cc php ton kim tra:
S

Xu

-lt

<

-gt

>

-le

<=

-ge

>=

-eq

-ne

!=

Thc hnh

1. Trn dng lnh xut bin TEST

185

Qun tr H thng Linux - C bn


export TEST=old

2. Vit mt script
#!/bin/bash
echo old variable: $TEST
export $TEST=new
echo exported variable: $TEST

3. Gi tr ca $TEST l g khi script c chy?


4. Trong script sau gi test_shell s in PID ca shell
test_shell
#!/bin/bash
if [ -n $(echo $0 |grep test) ]; then
echo The PID of the interpreter is: $$
else
echo The PID of the interpreter is: $$
fi

5) Thit lp quyn 755 v kim tra cc cu lnh sau


test_shell
./test_shell
bash test_shell
. test_shell
source test_shell
exec ./test_shell

186

Qun tr H thng Linux - C bn

BO MT
Bo mt a phng
The BIOS
Nu mt ngi no y tm cch truy nhp cc a c bo mt hoc mt a
linux bng cch khi ng t a mm hoc CD ROM th s rt d dng c th
c v truy cp ti by k file no ca h thng. trnh c iu ny BIOS s
c thit lp thit lp ch cho php khi ng t a cng. Khi iu ny c
thc hin thnh cng n s thit lp mt mt khu trong BIOS.

LILO
LILO c th a ra cc tham s la chn khi khi ng. Thng thng mt s h
iu hnh Linux s khng hi mt khu khi khi ng h thng trong ch
single user hoc mc thc thi runlevel 1.
C hai tham s la chn s c thm vo trong /etc/lilo.conf:
Tham s restricted s nhc ngi dng nhp mt khu
Tham s password="", thit lp xu mt khu

Cm c ngha l LILO khng th a ra bt k tham bin no khi "password"


khng xc nh trong lilo.conf.
Boot=/dev/had
install=/boot/boot.b
Prompt
timeout=50
Password="password"
restricted

Quyn truy cp file


bo v khi nhng tn cng ph hu file. xut thc hin cc bc sau.

187

Qun tr H thng Linux - C bn


1) To cc cng c h thng khng th thay i c, hoc cc file nht k ch
thm vo cui (append-only):
chattr +i /bin/login
chattr +i /bin/ps
chattr +a /var/log/messages

2) To th mc /tmp v /home nosuid hoc noexec:


Lines to be changed in /etc/fstab
/tmp

/tmp

ext2

nosuid

12

/home

/home

ext2

noexec

12

3) Tm tt c file trong h thng khng thuc v mt ngi dng hoc nhm


ngi dng no :
find / -nouser o nogroup
find / -perm +4000

File nht k (Log file)


Cc file log chnh l
/var/log/messages : cha cc thng tin ng nhp bi chng trnh nn syslogd
/var/log/secure. : cha thng tin nhng ln ng nhp khng thnh cng, thng
tin v thm ngi s dng, vv
Cng c last s lit k tt c nhng ln ng nhp v khi ng h thng thnh
cng. Cc thng tin c c t file /var/log/wtmp.
Cng c who v w lit k tt c ngi dng hin ti ang ng nhp vo h
thng bng ccg s dng file /var/run/utmp.

Gii hn ngi dng


188

Qun tr H thng Linux - C bn


Khi file /etc/nologin tn ti (c th rng) th n s bo v tt c ngi dng t
khi ng nhp vo h thng (ngoi tr ngi dng root). Nu file nologin cha
mt thng bo th n s c hin th sau khi vic xc thc ngi dng thnh
cng.
Th mc /etc/security/ s l mt tp cc file m cho php ngi qun tr gii hn
thi gian CPU ngi dng, ln ti a file, s lng kt ni ti a, vv
/etc/security/access.conf : khng cho php ng nhp i vi cc nhm v ngi
dng t mt v tr xc nh.
/etc/security/limits.conf
nh dng ca file ny l
<domain>

<type> <item> <value>

domain tn ngi dng, tn nhm (vi @group)


type

cng hoc mm (hard or soft)

item

core

- gii hn kch thc li ca file (KB)

data

- kch thc d liu ti a (KB)

fsize

- kch thc ti a ca file (KB)

memlock

- khng gian a ch kho b nh (locked-in-memory) ti a

nofile

- s lng ti a file c m

cpu

- thi gian CPU ln nht (MIN)

proc

- s lng ti a cc tin trnh

as

- gii hn khng gian a ch

maxlogins

- s lng ti a cc ng nhp ng thi ca ngi dng ny

priority -

- u tin chy tin trnh ngi dng

locks

- s lng ti a kho file m ngi dng c th

(KB)

189

Qun tr H thng Linux - C bn

An ninh mng
Bo mt mng c th c chia ra thnh hai mc chnh nh sau:

Bo mt theo my ch (Host Based Security)


Quyn truy cp vo cc ngun ti nguyn c th c cho php da vo yu cu
dch v ca Host. iu ny c thc hin bi tcp_wrappers. Th vin libwrap
cng ng vai tr nh tcp_wrappers cung cp danh sch truy cp kim sot host
i vi cc dch v mng khc nhau. Mt s dch v nh xinetd, sshd, v
portmap, c bin dch da vo th vin libwrap do c kch hot
tcp_wrapper h tr cho cc dch v ny.
Khi mt client kt ni ti mt dch v vi h tr tcp_wrapper, file
/etc/hosts.allow v /etc/hosts.deny c phn tch (parse) kch thch yu cu
dch v host. Da vo kt qu m dch v c th c cho php hoc khng.
File hosts_access c 2 hoc 3 (la chn) du hai chm ngn cch cc trng.
Trng u tin l tn ca tin trnh, tip theo l tn host hoc domain b hn ch
hon ton vi mt du chm u ("leading dot"), a ch IP hoc subnet vi
du chm sau. Cc t i din nh ALL v EXCEPT cng c chp nhn.
C php ca file /etc/hosts.{allow | deny} nh sau:
service :

hosts [EXCEPT] hosts

V d:
/etc/hosts.deny
ALL:

ALL

EXCEPT

.example.com

/etc/hosts.allow
ALL:

LOCAL 192.168.0.

in.ftpd:

ALL

sshd:

.example.com

Tcp_wrappers c th chy mt lnh cc b da vao host tng ng vi cc file


host_access.
190

Qun tr H thng Linux - C bn

Cng vic c hon thnh vi lnh spawn. Bng cch s dng k t %, vic
thay th c th c s dng i vi tn ca host v tn dch v.
V d:
/etc/hosts.deny
ALL:

ALL : spawn (/bin/echo `date` from %c for %d >> /var/log/tcpwrap.log)

bit thm cc thng tin v k t thay th %, xem trang tr gip host_access


(5) bng lnh man.
Bo mt theo cng (Port Based Security)
Vi chc nng lc gi tin trong nhn ca Linux, c th gii hn truy cp ti
ngun ti nguyn bng cch to ra tp lut vi cc tin ch nh ipchains v
iptables, s cho php xc nh mt gi tin khi i qua hoc giao din mng ca n
v cng ch ra iu g s din ra i vi gi tin ny.
C ba chui trong ipchains v iptables, l
input, forward v output cho ipchains
INPUT, FORWARD, v OUTPUT cho iptables.

V d, khi s dng ipchains tt c gi tin i vo mt giao din mng s i qua


chui input. Tt c cc gi tin khng c ch l host ny s ia qua chui
forward.

Tt c cc gi tin c sinh ra bi host v cc gi tin chuyn tip s i qua chui


output.

Lut ipchains v iptables c th xc nh cc thng tin nh ngun source (s),


ch (d), giao thc (p), v cng.

191

Qun tr H thng Linux - C bn


V d: Tt c cc gi tin t a ch 192.168.0.254 s b cm
ipchains -A input -s 192.168.0.254 -j DENY

Cc lut Ipchains v iptables c th c thc thi theo cc thng s la chn


sau
-A

Thm vo cui (Append)

-D

Xo (Delete)

-P

Thay i chnh sch mc nh i vi mt chui (chain)

-I

Chn (Insert)

-F

In cc lut ra mt chui (Flush the rules(s) in a chain)

-N

To mt chui c ngi dng nh ngha

-X

Xo chui do ngi dng nh ngha

-L

Lit k

V d: Chnh sch mc nh i vi mt iptable c th b thay i t ACCEPT


thnh DENY nh sau:
iptables -P INPUT REJECT
iptables -P FORWARD REJECT
iptables P OUTPUT REJECT

Trong d n pht trin nhn Linux 2.4 v d n Netfilter cng s dng tin ch
bng iptables qun l cc lut firewall. im khc bit ln nht gia iptable
v ipchain l iptables h tr cho vic nh gi cc gi tin da trn trng thi ca
chng da theo cc gi tin khc c truyn qua nhn.
Di y l mt v d minh ho tng la theo trng thi gi tin c thc hin.
N l mt on script shell gm mt s dng lnh.
V d:
192

Qun tr H thng Linux - C bn


Mt on script c bn ph hp vi ngi dng gia nh (home user) hoc
khng c nhu cu kt ni internet nhng vn s dng gateway cho mng LAN v
cho php cc kt ni t mng LAN ti tt cc dch v. Ch : Dng bi m di
y ch cho php kt ni ti cng 80

#!/bin/sh
# Variables
IPTABLES="/sbin/iptables"
LAN_IFACE="eth0"
INET_IFACE="eth1"
INET_IP="1.2.3.4"
LOCALHOST_IP="127.0.0.1/32"
LAN_IP="192.168.0.1/32"
LAN_BCAST="192.168.0.0/24"

# Setup IP Masquerading

echo "1" > /proc/sys/net/ipv4/ip_forward


$IPTABLES -t nat -A POSTROUTING -o $INET_IFACE -j MASQUERADE

# Specify the default policy for the built in chains


$IPTABLES -P INPUT DROP
$IPTABLES -P FORWARD DROP
$IPTABLES -P OUTPUT DROP

# Specify INPUT Rules


$IPTABLES -A INPUT -i !$INET_IFACE -j ACCEPT
$IPTABLES -A INPUT -p TCP -i $INET_IFACE -m state --state NEW --dport http -j
ACCEPT
$IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# Specify FORWARD Rules


$IPTABLES -A FORWARD -i $LAN_IFACE -j ACCEPT

193

Qun tr H thng Linux - C bn


$IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

# Specify OUTPUT RULES


$IPTABLES -A OUTPUT -p ALL -s $LOCALHOST_IP -j ACCEPT
$IPTABLES -A OUTPUT -p ALL -s $LAN_IP -j ACCEPT

Shell an ton
Xc thc Host
Vi ssh th c host v ngi dng c xc thc. Xc thc host c hon thnh
bng cch s dng cc kho o (swapping key). Kho cng khai v kho ring
ca host thng thng c lu tr trong /etc/ssh nu bn s dng OpenSSH.
Ph thuc vo giao thc c s dng m file kho host s c gi
ssh_host_key i vi Giao thc 1 v ssh_host_rsa_key hoc ssh_host_dsa_key
i vi giao thc 2. Mi kho ny c mt kho cng cng tng ng, v d
ssh_host_key.pub.
Khi mt ssh client kt ni ti mt server th server s cung cp mt kho host
cng khai. on v d di y ngi dng s c thng bo mt s thng s
nh sau:
The authenticity of host 'neptune (10.0.0.8)' can't be established.
RSA
key
fingerprint
8f:29:c2:b8:b5:b2:e3:e7:ec:89:80:b3:db:42:07:f4.

is

Are you sure you want to continue connecting (yes/no)?

Nu bn ng tip tc kt ni th kho cng khai ca server s c thm vo


trong file $HOME/.ssh/known_hosts.
Xc thc ngi dng (s dng password)
Tip theo ngi dng s c h thng nhc nhp mt khu tng ng vi
account ca mnh ng nhp vo server t xa.
Xc thc ngi dng (s dng kho)
194

Qun tr H thng Linux - C bn


Xc thc ngi dng cng c th i hi cc kho o (swapping key). thc
hin iu ny ngi dng s cn phi sinh ra mt cp kho ring / cng khai.
V d:
ssh-keygen -t dsa -b 1024

s sinh mt lhjo DSA 1024 bit. Mc nh cc kho ny s c ghi trong


$HOME/.ssh v trong v d ny c gi l id_dsa v id_dsa.pub.
Gi s rng chng ta c mt id_dsa.pub ta c th thnh lp kho ny vi mt
ti khon t xa v trnh c vic phi nhp mt khu i vi cc kt ni sau
ny. thc hin c vic ny, ta cn phi copy ni dung ca file id_dsa.pub
vo mt file c tn l authorized_keys2 c lu tr trong th mc t xa
$HOME/.ssh.

CH

Tt c kho cng khai trong /etc/ssh and ~/.ssh s c quyn l 600

File cu hnh sshd


V d file /etc/ssh/sshd_config:
#Port 22
#Protocol 2,1
#ListenAddress 0.0.0.0
#ListenAddress ::

# HostKey for protocol version 1


#HostKey /etc/ssh/ssh_host_key
# HostKeys for protocol version 2
#HostKey /etc/ssh/ssh_host_rsa_key
#HostKey /etc/ssh/ssh_host_dsa_key

File cu hnh ssh configuration


File v d /etc/ssh/ssh_config or $HOME/.ssh/config:
195

Qun tr H thng Linux - C bn


# Host *
#

ForwardX11 no

RhostsAuthentication no

RhostsRSAAuthentication no

RSAAuthentication yes

PasswordAuthentication yes

HostbasedAuthentication no

CheckHostIP yes

IdentityFile ~/.ssh/identity

IdentityFile ~/.ssh/id_rsa

IdentityFile ~/.ssh/id_dsa

Port 22

Protocol 2,1

Cipher 3des

Cu hnh thi gian


Ngy h thng
Ngy h thng c th thay i vi cu lnh date. C php l:
date MMDDhhmmCCYY[.ss]

ng h phn cng (Harware Clock)


ng h phn cng c th c thay i trc tip vi tin ch hwclock. Cc
tham s la chn chnh l:
-r hoc -show

hin th thi gian hin ti

-w hoc -systohc

thit lp ng h phn cng thnh thi gian h thng hin ti

-s hoc -hctosys
cng hin ti

thit lp thi gian h thng vi thi gian ca ng h phn

S dng NTP
To thi gian ton cu Coordinated Universal Time (UTC) l mt tiu chun
c s dng gi thi gian chun da vo s quay trn ca tri t xung
196

Qun tr H thng Linux - C bn


quanh trc ca mnh. Tuy nhin do c s sai s nh bt qui tc khi chuyn ng
quay trn nn qung nhy ca giy cn c thm vo thang UTC bng cch
s dng cc ng h nguyn t.
Do my tnh khng c trang b cc ng h nguyn t, tng s dng mt
giao thc ng b cc ng h my tnh qua internet. NTP - Network Time
Protocol l mt giao thc nh vy.
Cc my tnh c cp nht mt cch trc tip bi ng h nguyn t c gi
l thi gian chnh (primary time) v c s dng cp nht mt s lng ln
my ch thi gian ph khc. iu ny to nn mt cu trc cy ging vi cu
trc DNS. My ch gc (root server) mc (tng) u tin, my ch th yu s
mc th hai v tng t nh vy vi cc mc thp hn.
Cu hnh mt client truy vn mt my ch NTP:
Mt tin trnh nn gi l ntpd c s dng truy vn ti mt my ch thi
gian t xa. Tham s cn thit l server trong tp /etc/ntp.conf tr n mt my
ch NTP cng cng hoc lin kt. Cc my ch ny c th tm thy trc tuyn
trn mng.
Giao thc NTP cng c th c lng cc li v tn s ca ng h phn cng
qua mt chui cc truy vn, c lng ny c ghi vo mt fuke c tham
chiu vi th driftfile.
Mininal /etc/ntp.conf file
server ntp2.somewhere.com
driftfile /var/lib/ntp/drift

Khi ntpd c bt u n s t tr thnh mt my ch NTP cung cp cc dch v


ti cng 123 bng cch s dng UDP.
One off queries:
Gi ntp cng h tr cng c ntpdate c s dng thit lp thi gian qua mt
dng lnh:
ntpdate ntp2.somewhere.com

197

Qun tr H thng Linux - C bn

Bo mt nhn
C mt s la chn trong nhn Linux. Bao gm c ch ng b cookie
syn_cookie. Trn ngn xp b nh (Stack overflow) c kim sot bi mt
ming v bo mt gi l tng m (openwall) hoc OWL.

tcp_syncookies
kch hot la chn ny bn ch cn thc hin nh sau:

[root@nasaspc /proc]#echo "1" > /proc/sys/net/ipv4/tcp_syncookies

Dng lnh ny s ch th cho nhn gi mt cookie ti client trong tn hiu tr li


SYN+ACK ca n. Trong ch ny, my ch s ng socket v i tn hiu
ACK ca client vi mt cookie tng ng.
Nu file tcp_syncookies khng tn ti trong th mc /proc th bn cn phi dch
li nhn vi la chn h tr syncookies.
Ch : Mc nh, thm ch nu syncookies c h tr bi nhn th bn cn
phi kch hot h tr bng cch thm "1" vo /proc/sys/net/ipv4/tcp_syncookies.
iu ny thng c thc hin trong /etc/rc.d/rc.local. Tuy nhin c mt gii
php khc hiu qu hn l thm mt u vo (entry) vo /etc/sysctl.conf
Ming v bo mt owl (phn ny khng phi l i tng trnh by ca ti
liu ny)
Ming v ny quan tm n hu ht cc vn lin quan n ngn xp b nh v
n khng nm trong phm vi ca kho hc ny.

a ch ming v owl v nhn Linux:

http://www.openwall.com
http://www.kernel.org/pub/linux/kernel/v2.2/

198

Qun tr H thng Linux - C bn


Ming v ny ch h tr cho nhn 2.2-19 hoc phin bn tip theo.
Sau khi download linux-2.2.19.tar.gz v linux-2.2.19-ow1.tar.gz vo th mc
/usr/src/, chc chn l bn xo linux symbolic link.
[root@nasaspc src]#pwd
/usr/src/
[root@nasaspc src]#rm -rf linux

Gii nn cc gi.
[root@nasaspc src]#tar xvzf linux-2.2.19.tar.gz
[root@nasaspc src]#tar xvzf linux-2.2.19-owl.tar.gz

kim tra h thng, chuyn ti th mc linux-2.2-19-owl. C mt th mc


c gi l la chn cha file c tn l stacktest.c.

[root@nasaspc optional]#pwd
/usr/src/linux-2.2.19-ow1/optional
[root@nasaspc optional]#gcc stacktest.c -o stacktest

Nu bn chy stacktest th s thu c danh sch cc la chn. Chy m phng


trn b nh.
Mt tn cng trn b nh m thnh cng:
[root@nasaspc optional]#stacktest
Usage: ./stacktest OPTION
Non-executable user stack area tests
-t call a GCC trampoline
-e simulate a buffer overflow exploit
-b

simulate an exploit after a trampoline call

[root@nasaspc optional]#stacktest -e
Attempting to simulate a buffer overflow exploit...
Succeeded.

199

Qun tr H thng Linux - C bn


p dng ming v bn cn phi di chuyn ti th mc linux. Sau y l cc
cu lnh.
S dng ming v openwall:
[root@nasaspc linux]#pwd
/usr/src/linux
[root@nasaspc linux]#patch -p1 < /usr/src/linux-2.2-19-owl/linux-2.2.19-ow1.diff

By gi nu bn thc hin make menuconfig bn s thy mt ca s nhp mi


gi l Security options. Cc la chn mc nh u hp l. T y bn c th
bt u vic dch hoc ci t nhn nh bnh thng.

200

Qun tr H thng Linux - C bn

QUN TR H THNG LINUX


Tng quan
Chng ta s xem xt cc nhim v chnh ca qun tr h thng nh qun l cc
file nht k, lp lch cng vic bng cch s dng at v cron....

Logfiles v cc file cu hnh


Th mc /var/log/
y l th mc cha hu ht cc file nht k (log file). Mt s ng dng sinh ra
cc file nht k ca mnh (v d nh squid hoc samba). Hu ht cc file nht k
h thng u c qun l bi tin trnh nn syslogd daemon. Cc file h thng
ph bin l:
cron
mail
messages
secure

gi v theo di cc thng ip sinh ra khi chy crons


cc thng ip lin quan n mail
ghi nht k tt c cc thng bo nhng ln thc thnh cng
authpriv, cron, mail v news
ghi nht k tt c nhng ln xc thc khng thnh cng, vic thm /
xo ngi dng, ...

File nht k quan trng nht l messages ghi li nht k hu ht cc hot ng.
File /etc/syslog.conf
Khi syslogd c khi ng th mc nh n s c file cu hnh
/etc/syslog.conf. u tin cng c th khi ng syslogd vi -f v ng dn
n mt file cu hnh tng ng. File ny s phi cha mt danh sch cc mc,
tip theo l quyn v cui cng l ng dn n file nht k:

item1.priority1 ; item2.priority2

Cc mc cho php l :
auth v authpriv

ngi dng chung v quyn ring


201

/path-to-log-file

Qun tr H thng Linux - C bn


cron
kern

cc thng ip tin trnh cron


cc thng ip nhn

mail
news
user

tin trnh ngi dng

uucp
Cc quyn cho php: (t cao n thp)
emerg
alert
crit
err
warning
notice
info
debug
*
none

Cc quyn l ti thiu! Tt c cc quyn cao hn s c h thng ghi nht k.


gn mt quyn info bn ch cn s dng du '=' gn nh sau:
user.=info

/var/log/user_activity

Danh sch /etc/syslog.conf

# Log all kernel messages to the console.


# Logging much else clutters up the screen.
#kern.*

/dev/console

# Log anything (except mail) of level info or higher.


# Don't log private authentication messages!
*.info;mail.none;news.none;authpriv.none

/var/log/messages

# The authpriv file has restricted access.


authpriv.*

/var/log/secure

202

Qun tr H thng Linux - C bn


# Log all the mail messages in one place.
mail.*

/var/log/maillog

# Log cron stuff


cron.*

/var/log/cron

# Everybody gets emergency messages, plus log them on another


# machine.
*.emerg

*.emerg

@10.1.1.254

# Save boot messages also to boot.log


local7.*

/var/log/boot.log

#
news.=crit

/var/log/news/news.crit

news.=err

/var/log/news/news.err

news.notice

/var/log/news/news.notice

Cc tin ch nht k
Cu lnh logger
Tin ch u tin ca nht k l cu lnh logger s ghi cc thng ip vo file
/var/log/messages :
Nu bn g cu lnh nh sau:

logger

program myscipt ERR

Pha cui file /var/log/messages s l mt thng ip tng t nh sau:


Jul 17 19:31:00 localhost penguin: program myscript ERR

Thit lp a phng (local settings)

203

Qun tr H thng Linux - C bn


Tin ch logger s mc nh ghi cc thng bo vo /var/log/messages. Mt s
mc a phng (local items) c nh ngha trc c th gip bn to ra cc
file nht k ca mnh nh local0 ti local7 l cc item s dng cho ngi qun
tr h thng. Cc item c nh ngha ny ph thuc vo h thng (File nht k
ghi thng tin thi gian khi ng h thng RedHat local7 trong
/var/log/boot.log). Bn hy thm mt dng sau y vo file /etc/syslog.conf:
local4.*

/dev/tty9

Khi ng li syslogd

killall -HUP syslogd

Cu lnh tip theo s c ghi nht k vo /dev/tty9

logger -p local4.notice

"This script is writing to /dev/tty9"

Mt thit b ng quan tm khc l /dev/speech c ci t vi cc cng c


Festival.

logrotate

Cc file nht k c cp nht bng cch s dng logrotate. Thng thng


logrotate c chy hng ngy nh l mt cng vic cron. File cu hnh
/etc/logrotate.conf s cha cc cu lnh to hoc nn file.
Danh sch ca logrotate.conf
# rotate log files weekly
weekly
# keep 4 weeks worth of backlogs
rotate 4
# send errors to root
errors root
# create new (empty) log files after rotating old ones
create

204

Qun tr H thng Linux - C bn


# uncomment this if you want your log files compressed
compress
# RPM packages drop log rotation information into this directory
include /etc/logrotate.d
# no packages own lastlog or wtmp -- we'll rotate them here
/var/log/wtmp {
monthly
create 0664 root utmp
rotate 1
}

T ng ha cng vic (Automatic Tasks)


S dng cron
Chng trnh c trch nhim chy cc cron c gi l crond. Mi pht crond
s c cc file c cha cu lnh thc hin. Cc file ny c gi l crontabs.
File crontabs ngi dng c lu gi trong /var/spool/cron/<username>. Cc
file ny s khng cho php son tho trc tip bi ngi dng khng phi l
ngi dng root v cn thit phi s dng cng c son tho crontab (xem di
y).
File crontab h thng l /etc/crontab. File ny s thc hin nh k tt c cc
script trong /etc/cron.* bao gm bt k ng dn biu tng (symbolic link) tr
ti cc scritp hoc cc tp nh phn trong h thng.
thc thi cc u vo cron , s dng cng c crontab. Cc cng vic c lp
lch c xem vi tham s la chn -l nh m t di y:

crontab l

# DO NOT EDIT THIS FILE - edit the master and reinstall


# (/tmp/crontab.1391 installed on Tue Jul 17 17:56:48 2001)
# (Cron version -- $Id: crontab.c,v 2.13 1994/01/17 03:20:37 vixie Exp $)
0 * * 07 2 /usr/bin/find /home/penguin -name core -exec rm {} \;

Liu ngi dng root c crontabs no khng?

205

Qun tr H thng Linux - C bn


Tng t nh tham s la chn -e s m trnh son tho mc nh ca bn v cho
php nhp u vo cron.
Ngi dng root c th s dng -u xem v thay i bt k u vo cron no
ca ngi dng.
xo file crontab ca bn, s dng crontab -r.
y l nh dng ca:
Minutes(0-59) Hours(0-23) Day of Month(1-31) Month(1-12) Day of Week(0-6)

command

Quyn:
Mc nh, mt ngi dng bt k no c th s dngcrontab. Tuy nhin, bn c
th kim sot kh nng truy cp vi /etc/cron.deny v /etc/cron.allow.
Lp lch vi at
Cc cng vic at c chy bi tin trnh nn atd v c y ra trong
/var/spool/at/
Cu lnh at c s dng lp lch mt cng vic ang tt (off task) vi c
php nh sau
at [time]

Trong thi gian c th c biu din nh sau:


now
3am + 2days
midnight
10:15 Apr 12
teatime

c danh sch y cc nh dng thi gian, xem /usr/share/doc/atxxx/timespec.

206

Qun tr H thng Linux - C bn


Bn c th lit k cc cu lnh c lp lch vi atq hoc at -l. Cc cng
vicat c ghi trong /var/spool/at/:

ls /var/spool/at/

a0000100fd244d

spool

Khi s dng atq bn s phi c mt danh sch cc cng vic c nh s. Bn cng c th


s dng s ny loi b khi hng i cng vic:

atq

2001-07-17 18:21 a root

T vic lit k atq chng ta thy rng s cng vic l 1, do c th loi b cng
vic khi hng i nh sau:

at -d 1

Quyn:
Mc nh at s hn ch ngi dng root. ghi , bn phi c mt /etc/at.deny
rng
hoc c /etc/at.allow vi cc tn tng ng.

Sao lu v nn
Chin lc sao lu (Backup strategies)
C ba chin lc sao lu mt h thng l:
y : copy tt c cc file

207

Qun tr H thng Linux - C bn


D phng: u tin copy tt c cc file mi c thm hoc thay i k t ln
backup cui cng v sau copy tt c cc file mi c thm hoc sa i t
ln backup d phng gn nht
Sai lch: Copy tt c cc file mi c thm hoc sa i t ln backup y
gn y nht
V d: nu bn thc hin mt backup y v ba ln backup Sai lch trc khi
h thng sp , bn s cn bao nhiu tape khi phc li?

To file nn cn lu tr vi tar
La chn chnh to ra mt file nn cn lu tr vi tar l -c. Bn cng c th
xc nh tn ca archive nh l i s u tin nu s dng c -f.

tar -cf home.tar /home/

Nu bn khng xc nh file nh l mt i s tar -c th n gin h thng s cho


u ra file nn cn lu tr nh mt u ra chun:

tar -c /home/ >

home.tar

Gii nn archives vi tar


Thay c -c bng x s to ra cc th mc nu cn thit v copy cc file nn cn
lu tr vo th mc hin thi ca bn. chuyn tip kt qu gii nn vo mt
th mc (v d th mc /usr/share/doc), bn c th lm nh sau:

tar xf backeddocs.tar -C /usr/share/doc

Nn
Tt c cc archives c th dc nn bng nhiu tin ch khc nhau. Cc c sau s
cho php khi to, th nghim (testing) hoc gii nn mt tp cn lu tr:
208

Qun tr H thng Linux - C bn

Tham s la
chn tar

Kiu nn

compress

gzip

bzip2.

Tin ch cpio
Tin ch cpio c s dng copy cc file t hoc n cc file nn.
- Gii nn mt file d liu trn tape:
cpio -i < /dev/tape

- To mt file nn d liu cho th mc /etc:


find /etc | cpio -o > etc.cpio

Ti liu
Trang tr gip Manpages v c s d liu whatis
Trang tr gip c t chc theo cc phn
NAME

tn ca mc (item) tip theo bi mt dng ghi ch ngn

SYNOPSYS

c php ca cu lnh

DESCRIPTION

gii thch di

OPTIONS

Cc tham s la chn c th

FILES

Cc file lin quan n item hin ti(v d cc file cu hnh)

SEE ALSO

cc trang hng dn khc lin quan n ch hin ti

Cc phn trn khng th thiu trong mt trang tr gip.

209

Qun tr H thng Linux - C bn


C s d liu whatis lu tr phn NAME ca tt c cc trang tr gip trong h
thng. Vic lu tr ny c thc hin bi cron hng ngy. C s d liuwhatis
c hai u vo nh sau:
name(key)

one line description

C php ca whatis l:
whatis <string>

Kt qu u ra l phn NAME y ca cc trang tr gip trong string


tng ng vi named(key)
Bn cng c th s dng cu lnh man truy vn c s d liu whatis. C php
ca man l
man -k <string>

Khng ging nh whatis, cu lnh man s truy vn c name v one line


description ca c s d liu. Nu string ph hp vi mt t trong bt k mt
trng no trn, truy vn s tr v mt NAME y .

V d: (String ph hp s c bi m)
whatis lilo
lilo

(8)

- install boot loader

lilo.conf [lilo]

(5)

- configuration file for lilo

man -k

lilo

grubby

(8)

- command line tool for configuring grub, lilo, and elilo

lilo

(8)

- install boot loader

210

Qun tr H thng Linux - C bn


lilo.conf [lilo]

(5)

- configuration file for lilo

Cc trang tr gip c lu gi trong /usr/share/man

Cc phn ca trang tr gip


Phn 1

thng tin trn cc bng executables

Phn 2

Cc li gi h thng, v d mkdir(2)

Phn 3

Cc li gi th vin, v d stdio(3)

Phn 4

Cc thit b (files trong /dev)

Phn 5

Cc file cu hnh v nh dng

Phn 6

Cc tr chi

Phn 7

Cc gi Macro

Phn 8

Cc cu lnh qun tr

Phn 9

Cc on m nhn (Kernel routines)

truy cp vo mt phn N xc inh, bn g:


man N command
V d:
man mkdir
man 2 mkdir

man crontab
man 5 crontab

Cc trang thng tin


Cc trang thng tin (infor page) nm trong th mc /usr/share/info. Cc trang
ny l cc file nn v c th c vi cng c info.
211

Qun tr H thng Linux - C bn


Cc cng c GNU nguyn bn hay s dng cc trang thng tin hn cc trang tr
gip (man page). Tuy nhin thng tin v cc d n GNU nh gcc hoc glibc vn
c phm vi rng hn trong cc trang thng tin so vi cc trang tr gip.
Ti liu trc tuyn
Cc d n GNU bao gm cc ti liu nh FAQ, README, CHANGELOG v
thnh thong l hng dn user/admin. nh dng ca cc ti lieu ny c th l
ASCII text, HTML, LateX hoc postscript.
Cc ti liu ny c lu gi trong th mc/usr/share/doc/.
HOWTOs v D n ti liu Linux
D n ti liu Linux (LDP) cung cp nhiu ti liu chi tit theo cc ch khc
nhau. Cc ti liu ny hng dn cch s dng v thc thi trn Linux. a ch
ca trang web l www.tldp.org.
Cc ti liu The LDP u min ph v c th c phn phi theo giy php
CPL.

Thc hnh
Ghi nht k
1. Thay i file /etc/syslog.conf in ra mt s nht k ti /dev/tty9 (m bo
rng bn khi ng li syslogd v kt qu u ra c chuyn gin tip mt
cch hp l)
2. Thm mt mc (item) local5 vi quyn ti /ect/syslog.conf v t u ra trc
tip ti /dev/tty10. Khi ng li syslogd v s dng logger ghi thng tin
qua local5.
3. c script /etc/rc.d/init.d/syslog v thay i /etc/sysconfig/syslog cho
php cc host t xa gi cc nht k u ra.

Lp lch
4. To mt u vo cron s khi ng xclock theo nh k 2 pht mt ln. Ch
rng cron khng bit cc bin h thng nh PATH v DISPLAY.
5. S dng at. khi ng xclock trong nm phut tip theo.
212

Qun tr H thng Linux - C bn

Archiving
6. S dng find lit k tt c cc trng c sa i trong vng 24 gi
gn nht..
(gi : Chuyn tip u ra ca find -mtime 1 ti 1 file)

7. S dng cpio to mt tp nn cn lu tr c tn l Incremental.cpio.


(tr li: S dng file ca c to ra trn v thc hin cat FILE | cpio ov > Incremental.cpio)

8. S dng xargs v tar to ra mt file nn d liu ca tt c cc file c


cp nht mi hoc thay i trong vng 5 pht gn y nht.
9. Tng t nh trn s dng tham s la chn exec vi cu lnh find. Ch ,
cc file c lit k bi find c th c tham chiu bi biu tng {}.
10. Gii nn file bn va to ra.

213

Qun tr H thng Linux - C bn

IN N
C hai mc ch trong chng ny l gii thiu cc ccng c in n GNU sn
c trn Linux v hiu r cc file cu hnh i vi my ch in n.

B lc (Filters) v gs
i vi nhng nh dng phi vn bn, h thng Linux v Unix thng s dng
cc b lc. Nhng b lc no s chuyn nhng nh dng JPEG hoc troff vo
nh dng postscript. V nh dng ny c th c gi trc tip n my in
postscript, tuy nhin khng phi tt c my in thng thng c kh nng x l
postscript, mt thit b trung gian "my in postscript o" c tn l gs (ghostscript)
s chuyn i postscript vo PCL.
Bn thng mi ca ghostscript l Aladdin Ghostscript v bn GNU l version c
hn.
Tin ch gs c mt c s d liu ca cc thit b iu khin (driver) cho my in
(danh sch cc thit b iu khin thng xuyn c cp nht, v d rt nhiu
cc my in USB c th dng c), do tin ch ny s x l v chuyn i
postscript trc tip vo PCL cho nhng loi my in bit. Tin ch gs ng vai
tr trung tm trong qu trnh x l in n ca Linux.

My in v hng i in
Nh cp trn cc dng vn bn ascii n gin khng cn x l theo cch
thc ging nh cc file hnh nh hoc postscript. Nu chng ta ch c duy nht
mt my in v v d mun in ra nhng bc th, th chng ta khng cn thit s
dng b lc. Chng ta s nh ngha mt hng i thay th b lc v gip qu
trnh in din ra nhanh hn. Chng ta cng c th nh ngha mt hng i trn
cng mt my in dnh cho vic x l cc file postscript.

Tt c cc hng i v my in c nh ngha trong /etc/printcap. Di y l


cu hnh y ca mt my in t xa 192.168.1.20 s dng hng i t xa c tn
l 'lp':

214

Qun tr H thng Linux - C bn


lp:\
:sd=/var/spool/lpd/lp:\
:mx#0:\
:sh:\
:rm=192.168.1.20:\
:rp=lp:

Cc la chn cn thit y l rm dnh cho my ch t xa, sd l th mc ng


ng my in (spool), v rp l tn ca hng i t xa. Ch rng khng c b lc
no c xc nh y (chng ta c th s dng lnh if cho b lc u vo).
Tt c cc qu trnh lc c thc hin trn my ch t xa.

Cc cng c in n
lpr:

Tin ch lpr c dng gi cc cng vic lin quan n in n ti my in. y


l mt phin bn mi ca lp (line print). i vi ngi dng s thun tin hn
nu nh mt my in c th gn kt vi nhiu hn mt hng i. Di y l hai
v d in mt file c tn l LETTER.
Gi cng vic n my in mc nh:
lpr LETTER

Gi cng vic n hng i 'ljet':


lpr -Pljet LETTER

Bng 1: Cc la chn chnh cho lpr

-#num

In num bn copies

-Ppq

Ch nh hng in pq

-s

To mt lin kt tng trng trong th mc ng ng my in


thay cho qu trnh copy file vo

lpq:

215

Qun tr H thng Linux - C bn


Ngi dng c th quan st trng thi ca hng in bng tin ch lpq. Di y l
mt vi v d.
Hin th cc cng vic trong hng i mc nh:
lpq

Hin th cc cng vic cho tt c hng i trong h thng


lpq -a

Hin th cc cng vic trong hng i t xa


lpq -Premote

lprm:

Tu thuc vo la chn trong /etc/lpd.perms ngi dng c th c php xo


nhng cng vic ang ch i bng lnh lprm.
Xo cng vic cui cng c gi i
lprm

Xo cc cng vic c gi i bng ngi dng dhill:


lprm dhill

Xo tt c cng vic c gi i:
lprm -a

(or simply lprm -)

Chng ta cng c th xo mt cng vic c th trong ng ng my in bng


cch ch ra gi tr ca cng vic, gi tr ny c to ra bi lpq.

lpc:

Tin ch iu khin my in theo dng (Line Printer Control) c dng iu


khin cc hng in v cc my in. Cc hng in c th b v hiu ho hoc lm vic
216

Qun tr H thng Linux - C bn


tr li. Ch rng lnh lprm ch c th xo cc cng vic t hng i nhng
khng c th dng li mt hng i.
Chng ta c th thc hin tng tc vi lpc (lpc c du nhc ring) hoc s dng
dng lnh.
Di y l kt qu ca lnh lpc help:
CMD: /usr/sbin/lpc help

Commands may be abbreviated.


abort
clean

enable
exit

disable help
down
quit

Commands are:
restart status
start
stop

topq
up

Cc la chon enable/disable/topq/up lin quan n hng i.


Cc la chn start/stop/down lin quan n my in.

Cc file cu hnh
/etc/printcap

Nh cp trong phn trc ca chng ny, file trn s nh ngha tt c cc


my in v hng i m h thng c th dng (t xa hoc cc b).
My in mc nh c th c xc nh vi cc bin LPDEST hoc PRINTER:
PRINTER=lp
Nu khng c bin mi trng no c thit lp, my in mc nh l my in u
tin c nh ngha trong /etc/printcap.

Cc nh ngha chnh l:
lp

tn thit b, thng thng /dev/lp0 cho cng song song

mx

dung lng file ln nht (gi tr 0 c ngha l khng gii hn)

sd

th mc ng ng my in

if

b lc u vo

rm

a ch my ch t xa hoc IP
217

Qun tr H thng Linux - C bn


rp

tn hng i t xa

Nu nh file /etc/printcap c thay i th chng ta cn khi ng li daemon lpd.


/etc/lpd.conf

y l mt file c ni dung rt di v ngm nh l tt c cc la chon u c


ghi ch. File ny c dng khi ngi qun tr mng mun c thm quyn iu
khin i vi qu trnh in n (v d: xc thc quyn truy nhp t xa, cc quyn
ca ngi dng...)

/etc/lpd.perms
File ny iu khin cc quyn lin quan n cc tin ch lpc, lpq, v lprm. C
th chng ta c th cung cp cho ngi dng quyn loi b nhng cng vic
hin thi ca h t hng i vi dng lnh sau:
ACCEPT

SERVICE=M

SAMEHOST SAMEUSER

LPRng s s dng mt h thng cc phm rt gn cc mc trong lpd.perms.


Tuy nhin qu trnh ny khng d dng c th hiu c i vi nhiu trng
hp. V d dch v 'M' tng ng vi lprm trong dng lnh pha trn.

V d v file /etc/lpd.perms:
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##
##

Permissions are checked by the use of 'keys' and matches. For each of
the following LPR activities, the following keys have a value.
Key
SERVICE
USER
HOST
GROUP
IP
PORT
REMOTEUSER
REMOTEHOST
REMOTEGROUP
REMOTEIP
CONTROLLINE

Match Connect Job


Spool
S
'X'
'R'
S
JUSR
S
RH
JH
S
JUSR
IP
RIP
JIP
N
PORT
PORT
S
JUSR
S
RH
RH
S
JUSR
IP
RIP
RIP
S
CL

Job
Print
'P'
JUSR
JH
JUSR
JIP
JUSR
JH
JUSR
JIP
CL

218

LPQ

LPRM

LPC

'Q'
JUSR
JH
JUSR
RIP
PORT
JUSR
RH
JUSR
RIP
CL

'M'
JUSR
JH
JUSR
JIP
PORT
CUSR
RH
CUSR
RIP
CL

'C'
JUSR
JH
JUSR
JIP
PORT
CUSR
RH
CUSR
RIP
CL

Qun tr H thng Linux - C bn


## PRINTER
S
PR
PR
PR
PR
PR
## FORWARD
V
SA
SA
SA
## SAMEHOST
V
SA
SA
SA
SA
## SAMEUSER
V
SU
SU
SU
## SERVER
V
SV
SV
SV
SV
## LPC
S
LPC
## AUTH
V
AU
AU
AU
AU
AU
## AUTHTYPE
S
AU
AU
AU
AU
AU
## AUTHUSER
S
AU
AU
AU
AU
AU
## AUTHFROM
S
AU
AU
AU
AU
AU
## AUTHSAMEUSER S
AU
AU
AU
AU
AU
##
## KEY:
##
JH = HOST
host in control file
##
RH = REMOTEHOST
connecting host name
##
JUSR = USER
user in control file
##
AUTH will match (true) if authenticated transfer
##
AUTHTYPE will match authentication type
##
AUTHUSER will match client authentication type
##
AUTHFROM will match server authentication type and is NULL if not
from server
##
AUTHSAMEUSER will match client authentication to save authentication
in job
##
## Example Permissions
##
## # All operations allowed except those specifically forbidden
## DEFAULT ACCEPT
##
## #Reject connections from hosts not on subnet 130.191.0.0
## # or Engineering pc's
##
REJECT SERVICE=X NOT REMOTEIP=130.191.0.0/255.255.0.0
##
REJECT SERVICE=X NOT REMOTEHOST=engpc*
##
## #Do not allow anybody but root or papowell on
## #astart1.astart.com or the server to use control
## #facilities.
##
ACCEPT SERVICE=C SERVER REMOTEUSER=root
##
ACCEPT SERVICE=C REMOTEHOST=astart1.astart.com REMOTEUSER=papowell
##
## #Allow root on talker.astart.com to control printer hpjet
##
ACCEPT SERVICE=C HOST=talker.astart.com PRINTER=hpjet REMOTEUSER=root
## #Reject all others
##
REJECT SERVICE=C
##
## #Do not allow forwarded jobs or requests
##
REJECT SERVICE=R,C,M FORWARD
##
#
# allow root on server to control jobs
ACCEPT SERVICE=C SERVER REMOTEUSER=root
# allow anybody to get server, status, and printcap
ACCEPT SERVICE=C LPC=lpd,status,printcap

219

Qun tr H thng Linux - C bn


# reject all others
REJECT SERVICE=C
#
# allow same user on originating host to remove a job
ACCEPT SERVICE=M SAMEHOST SAMEUSER
# allow root on server to remove a job
ACCEPT SERVICE=M SERVER REMOTEUSER=root
REJECT SERVICE=M
# all other operations allowed
DEFAULT ACCEPT

/etc/host.{lpd,equiv}
Nhng file ny c dng bi h thng cc qu trnh in n LRP v c ri ro v
bo mt. Khi thc hin my dch v in, chng ta cn xc nh nhng my ch
no c th truy cp vo my in trong /etc/hosts.lpd. Chng ta cng cn b sung
nhng my ch ny vo /etc/hosts.equiv.

Nhng file ny ngy nay c thay th trong LPRng bng file /etc/lpd.perms

Thc hnh
1. S dng printtool v ti mt hng i cc b c tn l lp.
2. Chnh sa thit b /dev/tty10 nh l thit b my in (nh thc hin chmod 666
/dev/tty10 cho php in n trn thit b ny). By gi bn c mt my in o
trn h thng ca bn!
3. Gi cc cng vic n hng in s dng lpr v pr.
4. Vi cng c in n trn h thng ca bn, hy nh ngha cc hng i t xa
khc nhau
- mt hng i UNIX
- mt hng i SMB
Nu bn ang s dng my ch, chc chn cc cu lnh ph hp trn s c
nh ngha trong /etc/lpd.perms
Trong mi trng hp

220

Qun tr H thng Linux - C bn


- kim tra file /etc/printcap. B lc no c s dng? My ch t xa c nh
ngha nh th no?
- kim tra th mc /var/spool/lpd/
5. Dng cc hng in khc nhau v cc my in vi lpc.
6. Kim tra ni dung ca mi hng in vi lpc.
7. Loi b khi hng i nhng cng vic c th vi lprm

221

You might also like