Download as pdf or txt
Download as pdf or txt
You are on page 1of 112

QUN TR H IU HNH LINUX

MC LC
1. Gii thiu h iu hnh Linux
1.1 Lch s Linux
1.2 Ci t Linux
2. Giao tip trn mi trng Linux
2.1 Gii thiu trnh son tho vi
2.2 Gii thiu tin ch mc
2.3 Cc cu lnh c bn trn Linux
2.3.1

Hiu bit v cc cu lnh trong Linux

2.3.2

Cc cu lnh v th mc v file

2.3.3

Cc cu lnh nn d liu

2.3.4

Cc cu lnh qun l tin trnh

3. Gii thiu h thng tp tin, th mc.


3.1 Gii thiu
3.1.1 Th mc ch
3.1.2 Cc th mc h thng
3.2 Cc quyn truy cp file, th mc
3.2.1 Thay i quyn s hu file, th mc s dng lnh chown
3.2.2 Thay i nhm s dng file/th mc vi lnh chgrp
3.2.3 S dng s theo h c s 8 tng ng vi thuc tnh truy cp
3.2.4 S dng ngn ng t nhin tng ng vi quyn truy cp
3.2.5 Thay i quyn truy cp file th mc s dng lnh chmod
3.2.6 Cc ch c bit trn cc quyn th mc
3.3 Thit lp mt chnh sch cho server nhiu ngi s dng
3.3.1 Thit lp cu hnh cc quyn truy cp file ca ngi s dng
3.3.2 Thit lp mc nh cc quyn truy cp file cho ngi s dng
3.3.3 Thit lp cc quyn c th thc thi cho cc file
3.4 Lm vic vi file, th mc
3.4.1 Xem cc file v cc th mc
3.4.2 Chuyn n th mc
3.4.3 Xc nh kiu file
3.4.4 Xem thng k cc quyn ca file hay th mc
3.4.5 Sao chp file v th mc
3.4.6 Dch chuyn cc file v th mc
3.4.7 Xa cc file v th mc
3.4.8 Tm kim file
4. Qun l ngi dng v ti nguyn
4.1 Khi nim
4.2 To superuser
4.3 Qun l ngi dng vi cc cng c dng lnh
4.3.1 To mt ti khon ngi s dng mi
4.3.2 To mt nhm mi
4.3.3 Sa i mt ti khon ngi s dng ang tn ti
4.3.4 Thay i ng dn th mc ch

4.3.5 Thay i UID


4.3.6 Thay i nhm mc nh
4.3.7 Thay i thi hn kt thc ca mt ti khon
4.3.8 Sa i mt nhm ang tn ti
4.3.9 Xa hoc hy b mt ti khon ngi s dng
4.4 Ci t my in
4.4.1 Cu hnh my in
4.4.2 Ci t my in cc b
4.4.3 Ci t my in trn h thng Unix xa
4.4.4 Ci t my in Samba (SMB)
4.4.5 Chn trnh iu khin Print Driver v kt thc
4.4.6 Thay i thng s cu hnh cc my in c sn
4.4.7 Backup cc thng s cu hnh my in
4.4.8 Qun l cng vic in n
5. Trnh din thit lp mng v ci t Diul-up trn Linux
5.1 Thit lp mng
5.1.1 HH Linux v card mng
5.1.2 Cu hnh card mng
5.1.3 Cc tin ch mng: Telnet v ftp
5.2 Ci t Diul-up
5.2.1 Ci t
5.2.2 Quay s t xa
6. Lp trnh shell
6.1 To v chy chng trnh shell
6.2 S dng cc bin
6.2.1 Gn mt gi tr cho mt bin
6.2.2 Tham s v cc bin Shell c sn
6.3 S dng du trch dn
6.4 Lm vic vi cu lnh test
6.5 S dng cc cu lnh r nhnh
6.5.1 Lnh if
6.5.2 Lnh case
6.6 S dng cc cu lnh vng lp
6.6.1 Lnh for
6.6.2 Lnh while
6.6.3 Lnh until
6.6.4 Lnh shift
6.6.5 Lnh select
6.6.6 Lnh repeat
6.7 S dng cc hm
6.8 Tng kt
7. Ci t v Qun tr WebServer
7.1 Hng dn ci t trn mi trng Linux
7.2 Qun tr WebServer
7.2.1 Phn mm Apache
7.2.2 Bin dch v ci t
7.2.3 Khi ng v tt WebServer
7.2.4 Cu hnh Apache
7.2.5 Xc thc ngi dng

8. Qun l tin trnh


8.1 Tin trnh
8.1.1 Tin trnh tin cnh
8.1.2 Tin trnh hu cnh
8.2 iu khin v gim st tin trnh
8.2.1 S dng lnh ps ly thng tin trng thi ca tin trnh
8.2.2 Pht tn hiu cho mt chng trnh ang chy
8.2.3 Giao tip gia cc tin trnh
8.3 Lp k hoch cc tin trnh
8.3.1 S dng lnh at
8.3.2 S dng lnh crontab
9. Bo mt h thng
9.1 Nhng nguy c an ninh trn Linux
9.2 Xem xt chnh sch an ninh ca bn
9.3 Tng cng an ninh cho KERNEL
9.4 An ton cc giao dch trn mng
9.5 Linux firewall
9.6 Dng cng c d tm kho st h thng
9.7 Pht hin s xm nhp qua mng
9.8 Kim tra kh nng b xm nhp
9.9 i ph khi h thng b tn cng

1. Gii thiu h iu hnh Linux


1.1.

Lch s

Linux l h iu hnh m phng Unix, c xy dng trn phn nhn (kernel) v cc


gi phn mm m ngun m. Linux c cng b di bn quyn ca GPL (General
Public Licence).
Unix ra i gia nhng nm 1960, ban u c pht trin bi AT&T, sau c
ng k thng mi v pht trin theo nhiu dng di cc tn khc nhau. Nm 1990
xu hng pht trin phn mm m ngun m xut hin v c thc y bi t chc
GNU. Mt s licence v m ngun m ra i v d BSD, GPL. Nm 1991, Linus
Torvald vit thm phin bn nhn v0.01 (kernel) u tin ca Linux a ln cc BBS,
nhm ngi dng mi ngi cng s dng v pht trin. Nm 1996, nhn v1.0
chnh thc cng b v ngy cng nhn c s quan tm ca ngi dng. Nm 1999,
phin bn nhn v2.2 mang nhiu c tnh u vit v gip cho linux bt u tr thnh
i th cnh tranh ng k ca MSwindows trn mi trng server. Nm 2000 phin
bn nhn v2.4 h tr nhiu thit b mi (a x l ti 32 chip, USB, RAM trn 2GB...)
bt u t chn vo th trng my ch cao cp. Qu trnh pht trin ca linux nh
sau:
-

Nm 1991: 100 ngi dng.

Nm 1997: 7.000.000 ngi dng.

Nm 2000: hng trm triu ngi dng, hn 15.000 ngi tham gia pht trin
Linux. Hng nm th trng cho Linux tng trng trn 100%.

Cc phin bn Linux l sn phm ng gi Kernel v cc gi phn mm min ph


khc. Cc phin bn ny c cng b di licence GPL. Mt s phin bn ni bt l:
Redhat, Caldera, Suse, Debian, TurboLinux, Mandrake.
Ging nh Unix, Linux gm 3 thnh phn chnh: kernel, shell v cu trc file.
Kernel l chng trnh nhn, chy cc chng trnh v qun l cc thit b phn cng
nh a v my in.
Shell (mi trng) cung cp giao din cho ngi s dng, cn c m t nh mt b
bin dch. Shell nhn cc cu lnh t ngi s dng v gi cc cu lnh cho nhn
thc hin. Nhiu shell c pht trin. Linux cung cp mt s shell nh: desktops,
windows manager, v mi trng dng lnh. Hin nay ch yu tn ti 3 shell: Bourne,
Korn v C shell. Bourne c pht trin ti phng th nghim Bell, C shell c pht
trin cho phin bn BSD ca UNIX, Korn shell l phin bn ci tin ca Bourne shell.
Nhng phin bn hin nay ca Unix, bao gm c Linux, tch hp c 3 shell trn.
Cu trc file quy nh cch lu tr cc file trn a. File c nhm trong cc th
mc. Mi th mc c th cha file v cc th mc con khc. Mt s th mc l cc
th mc chun do h thng s dng. Ngi dng c th to cc file/th mc ca ring
mnh cng nh dch chuyn cc file gia cc th mc . Hn na, vi Linux ngi
dng c th thit lp quyn truy nhp file/th mc, cho php hay hn ch mt ngi
dng hoc mt nhm truy nhp file. Cc th mc trong Linux c t chc theo cu
trc cy, bt u bng mt th mc gc (root). Cc th mc khc c phn nhnh t
th mc ny.
Kernel, shell v cu trc file cu thnh nn cu trc h iu hnh. Vi nhng thnh
phn trn ngi dng c th chy chng trnh, qun l file, v tng tc vi h
thng.

1.2.

Ci t my ch Linux

Lu : trc khi ci t, cn tm hiu cc thng tin v phn cng ca h thng, bao


gm
-

Thng tin v a cng

Thng tin v card mng

Thng tin v card ho

Thng tin v mn hnh

Thng tin v giao thc v cu hnh mng nu kt ni mng

Thng tin v cc thit b ngoi.

C th chn nhiu phng n ci t nh ci t t a mm, t a cng, t a CD


Rom hoc qua mng. Ti liu ny chn hng dn qu trnh ci t phin bn 7.0 t
a CDRom. Yu cu my ci t c kh nng khi ng (boot) t a CD-Rom
(c h tr hu ht trong cc my tnh hin nay).
Sau y l cc bc ci t c th. Khi kt thc bc trc chng trnh ci t t
ng chuyn sang bc sau. Mt s bc ci t cho php quay li bc trc bng
cch chn Back.

1. a a CD Rom Redhat vo a. Khi ng li my (lu phi m bo


my c kh nng khi ng t a CD-Rom. Chn ch ci text
2. Chn ch ci text
boot: text

3. La chn ngn ng
Chn ngn ng mc nh l English

4. La chn kiu bn phm


La chn kiu th hin bn phm l us.

5. Mn hnh cho mng


Sau khi la chn xong ngn ng ci t, bn phm v phng php ci t, mn
hnh cho mng xut hin. Bm OK tip tc.

6. Chn kiu ci t

Hp hi thoi cho php bn chn la kiu ci t h iu hnh Linux RedHat nh mt


Workstation, Server, Custom hay ch l nng cp phin bn ci t.
Chn kiu ci t l Custom System. Chn OK tip tc.

7. La chn phn mm phn chia a


Linux a ra cho bn hai phn mm phn chia a dnh cho Linux: l Disk
Druid v fdisk. Chn Disk Druid tip tc.

Bn cn to 2 partition install RedHat, nh ng delete nhng partition c sn


trong my bn (nu khng th d liu c sn s mt, tt nht l bn nn sao lu d liu
trc cho bo m!). Dng cc chc nng add, edit, delete to 1 partition vi type l

Linux swap, dung lng bng dung lng RAM ca my. Tip theo to mt partion
tn "/" vi loi Linux native, dung lng t nht l 500Mb (tu theo dung lng cn
trng ca a bn, nu bn mun install trn gi RedHat th cn n khong
2288MB). Hy yn ch l nu bn to sai (partition kch thc qu ln, ln hn dung
lng cn trng ca a) th RedHat s khng cho bn i tip. Ch cn to 2 partition
ny l ri. Khi no bn click c Next th coi nh l thnh cng!

to mt partition mi, chn Add. Mn hnh Edit New Partition xut hin

Mt s vn c th xy ra khi thm mt partition

8. Hiu chnh mt partition


Chn mt partition cn hiu chnh, nhn Edit, mn hnh mi s cho php bn thay i
cc thng s ca partition chn nh kch thc, kiu, ...

9. Hon thnh vic phn chia a


Chng trnh ci t s yu cu bn format li phn vng va to, ch khng chn
nhng phn vng d liu quan trng i vi bn.

10. Khi to LILO


LInux LOader (LILO) cho php bn xc nh thi gian khi to Linux hay mt h
iu hnh no khc. Khi khi to cho server, LILO c cu hnh t ng trn Master
Boot Record [MBR]. If you are performing a custom-class installation, the LILO
Installation dialogs let you indicate how or whether to install LILO.
Vic chn LILO trong ca s LILO Configuration cho php bn thm cc tu chn
mc nh vo lnh boot LILO v cc ty chn ny c chuyn cho Linux kernel ti
thi im boot.

.
Ch rng nu bn chn Skip, bn s khng th boot h thng Red Hat Linux mt
cc trc tip m s phi s dng phng php boot khc (boot disk chng hn) Bn
ch nn la chn cch ny khi bn chc chn c cch khc boot h thng Red
Hat Linux ca bn.
Dng la chn t boot loader ti Master Boot Record khi to ngay h iu hnh
Linux khi bt my.

Mn hnh ny cho php bn t tn cho my tnh ca mnh. Bn c th thay i


hostname sau khi ci t xong bng lnh hostname newname, trong newname
l tn m bn mun t.

11. Cu hnh kt ni mng


Nu my khng c card mng, s khng nhn c mn hnh ny. Thc hin cu hnh
mng cho my nh sau
B la chn config using DHCP (ch cp pht a ch IP ng), nhp a ch IP,
subnetmask theo hng dn ca gio vin hng dn thc hnh.

12. Cu hnh firewall: chn Medium


13. Cu hnh chut

Thng thng th chng trnh ci t s t pht hin loi chut ca my bn. Nu


khng, bn hy chn loi chut ph hp trong danh sch, v nu bn khng bit chut
ca mnh loi g th c yn, click Next tip tc.

La chn Emulate 3 Buttons cho php bn s dng chut ca bn nh chut c 2 nt


trong dng nt gia bng cch bm hai nt cng mt lc.Nu bn c chut hai nt,
bn hy s dng chc nng ny v XWindow tr nn d dng nht vi khi chut c ba
nt.

14. Cu hnh Time Zone

Nu bn mun thit lp ng h cho CMOS theo gi GMT (Greenwich Mean Time),


chn Hardware clock set to GMT. Tuy nhin, nu my tnh ca bn s dng mt h

iu hnh khc th vic thit t ng h theo gi GMT s khin cho h iu hnh


khc hin th sai thi gian.
t gi VN, chn Asia/Saigon
thay i cu hnh v thi gian sau khi bn ci t, bn c th dng lnh
/usr/sbin/timeconfig

15. Thit lp mt khu root


Hp thoi Root Password buc bn phi thit lp mt mt khu root cho h thng
ca bn. Bn s s dng mt khu ny log vo h thng v thc hin cc chc nng
qun tr h thng ca mnh.

16. To user
Bn c th to ti khon user cho chnh mnh s dng hng ngy. User root
(superuser) c quyn truy nhp vo h thng nhng rt nguy him, ch nn s
dng bo dng hay qun tr h thng.
Mt khu ca user c phn bit ch hoa ch thng v t nht l 6 k t.

15. Bn c th to tip nhiu user theo ca s sau:

16. Cu hnh xc thc ngi dng


Do bn khi to theo ch custom, bc ny cho php bn cu hnh cch m h iu
hnh linux ca bn s dng xc thc mt khu.
La chn Use Shadow Passwords: mt khu ca bn ng nh nm trong tp
/etc/passwd s c thay th bng th mc /etc/shadow v ch c truy nhp bi
superuser (root)
Tu chn Enable MD5 Passwords -- cho php m ha mt khu theo chun MD5.

17.
Tip theo, bn c th chn la cc gi tin ci t. Bn nn chn cc phn
mm, dch v hay s dng nht ci t sn trn my khi khi ng. Tuy nhin, tuy
nhin, bn cng c th ci t sau ny tu theo nhu cu s dng. Cc gi tin ny nu
c ci t s c ghi li trong tp /tmp/install.log sau khi khi to li h thng ca
bn.

C th ci t tng gi tin nh hn bng cch chn Select individual packages v


nhn OK.

18. Cu hnh Video Adapter


Chng trnh ci t s t pht hin video card khi to. Nhn OK tip tc.

19. Bt u khi to cc gi tin:


Qu trnh khi to s c ghi vo tp /tmp/install.log. Nhn OK tip tc.

20. To a khi to cho h thng (boot disk): Chn No v tip tc.

21. Hon thnh ci t


Nh vy l bn hon thnh xong cng vic ci t h iu hnh RedHat 7.0. Bn
hy rt a ra khi CD v nhn OK khi ng li h thng.

2. Giao tip trn mi trng Linux


2.1.

Trnh son tho vi

Chng trnh vi l mt chng trnh son tho mnh m gn nh chc chn c tm


thy trn tt c cc h iu hnh h UNIX bi kch thc v kh nng ca n.vi
khng i hi nhiu ti nguyn, thm vo l cc chc nng son tho c bn. vi c
th tm kim, thay th, v kt ni cc file,v n c ngn ng macro ca chnh n, cng
nh mt s cc c im b sung.C hai ch trong vi:
Ch th nht l ch input. Trong ch ny, vn bn c a vo trong ti
liu, bn c th chn hoc b sung vn bn.
Ch th hai l ch dng lnh. Khi ch ny, bn c th dch chuyn trn ti
liu, trn cc dng, tm kim, Bn c th thc hin tt c cc chc nng ca vi t
ch dng lnh ngoi tr vic nhp vo vn bn. Vn bn ch c th c vo trong
ch input.
Khi vi khi ng, n ch dng lnh. bn c th chuyn i t ch dng lnh
sang ch input bng cch s dng mt trong cc cu lnh sau: [aAiIoOcCsSR].
tr li ch dng lnh bn chn phm ESC. Hy xem cc cu lnh v tc dung ca
cc cu lnh trong ch dng lnh.

Cu lnh

Tc dng

Ctrl + D

Chuyn ca s xung bng mt na mn hnh

Ctrl + U

Chuyn ca s ln bng mt na mn hnh

Ctrl + F

Dch chuyn ca s ln pha trc bng mt mn hnh

Ctrl + B

Dch chuyn ca s v pha sau mt mn hnh

k hoc up arrow

Dch chuyn con tr ln mt dng

j hoc down arrow

Dch chuyn con tr xung mt dng

l hoc right arrow

Dch chuyn con tr sang phi mt k t

h hoc left arrow

Dch chuyn con tr sang tri mt k t

Return

Dch chuyn con tr n v tr bt u dng tip theo

Dch chuyn con tr n v tr bt u ca dng trc

dch chuyn con tr n v tr bt u ca t tip theo

dch chuyn con tr n v tr bt u ca t trc

^ hoc 0

dch chuyn con tr n v tr bt u ca dng hin ti

dch chuyn con tr n v tr kt thc ca dng hin ti

i,a

Chn vn bn ngay trc/sau v tr con tr

M mt dng mi ngay sau dng hin ti

M mt dng mi ngay trc dng hin ti

Xa k t sau con tr

dw

Xo mt t (bao gm c k t trng ngay sau n)

Xo t v tr con tr n kt thc dng

d^

Xo t v tr bt u dng n v tr k t trng hay k t bn


tri con tr

Hu b thay i trc

/pattern

Tm xu pattern. Theo hng tin.

?pattern

Tm xu pattern, theo hng li v u vn bn.

n,N

Lp li vic tm kim theo cng hng / ngc hng

p, P

Dn on vn bn va xo vo trc / sau con chy

Lp li cu lnh cui.

dd

Xa dng c con tr chy

:w

Ghi li tt c cc thay i ca file hin ti v tip tc son tho

:q!

Kt thc, khng lu tr bt k thay i

:ZZ

Lu thay i ca file hin ti v kt thc.

2.2.

Tin ch mc.

Mt khi ngi dng c c cm vi giao din dng lnh ca DOS, h cho rng cc
lnh ca Linux cng kh hc. Trong thi k ca DOS trc Windows, vic nh
hng cc tp tin thng qua h thng menu v cc chng trnh qun l bt u pht
trin mnh, cho d chng ch da trn ch text. Mt trong s chng trnh thng
dng nh vy l Norton Commander.
Linux cng c mt chng trnh tin ch vi chc nng tng t nh vy gi l
Midnight Commander (MC). Bn khng phi mt cng tm kim MC, phn ln cc
nh phn phi Linux u cung cp km theo HH v n c ci trong /usr/bin/mc.
Chng trnh chy c hai ch : text mode v ha (Xterm di X Windows).
Sau khi nhp lnh "mc" chy chng trnh, bn s nhn thy mt ca s c chia
i nh trong hnh 1. Midnight Commander hu nh l bn sao ca Norton

Commander. Phn ln cch trnh by, phm tt v cc c tnh u ging NC. S


dng mouse cng c h tr ch text.
Nu driver mouse c ti khi khi ng (phn ln cc nh cung cp Linux u lm
nh vy), bn c th dng mouse truy cp menu v cc tp tin. Nhn vo file thc
thi chy, nhn vo th mc chuyn vo , hoc nhn vo tp tin vi phn ui
m rng m n vi chng trnh tng ng. Bng cch nhn nt phi chut vo
mt tp tin, bn chn hoc b chn tp tin . Bn c th thc hin tm tn file bng
nhn t hp phm Ctrl-S v trn file vi Alt. Sau y l nhng phm lnh c bn:

F1: Tr gip
F2: Menu ngi dng
F3: Xem cc tp tin c chn
F4: Hiu nh tp tin
F5: Copy tp tin
F6: i tn, chuyn tp tin
F7: To th mc
F8: Xo tp tin
F9: Gi menu th xung (pull-down)
F10: Thot khi Midnight Commander

Midnight Commander h tr mt s h thng tp tin o, ngha l bn c th xem file


khng ch trn cc a cng cc b. Bn cng c th xem cc kiu tp tin nn khc
nhau, nh .tar, .tgz, .zip, .lha, .rar, .zoo v thm chi c .rpm v .deb (cc dng thc tp
tin nn ca Red Hat v Debian. Vic xem cc tp tin c thc hin thng qua h

thng tp tin mng ca UNIX (UNIX Network File System - NFS), Midnigh
Commander c th hot ng nh mt my khch ftp bng cch a lin kt FTP vo
menu.

C th hi phc cc tp tin xa trong Linux?


Midnight Commander cho thy rng vn chng ta ni n trong phn trc (PC
World VN s 7/1999 trang 95) - khng c cch no hi phc c cc tp tin b xo
trong Linux - l khng hon ton chnh xc. Nu bn s dng phn m rng ext2, h
thng tp tin c bn trong Linux v cu hnh h thng cho php hi phc tp tin b
xa th trn thc t bn c th truy cp vo cc file xa.

Vi Midnight Commander, bn nhp dng "undel:/" trc tn tp tin, v d


"undel:/dev/hda1". Sau bn c th xem cc tp tin b xa (hnh 3). Chn tp tin bn
mun hi phc bng chut hay bn phm v dng F5 copy chng vo th mc ch
no . Tr ngi duy nht y l thng tin v tn file b mt, bi vy bn phi c
xc nh c tp tin no bn mun hi phc.

Midnight Commander bao gm c chng trnh xem v son tho tp tin. C hai u
c th lm vic vi file vn bn v file nh phn (text v binary) v hin th cc k t
8-bit ngoi 128 k t m ASCII.
Trnh son tho c giao din menu v ging Windows nhiu phm son tho c bn:
nhn Shift v phm mi tn chn text, nhn Ctrl-Ins copy text v Shift-Ins
dn text. Bn c th ghi macro vi Ctrl-R cng nh thc hin nhng tm kim theo t
thng thng.

Midnight Commander c mt s tnh nng m DOS khng c. Bn c th thay i


quyn s hu tp tin v xem chi tit v quyn truy cp tp tin. MC cn c kh nng
qun l quy trnh, cho php bn xem nhng qu trnh ang c thc hin ch
nn, v bn c th dng chng, khi ng li hoc tt chng hon ton.
Midnight Commander c rt nhiu tnh nng m khng th lit k ht trong bi ny.
Trn Internet c nhiu Web site dnh ring cho Midnight Commander, chng hn nh
www.gnome.org/mc, bn c th tham kho chi tit hn.
2.3.

Cc cu lnh c bn trn Linux

2.3.1. Hiu bit v cc cu lnh trong Linux


2.3.1.1.

S dng cc k t i din

Khi bn s dng cc cu lnh v file v th mc, bn c th s dng cc k t c


bit c gi l cc k t i din xc nh tn file, tn th mc. V d, a ra
danh sch tt c cc file c tn kt thc bng .c, bn s dng cu lnh sau:
ls *.c
K t * l mt k t i din, khi shell thng dch, n s thay * bng tt c cac tn file
c kt thc bng .c. Bng bn di ch ra mt s cc k t i din thng c s
dng:

Tng ng vi th t bt k ca mt hay nhiu k t

Tng ng vi mt k t bt k

[]

Tng ng vi mt trong nhng k t trong ngoc hoc gii hn

V d:
Jo*

: Cc file bt u vi Jo

Jo*y

: Cc file bt u vi Jo v kt thc vi y

Ut*l*s.c

: Cc file bt u vi Ut, cha mt k t l v kt thc vi s.c

?.h

: Cc file bt u vi mt k t n, theo sau bi .h

Doc[0-9].txt

: Cc file c tn Doc0.txt, Doc1.txt .Doc9.txt

Doc0[A-Z].txt

: Cc file c tn Doc0A.txt, Doc0B.txt Doc0Z.txt

2.3.1.2.

C bn v cc biu thc chnh quy

Cc biu thc chnh quy c s dng bi phn ln cc cu lnh. Chng cung cp


mt cch thun tin v ng nht xc nh cc mu ph hp . Chng tng t vi
cc k t i din, nhng chng mnh hn rt nhiu. Chng cung cp mt phm vi
rng cc mu la chn. cc k t c bit c a ra di y l cc biu thc
chnh quy thng c s dng:

K t

ngha

Tng ng vi mt k t n bt k ngoi tr dng mi

Tng ng vi khng hoc nhiu hn cc k t ng trc

Tng ng vi bt u ca mt dng

Tng ng vi kt thc mt dng

\<

Tng ng vi bt u mt t

\>

Tng ng vi kt thc mt t

[]

Tng ng vi mt trong cc k t bn trong hoc mt dy cc k t

[^]

Tng ng vi cc k t bt k khng nm trong ngoc

Ly k hiu theo sau du gch ngc

Trc tin, trong mt biu thc chnh quy, mt k t bt k khng c ngha ring
cho chnh n. V d tm kim cc dng cha ch foo trong file data.txt s dng
cu lnh sau:

grep foo data.txt


tm kim cc dng bt u bng t foo, ta s dng cu lnh:
grep ^foo data.txt
Vic s dng du trch dn n ni cho shell nguyn cc k t v b qua chng
trong chng trnh. Vic s dng du trch dn n l cn thit khi s dng cc k t
c bit.
grep hello$ data.txt
Cc dng bt k kt thc vi chui hello c tr li. tm kim mt mu bt u
bng mt t, s dng \<. V d:
grep \<ki data.txt
biu thc bn trn s cho php tm kim cc t bt u bng ki trong file data.txt.
tm kim mu wee kt thc ca mt t, s dng:
grep wee\> data.txt
bng bn trn, ch rng du chm s ph hp vi mt k t bt k tr dng mi.
iu ny c th c thao tc, nu chng ta tm kim tt c cc dng cha k t C
c theo sau bi hai k t v kt thc bi k t s, biu thc chnh quy c th l:
grep C..s data.txt
Biu thc ny c th c cc mu ph hp nh Cats, Cars v Cris nu chng c
cha trong file data.txt. Nu bn mun xc nh mt dy cc k t, s dng mt du
gch ni phn bit k t bt u v k t kt thc ca dy. Khi bn xc nh mt dy,
th t phi ging nh m ASCII. V d, tm kim tt c cc dng cha mt k t
B theo sau bi mt k t thng s dng:
grep B[a-z] data.txt
Cng c th xaca nh nhiu gii hn trong cng mt mu:

grep B[A-Za-z] data.txt


2.3.2. Cc cu lnh v th mc v file

Lnh cat

C php: cat file [>|>] [destination file]


Lnh cat s hin th ni dung ca mt file ra thit b ra chun. N thng hu ch
kim tra ni dung ca mt file bng s dng cu lnh cat. i s m bn a vo lnh
cat l file bn mun xem. xem ton b ni dung ca mt file:
cat name
Lnh cat cng c th trn nhiu file ang tn ti vo mt file:
cat name1 name2 name3 > allnames
V d ny s kt hp cc file : name1, name2 v name3 cho file cui cng allnames.
Th t ca vic trn c thit lp bi th t ca cc file c a vo trn dng
lnh. S dng lnh cat, chng ta c th b sung mt file vo mt file khc ang tn
ti. Trong trng hp bn qun thm name4 vo cu lnh trc, chng ta vn c th
nhn c kt qu mong mun bng cch thc hin lnh:
cat name4 > allnames
Lnh ny s b sung ni dung ca file name4 vo allnames

Lnh chmod

C php: chmod [-R] permission-mode file hoc th mc


Lnh chmod dng thay i quyn truy cp file hoc th mc. V d:
chmod myscript.pl
thay i quyn ca mt th mc v tt c cc file, cc th mc con ca th mc
s dng cu lnh:

chmod R 744 public_html

Lnh chown

C php:

chown [ -fhR ] Owner [ :Group ] { file | th mc }

Lnh chown thay i quyn s hu file hay th mc. Gi tr ca khai bo Group c


th la mt ID ca nhm ngi s dng hoc tn ca nhm ngi s dng c tm
thy trong file /etc/group. Ch ngi s dng root mi c quyn thay i quyn s
hu i vi file. Chi tit v cc tu chn c ch ra bn di:
-f : ngn chn tt c cc thong bo li tr cc thong bo s dng
-h: thay i quyn s hu ca lien kt tng trng nhng khng thay i quyn s
hu ca file m c ch n bi lien kt tng trng .
-R: thay i quyn s hu ca th mc, cc file v cc th mc con bn trong th
mc hin ti c ch ra

Lnh clear

Xo mn hnh, tr li du chc dng lnh pha trn ca mn hnh


clear

lnh cmp

C php: cmp [ -ls ] file1 file2


Lnh ny so snh ni dung ca hai file. Nu khng c s khc nhau no, lnh cmp s
kt thc mt cch yn lng, tu chn l s n ra s byte v cc gi tr khc nhau gia
hai file. Tu chn s khng hin th ci g c, n ch tr li trng thi ch ra rng s
tng ng gia hai file. Gi tr 0 c tr li nu cc file ging ht nhau, gi tr
bng 1 nu hai file khc nhau v ln hn 1 nu li xut hin khi thc hin cu lnh.

Lnh cp

C php: cp [ -R ] file_hoc_th_mc file_hoc_th_mc


Lnh cp s sao chp mt file t th mc ngun n th mc ch c a vo.
sao chp ton b cc file v cc th mc con bn trong th mc mong mun, bn s
dng cu lnh cp vi tu chn R

Lnh du

Lnh ny tng kt vic s dng a. Nu bn xc nh mt th mc, lnh du s bo


co vic s dng a cho chnh cc th mc .

C php: du [ -ask ] tn_file


Tu chn a s a ra mn hnh kch thc ca mi th mc v file
Tu chn s s ch in ra tng cng
Tu chn k s in ra tt c cc kch thc file theo kilobytes

Lnh file

C php: file filename


Cu lnh xc nh kiu ca file. Nu file khng phi l file thng thng, kiu ca file
c xc nh.

Lnh find

Cu lnh find tm cc file v cc th mc.


C php : find [path] [-type fd] [-name mu] [-atime [+-] s_ngy] [-exec cu_lnh {}
\;] [-empty].
V d:
find . type d
Cu lnh tr li tt c cc th mc con trong th mc hin ti. Tu chn type xc
nh kiu, d cho cc th mc, f cho cc file hay l cho cc lien kt.
find . type f name *.txt
Lnh ny s tm tt c cc file vn bn c phn m rng .txt trong th mc hin ti
v c trong cc th mc con.
find . type f name *.txt exec grep l magic {} \;
Cu lnh ny s tm kim tt c cc file vn bn (kt thc vi phn m rng .txt) trong
th mc hin ti v cc th mc con c cha t magic.
find . type f empty

Hin th tt c cc file rng trong th mc hin ti.

Lnh grep

C php: grep [viw] mu file


Lnh grep cho php bn tm kim mt hoc nhiu file c cc mu k t c bit. Mi
dng ca mi file cha cc mu c hin th trn mn hnh. Cu lnh grep hu ch
khi bn c nhiu file v bn mun tm ra file cha t hoc cu xc nh. S dng tu
chn v, bn c th hin th cc file khng cha mt mu. V d, chn cc dng
trong data.txt khng cha t the ta thc hin:
grep vw the data.txt
nu tu chn w khng c xc nh th bt k cc t cha the u ph hp nh
together. Tu chn w c xc nh buc mu phi l ton b mt t. Cui cng ,
tu chn i b qua s khc nhau gia cc k t ch hoa v k t ch thng khi tm
kim mu.

Lnh head

C php: head [-count | -n number] filename


Cu lnh ny s hin th vi dng u tin ca mt file. Bi mc nh, 10 dng u
ca mt file c hin th. Tuy nhin, bn c th s dng cc tu chn xc nh s
dng hin th. V d:
head -2 doc.txt
s hin th hai dng u tin.

Lnh ln

C php: ln [-s] file_ngun ch


Lnh ln to cc lin kt cng v mm. Cc lin kt cng c to s dng lnh ln
khng c tu chn s. V d:
ln ./www ./public_html

Mt lien kt cng c hn ch, n khng th to lin kt n mt th mc khc, v mt


lin kt cng khng th lin kt n mt file trn mt h thng file khc. S dng tu
chn s bn c th to mt lin kt mm, loi b cc gii hn ny.
ln s /dev/fs02/jack/www /dev/fs01/foo/public_html
y chng ta to mt lin kt mm gia th mc www trn h thng file 2 v
mt file mi c to trn h thng file 1.

Lnh locate

C php : locate t_kho


Cu lnh locate tm ng dn n mt file c bit hay mt cu lnh. Lnh locate s
tm kim chnh xc hay mt phn ca chui ph hp. V d:
locate foo
kt qu tm kim s a ra cc file c tn cha t kho foo theo ng dn tuyt i
hoc s khng a ra kt qu nu khng c tn file nh vy.

Lnh ls

Lnh ls cho php bn a ra danh sch cc file v cc th mc con.


C php : ls [-1aRl] file_hoc_th_mc
Khi s dng tu chn -1 , n ch hin th tn file v tn th mc con ca th mc hin
ti. Khi chn tu chn l, mt danh sch cc file v th mc con ca th mc hin ti
c hin th vi y cc thng tin v file v th mc. Tu chn a cho php bn
hin th tt c cc file v th mc (k c cc file n, tn file bt u bng du chm)
trong th mc hin ti. Tu chn R s hin th tt c cc file v cc th mc con bn
trong n nu c.

Lnh mkdir

C php: mkdir th_mc


to mt th mc, s dng cu lnh mkdir. Ch c 2 gii hn khi chn tn th mc,
l tn ca th mc c th ln ti 255 k t v tn th mc c th cha bt k k t
no tr k t /.V d:
mkdir dir1 dir2 dir3

Lnh trn to ra ba th mc, nm bn trong th mc hin ti.

Lnh mv

C php : mv [-if] file_ngun file_ch


S dng lnh mv dch chuyn hay i tn cc file hay cc th mc. Cu lnh thc
hin vic dch chuyn hay i tn ph thuc vo file_ch c l mt th mc hay
khng. minh ho, chng ta s i tn mt th mc foo thnh foobar:
mv foo foobar
Bi v foobar cha tn ti, foo s c i tn thnh foobar. Nu cu lnh sau c
thc hin:
mv doc.txt foobar
v foobar tn ti, vic dch chuyn file s c thc hin sau . Tu chn f s
xo cc file ch ang tn ti v khng bao gi nhc ngi s dng. Tu chn i s
nhc ngi s dng c ghi hay khng nu file_ch tn ti.

Lnh pwd

C php: pwd
Cu lnh ny hin th tn th mc hin ti bao gm c ng dn tuyt i. V d:
pwd
Trn mn hnh hin th :
/home/trantu

Lnh rm

C php: rm [-rif] th_mc/file


xo th mc hoc file, s dng cu lnh rm. bn c th xo nhiu file s dng k
t i din hoc g vo tn cc file. V d:

rm doc1.txt doc2.txt doc3.txt


Tng ng vi:
rm doc[1-3].txt
rm l cu lnh rt mnh, hy cn thn khi s dng lnh ny v bn c th nhm v xo
i cc file quan trng. Nu cha chc chn, bn c th s dng tu chn i, h thng
s nhc li cho bn xc thc mi ln xo mt file. Nu nh chc chn file cn xo,
bn c th chn tu chn f khng phi nhn cc thng tin nhc bn xc thc. Tu
chn r s cho php bn xo ton b cc th mc con.

Lnh tail

C php: tail [-count | -fr] tn_file


Cu lnh tail hin th phn cui ca mt file, mc nh n s hin th 10 dng cui
cng ca file. hin th 50 dng cui cng ca file doc.txt, bn c th s dng cu
lnh:
tail -50 doc.txt
Tu chn r s thc hin cng vic ngc li, mc nh n s hin th tt c cc dng
tr 10 dng cui cng. Tu chn f hu ch khi bn ang gim st mt file. Vi tu
chn ny, tail s ch cho d liu mi c ghi vo file. Khi d liu mi c thm
vo file, tail s hin th d liu ln mn hnh. dng lnh tail khi ang gim st file,
chn t hp phm Ctrl + C bi v lnh tail khng t dng c.
2.3.3. Cc cu lnh nn d liu

Lnh compress

C php: compress [ -v ] file


Cu lnh compress s c gng gim kch thc ca mt file s dng. Cc file c
nn s c thay th bi mt file c phn m rng .Z. Ty chn v s hin th phn
trm dung lng gim ca mt file c nn v s ni cho bn tnca file mi:
compress v inbox
trn mn hnh s hin th

inbox: Compression: 37.20% - replaced with inbox.Z

Lnh gunzip

C php: gunzip [-v] files


gii nn cc file v dng nguyn bn , s dng lnh gunzip, s c gng gii nn
cc file c phn m rng: .gz, -gz, .z, -z, _z, .Z, hoc tgz. Ty chn v s hin th kt
qu p khi gii nn cc file. V d:
gunzip v README.txt.gz

Lnh gzip

C php: gzip [-rv9] file


Lnh gzip l mt chng trnh nn khc. N c bit n l chng trnh nn c t l
nn tt nht. cc file c nn bi lnh gzip s c thay th bi cc file c phn m
rng .gz. Ty chn 9 c tc nn tt nht. Ty chn v cho php hin th p trn
mn hnh. Kch thc, tng s v t l nn c a ra danh sch cho mi file. Ty
chn r s nn tt c cc file trong mi th mc theo cng mt cch.

Lnh tar

C php: tar [c] [x] [v] [z] [f tn_file] tn_file_hoc_th_mc


Lnh tar cho php bn nn nhiu file v th mc vo mt file .tar. N cng cho php
bn gii nn cc file v cc th mc t mt file nn. V d:
tar cf source.tar *.c
Cu lnh ny s to mt file source.tar, cha tt c cc file m ngun C (c phn m
rng .c) trong th mc hin ti.
tar cvf source.tar *.c
Ty chn v y cho php bn xem cc file c nn
tar cvzf backup.tar.gz important_dir

y, tt c cc file v cc th mc con ca th mc important_dir c nn trong


mt file c gi l backup.tar.gz. Ch rng file ny cng c nn do c ty chn
z , v do kt qu l file c phn m rng l .gz. Thng thng phn m rng .tar.gz
c vit ngn thnh .tgz. gii nn cc file , v d nh backup.tar , bn s dng
cu lnh:
tar xf backup.tar
gii nn mt file c phn m rng .tgz hay .tar.gz, bn thc hin cu lnh sau:
tar xzf backup.tgz

Lnh uncompress

C php: uncompress [ -v ] file


Khi mt file c nn s dng cu lnh compress, gii nn bn s dng cu lnh
uncompress. Lnh uncompress gii nn cc file c phn m rng .Z, v vy c php
ca n tng t nh lnh compress
uncompress v inbox.Z

Lnh unzip

C php: unzip file


Lnh ny s gii nn cc file c phn m rng .zip. Cc file ny c th c nn vi
lnh zip.

Lnh zip

C php : zip [-ACDe9] file


y l chng trnh nn file theo nh dng ni ting tng thch vi nhiu h iu
hnh. Cc file c nn vi lnh zip c phn m rng .zip.

Lnh mount

C php: mount a [-t fstype] [-o option] device directory


Lnh mount c s dng gn cc thit b vi h thng, cc ty chn thng thng
thng c trong file /etc/fstab. V d:

/dev/hda6 /intranet ext2 defaults 1 2


Nu dng bn trn c tm thy trong /etc/fstab, bn c th gn h thng file c
lu trong phn vng /dev/hda6 nh sau:
mount /intranet
Cng mt h thng file, cu lnh sau y l tng t:
mount t ext2 /dev/hda6 /intranet
Ty chn t c s dng xc nh kiu file h thng. gn tt c cc h thng
file c trong /etc/fstab s dng ty chn a. V d:
mount a t ext2
Thng thng ngi s dng chn ty chn o l ro (ch c) hoc rw (c ghi). V
d:
mount t ext2 o ro /dev/hda6 /secured

Lnh umount

C php : umount a [-t fstype]


Lnh umount ngc li vi lnh mount. V d
umount /cdrom
2.3.4. Cc cu lnh qun l tin trnh

Lnh bg

C php: bg
y l kch bn shell c xy dng sn. a mt tin trnh ang chy v chy sau
hu cnh (tin trnh nn).

Lnh fg

C php: fg [%job-number]
Cu lnh ny cho php bn chuyn mt tin trnh nn ln chy trn tin cnh.
Nu bn chy cu lnh ny khng c bt k i s no, n s a cu lnh cui cng
sau hu cnh ln hin th. V d, nu c hai cu lnh chy sau hu cnh, bn c th
chuyn cu lnh th nht ln chy trn tin cnh bng cu lnh:
fg %1

Lnh jobs

C php: jobs
Lnh ny cho php bn hin th cc tin trnh nn ang chy. Ngoi ra cn mt s
lnh s c trnh by trong cc phn sau.

3. Gii Thiu H Thng Tp Tin, Th Mc


3.1. Gii thiu
Trong linux file c t chc thnh cc th mc, theo m hnh phn cp. Tham chiu
n mt file bng tn v ng dn. Cc cu lnh thao tc file cho php thc hin cc
chc nng nh dch chuyn, sao chp ton b th mc cng vi cc th mc con cha
trong n
C th s dng cc k t, du gch di, ch s, du chm v du phy t tn
file. Khng c bt u mt tn file bng du chm hay ch s. Nhng k t khc
nh /, ?, *, l k t c bit c dnh ring cho h thng. Chiu di ca tn file
c th ti 256 k t.
Tt c cc file trong linux c chung cu trc vt l l chui cc byte (byte stream).
Cu trc thng nht ny cho php linux p dng khi nim file cho mi thnh phn d
liu trong h thng. Th mc cng nh cc thit b c xem nh file. Chnh vic
xem mi th nh cc file cho php linux qun l v chuyn i d liu mt cch d
dng. Mt th mc cha cc thng tin v th mc, c t chc theo mt nh dng
c bit. Cc thnh phn c xem nh cc file, chng c phn bit da trn kiu
file: ordinary file, directory file, character device file, v block device file.
3.1.1. Th mc ch
Sau khi ng nhp h thng, ngi dng s ng th mc ch. Tn ca th mc ny
ging vi tn ti khon ng nhp h thng. Cc file c to khi ngi dng ng
nhp c t chc trong th mc ch.
3.1.2. Cc th mc h thng
Th mc root, l gc ca h thng file ca Linux, cha mt vi th mc h thng.
Th mc h thng cha file v chng trnh s dng chy v duy tr h thng.
Biu din cc th mc nh sau:
/(root)

sbin

usr

dev

var

etc

home

M t th mc
Th mc

Chc nng

Bt u cu trc file, gi l th mc gc (root)

/home

Cha th mc gc (home) ca ngi dng

/bin

lu ch tt c cc cu lnh chun v cc chng trnh tin ch

/usr

cha cc file, cu lnh c h thng s dng, th mc ny c chia


thnh cc th mc con khc

/usr/bin

Cha cc cu lnh hng ngi dng v cc chng trnh tin ch

/usr/sbin

Cha cc cu lnh qun tr h thng

/usr/lib

Cha th vin cho cc ngn ng lp trnh

/usr/doc

Cha ti liu ca linux

/usr/man

Cha cc file ch dn cho cc cu lnh (man)

/sbin

Cha cc file h thng khi ng h thng

/dev

Cha giao din cho cc thit b nh u cui v my in

/etc

Cha file cu hnh h thng v cc file h thng khc

3.2.

Cc quyn truy cp file/th mc

Trong Linux, mi file hay th mc c kt hp vi mt ngi s dng v mt nhm


ngi s dng. Hy xem mt v d:
-rwxr-x-r-- 1 trantu trantu

191 Apr 14 14:55 .bash_profile

Dng bn trn c to bi lnh ls l .bash_profile trn h iu hnh Linux. Lnh ls


a ra danh sch cc file v th mc. Ty chn l a ra danh sch y cc thng
tin v file .bash_profile. Bng bn di m t cc kiu thng tin a ra:

Kiu thng tin

Thng tin kt xut

Quyn truy cp file

-rw-rw-r--

S lin kt

Ngi s dng (s hu file)

Trantu

Nhm s dng

Trantu

Kch thc file (theo bytes)

191

Ngy sa i sau cng

Apr 14

Thi gian sa i sau cng

14:55

Tn file

.bash_profile

y, ngi s dng l trantu. y l ngi s dng thng xuyn, c quyn thay


i cc quyn try cp i vi file ny. Ch c mt ngi s dng khc c quyn thay
i thuc tnh file ny, l superuser. Nhm s dng file ny l trantu, bt k nhng
ngi s dng no thuc nhm trantu cng c quyn c, v thc thi da vo quyn
ca nhm c t bi ngi s hu. Khi bn to mt file trn h thng Linux, h
thng s mc nh ngi s hu file ny c tn l tn ng nhp ca bn v c tn
nhm ging nh tn ca ngi s hu. Mt ngi s dng thng thng khng th
gn li quyn s hu mt file hay th mc cho ngi khc. V d, bn khng th to
mt file vi ngi s dng kabid ri sau gn li quyn s hu cho ngi khc c
tn l sheila bi l do bo mt. Nu mt ngi s dng thng thng c quyn gn
quyn s hu file cho ngi khc, thi mt ai cng c th to mt chng trnh xu
nh xa cc file, v thay i quyn s hu cho superuser, v khng bit iu g s xy
ra. Ch c ngi superuser mi c th gn li quyn s hu file hay th mc cho
ngi khc.
3.2.1. Thay i quyn s hu file, th mc s dng lnh chown
Ngi s dng superuser c th thay i quyn s hu file, th mc cho mt ngi s
dng khc. thay i quyn s hu s dng cu lnh sau:
chown

newuser

file hoc th mc

V d:
chown trantu example.txt
Cu lnh ny lm cho ngi s dng trantu c quyn s hu file example.txt
Nu superuser mun thay i nhm cho mt file hoc th mc, ngi c th s
dng cu lnh chown nh sau:

chown

newuser.newgroup

file hoc th mc

V d
chown trantu.admin example.txt
Cu lnh trn khng ch thay i quyn s hu file cho trantu m cn t li nhm s
dng file l admin. Nu superuser mun thay i ngi s hu v nhm s dng cho
tt c cc file trong mt th mc, ngi c th s dng cu lnh chown vi ty
chn R. V d
chown R trantu.admin /home/trantu/
3.2.2. Thay i nhm s dng file/th mc vi lnh chgrp
Cu lnh chgrp cho php bn thay i quyn s dng file hay th mc ca mt nhm,
ch nu bn thuc v c hai nhm (nhm c v nhm mi). V d:
chgrp httpd *.html
Lnh trn s thay i nhm s dng cho tt c cc file c phn m rng html. Bn ch
c th thay i c nu bn thuc nhm httpd. Ging nh lnh chown, lnh chgrp
cng c ty chn R thay i quyn vi nhiu file hay th mc.
3.2.3. S dng s theo h c s 8 tng ng vi thuc tnh truy cp
H c s 8 s dng 8 s (0-7), v mi s tng ng vi 3 bit (theo h nh phn). Bng
bn di ch cho bn thy s tng ng v quyn vi s h c s 8.

S th 1

Gi tr c
s 8

S th 2

S th 3

S th 4

set-UID

set-GID

sticky-bit

Special

User

Group

Others

Nh trn bng trn, s th nht c s dng cho vic thit lp cc quyn c bit,
s th hai c s dng cho vic thit lp ngi s hu file hay th mc. S th ba
c s dng thit lp quyn cho nhm ngi s dng v s th t c s dng
thit lp quyn cho tt c mi ngi. Khi bt k mt s no b b qua, n c
xem nh nhn gi tr 0. Bng bn di ch ra mt vi v d v cc gi tr tng ng
vi quyn:

Gi Tr

Gii Thch

0400

Ch c quyn c cho ngi s hu, n tng ng vi 400.

0440

Ch c quyn c vi ngi s hu v nhm ngi s dng.


N tng ng vi gi tr 440.

0444

Quyn c cho tt c mi ngi. N tng ng vi gi tr 444

0644

Ngi s hu c quyn c v ghi, tt c mi ngi c quyn


c, tng ng vi gi tr 644. (6 l ta bi 4:r v 2:w)

0755

c ghi v thc thi i vi ngi s dng, c v thc thi i


vi tt c mi ngi. (7 l to bi 4:r , 2:w v 1:x)

4755

N tng ng vi gi tr 755 ngoi tr file ny c t gi tr


set-UID = 4. iu ny c ngha l khi file c thc thi, n c
tt c cc quyn ca ngi s hu thc hin cng vic. S l
mt l hng ln nu ngi s hu y l root v nhng ngi
khc c quyn thc thi file ny. Hy cn thn khi thit lp gi
tr ca set-UID.

2755

N tng t vi gi tr 755 ngoi tr, khi thc thi n c tt c


cc quyn ca nhm s dng file.

thit lp quyn ph hp, bn nn ch ra kiu truy cp ca ngi s dng, nhm


ngi s dng v ca nhng ngi khc.
3.2.4. S dng ngn ng t nhin tng ng vi quyn truy cp
By gi chng ta s s dng xu truy cp n gin hn vic s dng s. Bng bn
di ch ra cc xu truy cp tng ng vi cc quyn:
read (r)

read (r)

read (r)

read (r)

write (w)

write (w)

write (w)

write (w)

execute (x)

execute (x)

execute (x)

execute (x)

Special

User

Group

Others

all (a)
Mi kiu quyn tng ng vi mt k t n (trong du ngoc).
3.2.5. Thay i quyn truy cp file th mc s dng lnh chmod
Tin ch chmod cho php bn thay i cc quyn. Bn c th s dng cc ch s hay
cc k t vi tin ch ny thay i quyn. V d

chmod 755 *.pl


Cu lnh trn thay i quyn cho cc file c phn m ui l .pl. Mi mt file .pl
c t cc quyn c, ghi v thc thi bi ngi s hu, cc file cng c th c v
thc thi bi nhm ngi s dng v nhng ngi khc. Bn c th hon thnh cng
mt cng vic nh vy vi lnh sau:
chmod a+rx,u+w *.pl
a+rx c s dng cho php tt c mi ngi c v thc thi i vi mi file .pl v
u+w c s dng cho php ngi s hu c quyn ghi i vi mi file .pl.
Nu bn mun thay i cc quyn cho tt c cc file v cc th mc con trong mt
th mc, bn c th s dng ty chn R:
chmod R 750 /www/mysite
3.2.6. Cc ch c bit trn cc quyn th mc
Cc quyn thit lp cho mt th mc cng tng t nh cc file thng thng, nhng
khng ging ht nhau. Di y l mt vi ch c bit trn cc quyn th mc:
-

Quyn ch c cho mt th mc s khng cho php bn chuyn vo bn trong


th mc, chuyn vo bn trong bn cn c quyn thc thi

Quyn ch c thc thi s cho php bn truy cp vo cc file bntong mt th


mc khi bn bit tn ca chng v bn c php c chng.

c th a ra danh sch ni dung ca mt th mc s dng cu lnh tng


t nh ls v cng c th chuyn vo bn trong th mc bn cn c c quyn
c v quyn thc thi i vi th mc

Nu bn c quyn ghi cho mt th mc, bn c th to, thay i, xa cc file


bt k hay cc th mc con bt k bn trong th mc ngay c khi file v
th mc con c s hu bi ngi khc

3.3. To mt chnh sch quyn cho mt server nhiu ngi s dng


3.3.1. Thit lp cu hnh cc quyn truy cp file ca ngi s dng
Trong th mc ca mi ngi s dng c mt vi file n chung bt u vi du chm
(.). Cc file ny thng c s dng thc thi cc cu lnh ti thi im ngi s
dng ng nhp. V d, tt c cc shell (csh, tcsh, bash, ) sn sng cho mt ngi
s dng c cc thit lp ca h t mt file ging nh .cshrc hay .bashrc. Nu mt
ngi s dng khng cn thn trong vic gi quyn cc file mt cch hon ho, mt
ngi s dng khng thn thin khc c th gy ra cc vn khng mong mun.. V
d, nu mt file .cshrc ca ngi s dng c th c vit bi ngi khc, ngi su
c th chi mt tr tn cng ngu ngc nh a mt cu lnh logout ngay dng u
ca file .cshrc, nh vy ngi s dng s thot ngay khi ng nhp vo h thng. Nu

bn c quyn thao tc vi nhng ngi s dng bn c th thc hin nhanh chng


vic kim tra n gin sau:
find /home -type f -name ".*rc" -exec ls -l {} \;
Cu lnh ny s hin th quyn ca tt c cc file c k t u tin l du chm, kt
thc bng rc nm trong th mc home
3.3.2. Thit lp mc nh cc quyn truy cp file cho ngi s dng
L ngi qun tr bn cn nh ngha cc quyn mc nh thit lp cho tt c cc file
ca ngi s dng a vo h thng ca bn. thit lp mc nh quyn cho cc file
mi, bn c th s dng cu lnh umask nh sau:
umask mask
hiu t umask nh th no, hy xem v d sau. Khi ni rng umask t l 022, file
mi c to , thng thng mt quyn 0666 c yu cu bi hm to file open.
Tuy nhin, trong trng hp ny , quyn cui cng thit lp cho cc file c to bi
h thng nh sau: 0666 c thc hin php ton AND vi phn b ca 022 (phn b
ca 022 l 755) do kt qu ca php AND thu c l 0644, n cho php ngi s
hu c v ghi cn nhng ngi khc ch c quyn c. to mt mask mc nh
cho cacs quyn truy cp file, bn c th nhng cu lnh umask vo mt shell ti
nguyn chung trong /etc khi mt ngi s dng ng nhp v chy mt shell, file
ti nguyn shell chung s c thc thi. V d, nu ngi s dng ca bn s dng
shell /bin/csh hay /bin/tcsh, bn c th a mt cu lnh umask mong mun trong file
/etc/csh.cshrc cho mc ch ny.
3.3.3. Thit lp cc quyn c th thc thi cho cc file
Cc file chng trnh c th c chy bi nhng ngi s dng thng thng khng
bao gi nn t quyn c ghi cho bt k ai khc ngoi ngi s hu. V d, cc file
chng trnh trong /usr/bin nn thit t cc quyn nh ch root c quyn c, ghi v
thc thi v tt c mi ngi ch c quyn c v thc thi cc file ny. Vic cho php
ngi khc ghi c th to ra mt l hng nghim trng cho h thng.
3.4. Lm vic vi cc file v cc th mc
3.4.1. Xem cc file v cc th mc
Bn c th quen vi lnh ls, thng thng n c s dng vi cc ty chn l
(long listing) hin th y thng tin, -a hin th tt c cc file bao gm c cc file
bt u bng du chm v R hin th tt c cc file v cc th mc con bn trong thu
mc mong mun
3.4.2. Chuyn n th mc
Bn gn nh quen vi cu lnh cd, n l mt shell xy dng sn. Nu bn khng
cung cp mt tn thu mc bt k lm i s cho n, n s chuyn v th mc ch ca

bn m hin ti bn ang s dng. Khi bn ang ng bt k u trong h thng


file, bn c th s dng lnh pwd hin th ng dn n th mc hin ti.
3.4.3. Xc nh kiu file
Khng ging nh h iu hnh Windows, Linux khng da vo phn m rng ca file
xc nh kiu file. Bn c th s dng tin ch file xc nh kiu file trong h
thng. V d:
file todo.txt
Kt qu hin th nh sau:
todo.txt: ASCII text

3.4.4. Xem thng k cc quyn ca file hay th mc


Bn c th s dng lnh stat ly thng k v cc file v cc th mc:
stat ./exam
Kt qu hin th trn mn hnh
File: "./exam"
Size: 4096

Blocks: 8

Device: 812h/2066d

IO Block: -4611692478058196992 Directory

Inode: 157762

Access: (0755/drwxr-xr-x) Uid: (

0/

Links: 2
root) Gid: ( 0/ root)

Access: Wed Jun 18 14:56:48 2003


Modify: Wed Jun 18 11:18:42 2003
Change: Wed Jun 18 11:18:42 2003

3.4.5. Sao chp file v th mc


S dng cu lnh cp sao chp t mt v tr xc nh n v tr khc:
cp /some/important /new/place
Bn cng c th xc nh mt tn mi cho file sao chp. Thng thng lnh cp c
s dng vi ty chn f sao chp file t ngun n ch m khng quan tm n
n vic c mt file cng tn tn ti ch. File mi s c sao chp ln file c.
sao chp mt th mc n mt th mc khc bn thc hin lnh cp vi ty chn r
v d:

cp r /tmp/foo /zoo/foo
3.4.6. Dch chuyn cc file v th mc
dch chuyn cc file hay th mc s dng cu lnh mv. V d, chuyn /file1
vo /tmp/file2 ta s dng cu lnh sau:
mv /file1 /tmp/file2
3.4.7. Xa cc file v th mc
xa cac file v th mc s dng lnh sau:
rm filename
Khi xa h thng s hi bn c th s mun xa hay khng. Nu bn chc chn
file bn mun xa bn c th thc hin lnh xa rm vi ty chn f khng hin ra
thng tin yu cu xc nhn ca h thng. xa mt th mc, bn cn thc hin lnh
rm vi ty chn r
3.4.8. Tm kim file
xc nh v tr chnh xc ca mt filem, bn c th s dng lnh which. V d:
which httpd
Cu lnh ny s ch ra cho bn y ng dn ca chng trnh httpd nu n sn
c. Bn cng c th xc nh mt phn ca tn file hay th mc s dng lnh locate
locate netpr.pl

4.

Qun l ngi dng v ti nguyn

4.1. Khi nim


Linux l h iu hnh a nhim v a ngi dng. Mi ngi dng c tn truy nhp
v mt khu ring, tng ng vi nhng quyn hn nht nh trong h thng file ca
Linux.
to iu kin thun li trong qun l ngi dng v quyn hn i vi h thng
file, Linux cho php khai bo nhng nhm ngi dng, mi nhm l mt tp hp
nhng ngi dng chung mt mc ch khai thc ti nguyn nht nh. Mi ngi
dng c th tham gia nhiu nhm ngi dng khc nhau. Mi ngi dng cng mc

nhin lp nn mt nhm ngi dng l nhm ca chnh h (nhm c th ch c mt


thnh vin).
Ngi dng c ton quyn trong Linux l ngi dng root, mc nhin thuc v nhm
root. Ngi dng c quyn root n nh mt ngi dng no thuc v nhm root
v c quyn tng ng vi root.
4.2. Tr thnh superuser
Bn bit rng ti khon root l ti khan superuser trong h thng Linux. Thc ra
nu bn t ci t h thng, bn s dng ti khon ny ng nhp h thng ln
u tin. Bn cng bit rng root l ti khon superuser, ti khon ny c quyn lm
mi th trn h thng. Ngi s dng root c th khi ng hay dng mt chng
trnh bt k cng nh to v xa mt file bt k. Rt nhiu nhng ngi mi qun tr
h thng Linux cho rng ch c root l ti khon superuser. Hy nhn xung on m
bn di c trong file /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:
daemon:x:2:2:daemon:/sbin:
vietvq:x:0:0:root:/home/vietvq:/bin/bash
xanhhh:x:0:0:root:/root:/bin/bash
tuta:x:0:0:root:/var:/bin/bash

Bn c th thy c trn c 4 ti khon superuser. hiu ti sao bn hy xem


nh dng mt dng trong file /etc/passwd
username:passwd:UID:GID:fullname:home-dir:shell
Bn hy ch vo cc trng UID (User ID) v GID (Group ID) ca ti khon root.
Nhng ti khon m c cc gi tr ca cc trng ny l 0 l nhng superuser. Hay
ni mt cch khc nhng ngi c UID = 0 v GID = 0 c quyn tng ng vi ti
khon root.
Nh vy nu h thng ca bn phi c nhiu ti khon superuser do mt s l do qun
tr, bn c th d dng to mt ti khan superuser. Tuy nhin, hy nh rng mt ti
khon superuser (UID=0, GID=0) c th lm mi th.
4.3. Qun l ngi dng vi cc cng c dng lnh
4.3.1. To mt ti khon ngi s dng mi
To mt ngi s dng mi kh d dng, to ngi s dng t dng lnh, bn c
th s dng cu lnh useradd. V d to ngi s dng c tn l tutavn, bn c th
chy cu lnh sau:

useradd tutavn
Trong file /etc/passwd s b sung thm dng mi nh sau:
tutavn:x:502:504::/home/tutavn:/bin/bash
K hiu x c ngha l ti khon cha c mt khu. V vy bn cn to mt khu cho
ngi s dng bng cu lnh sau:
paswd tutavn
Bn s c yu cu vo mt khu hai ln, v khi mt khu c tip nhn, n s
c m ha v thm vo dng ca ngi s dng trong file /etc/passwd. Cc gi tr
UID v GID s c la chn t ng bi useradd, thng thng n tng gi tr UID
v GID ln mt so vi ngi c thm vo ln sau cng trc . Bn c th to
ngi s dng c th mc ch khc vi mc nh (trong th mc home) bng thc
hin cu lnh:
useradd newuser d /www/newuser
Ngi s dng mi s c to v c th mc ch l /www/user. Khi bn to mt
ngi s dng mi, h thng cng ng thi mc nh to ra mt nhm mi c trong
file /etc/group c tn ging nh tn ti khon ca ngi s dng. to ngi s
dng vi tn nhm mi hay tn nhm tn ti trong h thng, bn s dng lnh
adduser vi ty chn g. V d:
useradd tutavn g users
Nu bn mun to ngi s dng mi l thnh vin ca mt s nhm, bn c th s
dng ty chn G. v d
useradd tutavn G users1,users2
4.3.2. To mt nhm mi
to mt nhm mi bn s dng cu lnh groupadd. V d:
groupadd mygroup

Nu bn to mt tn nhm c trong h thng bn s nhn c mt thng bo li


4.3.3. Sa i mt ti khon ngi s dng ang tn ti

Thay i mt khu

thay i mt khu ca ti khon ang tn ti bn s dng cu lnh passwd.V d:


passwd tutavn
Cu lnh ny tng i n gin v n khng c cc ty chn, v n ch cho php
ngi s dng thng thng ch c th thay i mt khu ca chnh h. H thng s
yu cu bn nhp mt khu hai ln v khi mt khu c tip nhn, n s c m
ha trc khi a vo file /etc/passwd
4.3.4. Thay i ng dn th mc ch
thay i ng dn th mc ch ca ngi s dng ang tn ti, s dng cu lnh
usermod nh sau:
usermod d new_home_directory username
V d, nu mt ngi s dng tutavn c th mc ch /home/tutavn v mun chuyn
thnh /home2/tutavn, bn c th chy cu lnh sau:
usermod d /home2/tutavn tutavn
Tuy nhin, nu bn mun ni dung th mc ch n mt v tr mi, s dng ty chn
m nh sau:
usermod d m /home2/tutavn tutavn
4.3.5. Thay i UID
thay i UID ca mt ngi s dng, s dng cu lnh usermod nh sau:
usermod u UID username
V d:
usermod u 500 myfrog
Cu lnh ny s thay i UID ca ngi s dng myfro l 500

4.3.6. Thay i nhm mc nh


thay i nhm mc nh cho ngi s dng, s dng cu lnh usermod vi ty
chn g
usermod g 777 myfrog
Cu lnh ny s thay i nhm mc nh ca myfrog thnh 777.
4.3.7. Thay i thi hn kt thc ca mt ti khon
Bn c th thay i thi hn kt thc ca mt ti khon s dng cu lnh usermod vi
ty chn e. C php ca cu lnh nh sau:
usermod e MM/DD/YY username
V d:
usermod e 12/31/99 kabir
4.3.8. Sa i mt nhm ang tn ti
sa i tn mt nhm ang tn ti, s dng cu lnh groupmod. C php nh sau:
groupmod n new_group current_group
V d:
groupmod n experts novices
Nhm novices ang tn ti c i tn thnh experts. thay i GID ca mt
nhm s dng ty chn g nh sau:
groupmod g 666 troublemaker
Cu lnh ny s thay i GID ca mt nhm troublemaker thnh 666.
4.3.9 Xa hoc hy b mt ti khon ngi s dng

xa mt ti khon ang tn ti s dng cu lnh userdel. V d:


userdel snake
S xa b ti khon ti khon snake khi h thng. Nu bn mun xa th mc ch
ca ngi s dng v tt c cc ni dung trong th mc, s dng ty chn r. Ch
rng userdel s khng xa ngi s dng nu ngi s dng hin ti ang ng nhp.
Nu bn mun hy b tm thi quyn truy cp ca tt c cc ti khon bn c th to
mt file tm thi c tn l /etc/nologin vi mt thng tin gii thch l do v sao khng
c php truy cp. Chng trnh login s khng cho php bt k ti khon no khc
ti khon root c th ng nhp trong thi gian ny.
4.4. Ci t my in
4.4.1. Cu hnh my in
ng dng printconf cho php ngi dng cu hnh my in trong Red Hat Linux. N
cho php sa i tp tin cu hnh /etc/printcap, cc th mc b m in v b lc
in.printconf cu hnh h thng in n ca bn, c gi l LPRng. LPRng cng l mt
h thng in n ngm nh. Phn ny tp trung vo vic s dng printconf cu hnh
LPRng.
s dng printconf, bn phi c quyn truy cp mc root. khi ng printconf,
theo mt trong cc cch sau y

Trn mn hnh GNOME, chn Main Menu Button => Programs => System
=> Printer Configuration khi ng trong ch ha.
Trn mn hnh KDE, chn Main Menu Button => System => Printer
Configuration khi ng ch ha.
nh lnh printtool ti du nhc shell (VD: XTerm hoc GNOME terminal)
khi ng printconf

Bn cng c th chy printconf di dng mt ng dng trong ch text nu bn


khng ci t h thng X Window hoc bn thch s dng giao din text hn. Khi ,
bn phi log in theo ti khon root (hoc dng lnh su chuyn sang ngi
dng root v nh lnh /usr/sbin/printconf-tui ti du nhc shell.
Ch : bn ng sa i tp tin /etc/printcap, mi khi daemon my in (lpd)
c khi ng hay khi ng li, tp tin /etc/printcap mi s c
sinh ra t ng.

Nu bn mun ci t my in m khng s dng printconf, khi bn phi chnh sa


tp tin etc/printcap.local. Cc u vo trong /etc/printcap.local khng c
hin th trong printconf nhng c daemon my in c khi khi ng dch v in n.
Mi khi bn nng cp h thng ca bn ln phin bn mi, tp cu hnh s c
printconf chuyn sang nh dng mi v tp tin cu hnh c s c ghi di tn
/etc/printcap.old.

Hnh 1: Ca s printconf chnh


C nm kiu hng i in c cu hnh bi printconf:

Local Printer my in c gn trc tip vo my tnh ca bn thng qua


cng song song hoc cng USB. Kiu hng i in Queue Type s c thit
lp l LOCAL.
Unix Printer (lpd Spool) my in c gn trn mt h thng UNIX khc
m c th c truy nhp thng qua mng TCP/IP. Kiu hng i in Queue
Type cho my UNIX xa s c thit lp l LPD.
Windows Printer (SMB) my in c gn trn mt h thng khc
(Windows) c chia s my in thng qua mng SMB (s dng dch v samba
chia s ti nguyn trn mng: my in, d liu......), kiu hng i in Queue
Type lc s c thit lp l SMB.
Novell Printer (NCP Queue) my in c gn vo mt h thng s dng
cng ngh mng Novell's NetWare. Kiu hng i in cho my in Novel xa
s c thit lp l NCP.
JetDirect Printer my in c ni trc tip vo mng (my in mng).
Kiu hng i in Queue Type cho my in JetDirect s c thit lp l
JETDIRECT.

Ch : Khi bn thm mt hng i in mi hay sa i hng i in c, bn phi khi


ng li daemon my in (lpd) nhng thay i c hiu lc.
Chn Apply ghi li nhng thay i m bn va thc hin v khi ng li daemon
my in. Cc thay i s cha c ghi trong tp tin cu hnh /etc/printcap cho n
khi daemon my in (lpd) c khi ng li. thc hin cng vic ny, chn File
=> Save Changes v sau chn File => Restart lpd.
Nu mt my in xut hin trong danh sch in vi Queue Type c thit t l
INVALID, cu hnh my in c th thiu cc tu chn cn c cho my in hot ng.
Chn Delete xa my in khi danh sch.

4.4.2. Ci t my in cc b
ci t mt my in gn trn cng song song hay cng USB ca my tnh, nhn nt
New trn ca s printconf chnh nh trn, chn Next tip tc.

Hnh 2: Ci t my in

Nhp tn my in trong trng Queue Name v chn Local Printer t danh sch
Queue Type nhn Next tip tc.

Hnh 3: Ci t my in cc b
printconf s c gng pht hin my in v hin th nh trong hnh 4.

Hnh 4: Chn thit b my in


4.4.3. Ci t my in trn h thng Unix xa
ci t mt my in gn trn mt h thng Linux xa trong cng mt mng, nhn
nt New trong ca s chnh printconf. Mt ca s nh hnh 2 s xut hin, chn Next
tip tc.
Ca s nh hnh 3 xut hin. Bn cng phi nhp tn my in vo trng Queue
Name v chn Unix Printer t trong thc n Queue Type, nhn Next tip tc.

Hnh 5: Ci t my in Unix xa
Ca s tip theo cho php bn cu hnh my ch in xa .

Server Hstname hoc i ch IP ca my xa m my in gn vo.


Queue Hng i my in xa, ngm nh l lp.

Ngm nh khng chn tu chn Strict RFC1179 Compliance. Ch khi no bn


gp vn v in n vi mt hng i vi mt hng i lpd khng phi Linux, hy
chn tu chn ny cm cc tnh nng in n LPRng nng cao.
Nhn Next tip tc.

Hnh 6: Chn Printer Server


Bc tip theo l chn kiu my in kt ni vi h thng xa . Ch rng my xa
phi c cu hnh cho php mt my c b c th a yu cu v in n. thc
hin iu , bn phi to mt file /etc/hosts.lpd trn my xa m my in gn km v
thm vo cc a ch IP hay hostname ca cc my mun in trn cc dng ring r
trong tp tin.
4.4.4. Ci t my in Samba (SMB)
Cc bc thc hin ban u tng t hai bc trn. Trong thc n Queue Type,
chn Windows Printer v nhn Next tip tc.

Hnh 7: Ci t my in SMB
Trong ca s ca hnh 8, in cc thng s cu hnh sau:

Share Tn ca my in c chia s m bn mun in ti . Tn ny phi


cng tn vi tn c nh ngha cho my in Samba trn my Windows
xa. Ch c php phi nh sau: //machinename/sharename.
User Tn ngi dng c php truy nhp vo my in. Tn ny phi tn
ti trn h thng Windows v ngi dng c quyn truy nhp my in. Tn
thng l guest i vi cc my Windows servers, hoc nobody i vi
cc my Samba servers.
Host IP Hostname hay a ch IP ca h thng xa chia s my in SMB.
Password Mt khu (nu c) ca ngi dng nh ngha trong trng
User
Workgroup Tn workgroup my chy Samba thuc vo.

Chn nt Translate \n => \r\n chuyn i cc k t cui dng sang khun dng
m h thng Microsoft Windows c th c c.
Nhn Next tip tc.

Hnh 8: Chn Print Server


Bc tip theo l chn kiu my in c kt ni vi h thng SMB xa.
4.4.5. Chn trnh iu khin Print Driver v kt thc
Sau khi chn kiu hng i my in v ci t cc thng s lin quan, bc tip
theo k chn trnh iu khin my in.
Bn s thy mt ca s nh hnh 13. Nu bn cu hnh mt my in cc b, hy chn
trnh iu khin in t trong danh sch, chn nh sn xut v loi my in ca bn.

Hnh 13: Chn trnh iu khin my in


My in cc b:

Nu bn cu hnh my in xa (LPD, SMB, hay NCP), my in ch xa s in n theo


trnh iu khin my in ca n. C gng chn ng trnh iu khin my in xa .

Bc cui cng l khng nh li cc thng s cu hnh, nhn nt Apply ghi li


cc thay i v trong tp tin cu hnh etc/printcap v khi ng li daemon my
in (lpd). Hy in th 1 trang xem cu hnh bn thit lp ng cha.

4.4.6. Thay i thng s cu hnh cc my in c sn


xo mt my in ang tn ti, chon my in v nhn nt Delete trn thanh cng c,
my in s c loi b trong danh sch my in. Nhn nt Apply ghi li cc thay
i v khi ng li daemo
thit lp mt my in ngm nh, chn my in t danh sch v nhn nt Default
trn thanh cng c. My in ngm nh s c icon
xut hin bn cnh tn my in.
Nu bn mun thay i cu hnh ca mt my in, bn khng th thay i cc thit t
mt cch trc tip m ch c ghi ln nh sau:
Chn my in, chn File => Override Queue t thc n. Khi , my in s c k
hiu
cnh tn my in.
Chn nt Edit thc hin vic hiu chnh cc thng s. Ca s nh hnh 14 xut
hin cho php bn thay i li cc thng s ca my in.

Hnh 14: Thay i thng s my in


4.4.7. Backup cc thng s cu hnh my in
Thng s cu hnh ca bn c a vo tp tin /etc/printcap v c daemon
my in c khi khi ng. Bn c th s dng cc lnh backup li
cc file cu hnh v d nh backup file cu hnh my in v ghi thnh
file settings.xml
/usr/sbin/printconf-tui --Xexport > settings.xml

khi phc li file cu hnh c backup theo cch trn, bn c th s dng


lnh di y

/usr/sbin/printconf-tui --Ximport < settings.xml

4.4.8. Qun l cng vic in n


Khi bn mun in mt file vn bn t Emacs hoc in mt hnh nh t The GIMP,
cng vic ny s c a vo hng m in. Nu mun xem danh sch cc cng vic
in n, a lnh lpq vo du nhc shell, v d:
Rank

Owner/ID

Class

active user@localhost+902
01:20:46

Job Files

Size Time

902 sample.txt

2050

Nu mun dng mt cng vic in no , a lnh lprm job number vi tham s l


nh danh ca cng vic in m bn bit c thng qua lnh lpq trn. Bn cng c
th in n thng qua lnh lpr sample.txt in file vn bn sample.txt.

5.

Trnh din thit lp mng v ci t diul-up trn Linux

5.1. Thit lp mng Linux


Chng ta s xem xt qu trnh ni mt my Linux vo mng Ethernet trao i
thng tin bng giao thc TCP/IP trn Ethernet.
5.1.1. HH Linux v card mng
ni mt my Linux vo mt mng Ethernet, bn cn phi c u tin l mt card
mng m Linux c chng trnh driver. Sau y l mt s mng m Linux c tr
gip (danh sch sau khng y v cc phin bn mi ca Linux h tr rt nhiu
cc card mng khc nhau) :
3Com 3C509
3Com 3C503/16
Novell NE1000
Novell NE2000
Western Digital WD8003
Western Digital WD8013
Hewlett-Packard HP27245
Hewlett-Packard HP27247
Hewlett-Packard HP27250
Gi s cc bn mun gn my ca mnh vo mt mng LAN Ethernet v bn c
mt card mng. Vn u tin l s nhn bit ca Linux i vi card ny. Nu card
ca bn l mt card kh ph bin nh 3c509 ca 3COM hay NE2000 ca Novell,
HDH Linux s nhn bit s hin din ca card trong qu trnh boot. bit xem kt

qu nhn bit card mng, ta c th xem xt cc thng bo ca kernel Linux trong qu


trnh boot ca h thng qua lnh dmesg
Freeing unused kernel memory: 60k freed
Adding Swap: 72572k swap-space (priority -1)
eth0: 3c509 at 0x300 tag 1, BNC port, address 00 a0 24 4f 3d dc, IRQ
10.
3c509.c:1.16 (2.2) 2/3/98 becker@cesdis.gsfc.nasa.gov.
eth0: Setting Rx mode to 1 addresses.

Hai dng in m bo rng card mng 3c509 c kernel nhn bit. Trong trng
hp kernel khng nhn bit card , chng ta phi lm li kernel Linux v t module
iu khin (driver) ca card vo trong kernel hay cu hnh ch load module.
cu hnh tip ni mng qua TCP/IP chng ta phi xc nh r cc thng tin lin
quan n a ch IP ca my. Cc thng tin cn bit l :
a ch IP ca my
Netmask
a ch ca mng
Broadcast
a ch IP ca gateway
Chng ta s ln lt im qua cc khi nim c bn trn v s hc su hn trong phn
TCP/IP ca kha hc.
a ch IP ca my l mt dy 4 s vit dc dng A.B.C.D, trong mi s nhn
gi tri t 0-255. Nu my ca bn kt ni mt mng nh ti nh do bn thit lp th
a ch kiu 192.168.1.D l mt a ch nn t, vi D l cc s khc nhau cho tng
my. Nu my ca bn s ha nhp vi mt mng LAN c trc v bn mun
kt ni vi cc my khc th hi ngi qun tr mng v a ch IP bn c th gn cho
my ca mnh cng vi tt c cc thng s tip theo.
Netmask. Tng t nh trn, nu bn t qun, netmask s l 255.255.255.0
a ch mng. Nu bn t qun, a ch ca mng s l 192.168.1.0
Broadcast. Nu bn t qun, broadcast l 192.168.1.255
a ch gateway. y l a ch ca my cho php bn kt ni vi mng LAN
khc, tc l cc my tnh vi 3 s u ca a ch khng ging bn l 192.168.1. Bn
b trng nu bn ch lin lc vi cc my cng mng 192.168.1.XXX. Ch l a
ch mng ca my gateway bt buc phi trng vi a ch mng ca bn.
Sau khi xc nh cc thng s, v d nh
IP address = 192.168.1.15
Netmask = 255.255.255.0

suy ra network address = 192.168.1.0 v broadcast = 192.168.1.255


Gateway = 192.168.1.1
5.1.2. Cu hnh card mng
Lnh ifconfig
Sau khi lm cho kernel nhn bit s hin din ca card mng, cng tc tip theo l cu
hnh TCP/IP cho card. Trong qu trnh ci t Linux Redhat 6.X, bnh thng chng
ta c chng trnh ci t hi v cu hnh h . Trong trng hp khi chng ta b
sung card mng sau khi Linux c ci t, chng ta c th s dng tin ch
netconf cho mc ch ny hoc chng ta s dng lnh ifconfig t ci t.
Lnh ifconfig c s dng trong qu trnh boot h thng cu hnh cc trang thit
b mng. Sau , trong qu trnh vn hnh, ifconfig c s dng cho debug, hoc
cho ngi qun tr h thng thay i cu hnh khi cn thit .
Lnh ifconfig khng c ty chn dng hin th cu hnh hin ti ca my.
[root@pasteur tnminh]# /sbin/ifconfig
eth0

Link encap:Ethernet

inet
Mask:255.255.255.0

HWaddr 00:A0:24:4F:3D:DC

addr:192.168.2.20

Bcast:192.168.2.255

UP BROADCAST RUNNING PROMISC MULTICAST

MTU:1500

Metric:1

RX packets:531 errors:4 dropped:0 overruns:0 frame:4


TX packets:1854 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
Interrupt:10 Base address:0x300
lo

Link encap:Local Loopback


inet addr:127.0.0.1

Mask:255.0.0.0

UP LOOPBACK RUNNING

MTU:3924

Metric:1

RX packets:1179 errors:0 dropped:0 overruns:0 frame:0


TX packets:1179 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0

gn a ch IP 193.105.106.10 cho card mng Ethernet u tin ta dng lnh


ifconfig
eth0
192.105.106.255

193.105.106.10

netmask

255.255.255.0

broadcast

Linux cho php bn s dng b danh (alias) cho card mng, tc l cho php bn c
nhiu a ch IP cho cng mt card vt l. Kt qu nhn c gn ging nh bn c
gn nhiu card vt l ln my. Do , bn c th dng mt card ni vi nhiu
mng logic khc nhau. C php ca lnh ny l :

ifconfig eth0:0 208.148.45.58


208.148.45.255 up

netmask

255.255.255.248

broadcast

Cc tp tin cu hnh ca kt ni mng l /etc/sysconfig/network-scripts/ifcfg-ethX


vi X l 0,1 ... hay 0:0, 0:1 .... Bn c th thay i cu hnh kt ni mng bng cch
sa i li tp tin ny bng mt chng trnh son tho text nh mc chng hn, sau
khi ng li kt ni mng bng
/etc/rc.d/init.d/network restart

Nh kim tra li kt qu qua lnh ifconfig.


Lnh route
Lnh route cho php lm cc thao tc n bng dn ng (forwarding table) ca
kernel. N c s u tin xc nh ng dn c nh (static) n nhng my
hoc nhng mng qua cc card mng ethernet c cu hnh trc bi ifconfig.
Lnh route khng c ty chn (option) cho php hin th bng dn ng hin ti ca
kernel (Lnh netstat r cng c tc dng tng t)
[root@pasteur tnminh]# /sbin/route
Kernel IP routing table
Destination

Gateway

192.168.2.20

255.255.255.255 UH

eth0

192.168.2.0

255.255.255.0

eth0

127.0.0.0

255.0.0.0

lo

default

192.168.2.10

Genmask

0.0.0.0

Flags Metric Ref Use Iface

UG

0 eth0

ch ra rng card mng eth0 c ni vi mt mng 208.148.45.56 ta dng lnh


route nh sau :
route add -net 208.148.45.56 eth0

Cn nu chng ta mun s dng b danh ca card mng ni vo mt mng logic


khc, ta c th s dng lnh
route add -net 193.105.106.0 eth0:0

Cng tc cui cng l phi ch ra cc a ch ca gateway mc nh.


route add default gw 193.105.106.1 metric 1

Bit s dng thnh tho c php ca 2 lnh ifconfig v route rt quan trng, n cho
php cc cn b qun tr thay i cu hnh kt ni mng ca mt server mt cch
nhanh chng v khng phi khi ng li my. V vy, server lun sn sng. Bn
cng c th s dng tin ch netconfig cu hnh lin kt mng nu cha thnh tho
nhiu c php ca cc lnh trn.
Lnh ping
ng dng ca lnh ny l th xem 2 my c kt ni c vi nhau cha. C php
c bn ca lnh rt n gin l ping a_ch_IP_my_ch. V d nh
[tnminh@proxy tnminh]$ ping sun
PING sun.vnuhcm.edu.vn (172.16.1.4): 56 data bytes
64 bytes from 172.16.1.4: icmp_seq=0 ttl=255 time=0.1 ms
64 bytes from 172.16.1.4: icmp_seq=1 ttl=255 time=0.2 ms
64 bytes from 172.16.1.4: icmp_seq=2 ttl=255 time=0.1 ms
64 bytes from 172.16.1.4: icmp_seq=3 ttl=255 time=0.1 ms
--- sun.vnuhcm.edu.vn ping statistics --4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max = 0.1/0.1/0.2 ms

Nu 2 my c th lin lc c vi nhau, chng ta s bit thm thi gian tr li cho


bit s thng thong v mng gia 2 my. C th ni, ping phi chy trc tin trc
tt c cc hot ng mng khc.
Ch : Nn s dng ping n trnh trc trc do dch v DNS lm nh hng ti vic
kt qu th kt ni mng.
Lnh Traceroute
y cng l lnh cho php chn on hot ng ca mng. C php ca lnh ging
nh lnh ping nhng kt qu khng ch dng s tr li m cn ch ra cc thit b
trung gian nm gia 2 my.
# tnminh@nefertiti ~ > traceroute 203.162.44.33

traceroute to 203.162.44.33 (203.162.44.33): 1-30 hops, 38 byte packets


1

makeda.pasteur.fr (157.99.64.3), 1.66 ms, 1.66 ms, 1.66 ms

2
418.ATM4-0.GW21.Defense.OLEANE.NET
4.17 m

(195.25.28.149),

5.0

ms,

4.17

ms,

3
FastEth0-0.GW16.Defense.OLEANE.NET (195.25.25.208), 4.17 ms, 4.17 ms,
4.17s
4
ms

100.ATM6-1.GW2.Telehouse.OLEANE.NET (194.2.3.245), 5.0 ms, 5.0 ms, 5.0

..............

14
970

210.132.93.210 (210.132.93.210), 849 ms (ttl=241!), 807 ms (ttl=241!),

s (ttl=241!)
15
202.167.121.195
(203.162.3.42), 1

(202.167.121.195),

905

ms

!H

203.162.3.42

88 ms (ttl=242!)

Lnh traceroute l mt cng c hiu qu cho php ta pht hin li trong qu trnh
phn ng (IP routing). V d kt ni t A -> C c trc trc v vi traceroute ti C
t my A, ta c th pht hin ra my A kt ni my B, ri my B li kt ni my A ...
do cu hnh routing ca A v B sai.
Ch l khi chng ta th kt ni vi mt my xa trong Internet, do nhiu mng p
dng cc bc tng la (firewall) nn nhiu khi lnh ping v traceroute khng chy
nhng trn thc cht l mng vn thng.
5.1.3. Cc tin ch mng: Telnet v ftp

Telnet

Telnet l mt tin ch cho php ng nhp vo mt my tnh xa v lm vic ging


nh vi my ti ch. V d, c th dng telnet chy mt chng trnh trong mt
siu my tnh cch xa hng ngn dm. Telnet s dng giao thc TCP/IP, cng 23.
S dng: gi s my ca bn ang chy Window v bn c cp mt ti khon
trong my ch Linux.
1. Nhn chut vo "Start" chn "RUN".
2. G vo: telnet <tn hay a ch IP> ca my ch m bn c ti khon. V
d "telnet linuxcourse.iti.edu.vn v nhn OK.
3. Nu kt ni n my ch thng sut, mt ca s s hin ln mi bn cung cp
tn ti khon v mt khu.
4. Nhp vo tn ti khon username v password dng nhp.
5. ng nhp thnh cng th bn s ng ti th mc nh (home directory) ca
mnh.
6. Bt u phin lm vic ca bn. V d, dng cu lnh "ls -al" hin th tt c
cc tp trong th mc.
7. Kt thc phin lm vic, g "exit".

FTP

FTP l vit tt ca Tp Transfer Protocol, mt tin ch ti tp xa. Vi ftp c th ly


tp my t xa v my tnh ca mnh (download) v ngc li, gi mt tp t my
ca mnh ln my xa (upload) nu bn c quyn write vo th mc my . FTP
s dng giao thc TCP/IP, cng 21.
S dng FTP
Cch ti xung (download):

Telnet vo my xa.

G lnh ftp <tn my xa>.

My s yu cu tn ng nhp v password. Mt trong nhng ch cho php


mi ngi ti tp v t do l dng tn ng nhp "anonymous" v password l
a ch email ca bn.

Chuyn n th mc c cc tp ta mun ti v.

G lnh: get <tn tp mun ti v>.

kt thc g quit.

Cch ti ln (upload): Tng t nh trn, nhng dng cu lnh put thay cho cu lnh
get.
5.2. Ci t diul-up trn Linux
5.2.1. Ci t
Chn Internet Configuration Wizard tug menu System configuration

Sau mn hnh ny s ch th

chn Modem connection, chn Forward.

Nhp vo cc thng tin quay s., sau chn Forward

Chn gn IP ng, chn Forward

Chn Apply, sau ca s Network configuration hin ra

n y chng ta hon tt bc ci t modem.


5.2.2. Quay s
Ti mn hnh ny chn giao din ppp0 v click vo nt lnh Avtive

My tnh bt u quay s. file log s c ct vo /var/log/message.

yess wait...
Khi xong mn hnh network configuration s bo giao din ppp0 l active.

C th kim tra a chi IP ng v my cung cp DHCP qua lnh ifconfig -a

Lc ny kt ni coi nh c thit lp, c th dng ping t kim tra.

By gi th chng ta c th truy cp internet thng qua trnh duyt.

6.

Lp trnh shell.

Lp trnh shell l mt trong nhng cng c hu ch nht cho vic qun tr h thng.
Kh nng vit mt chng trnh ngn hon thnh mt cng vic i hi nhiu thi
gian mnh hn rt nhiu so vi cc cng c qun tr Linux khc c bit n. Lp
trnh Shell c th lm cho cuc sng ca ngi qun tr tr ln d th hn v n l
mt k nng bt buc i vi ngi qun tr Linux. C th nhn thy c rt nhiu
cng vic ca nhng ngi qun tr h thng i mt hng ngy lin quan n cc file
v th mc. Bt c khi no bn phi x l vi mt s lng ln cc file, lp trnh
shell s lm cho cng vic ca bn tr ln d dng hn. Phn ny s ch cho bn cch
lp trnh Shell c bn, n c th gip cho bn thc hin cc cng vic hng ngy.
6.1. To v chy chng trnh Shell
N mt cch n gin nht, lp trnh shell ch l cc file cha mt hoc nhiu cu
lnh shell hay cu lnh Linux. Bn c th s dng cc chng trnh n gin thc
hin cc cng vic lp i lp li, thay cho hai hay nhiu cu lnh lun lun c
thc thi cng nhau bng mt cu lnh, t ng ci t cc chng trnh khc, v
vit cc ng dng tng tc n gin.
to mt chng trnh shell, bn phi to mt file s dng mt trnh son tho v
a cc cu lnh shell hay Linux m bn mun c thc thi vo trong file. Gi s
rng bn c mt CD-ROM c gn vo h thng Linux. Thit b CD-ROM ny
c gn vo h thng khi h thng c khi ng ln u. Nu bn cn thay i a
CD c trong CD bng mt a CD mi. Mt cch bn thc hin c cng
vic ny l bn nh CD-ROM khi h thng s dng cu lnh umount, v sau
gn li s dng cu lnh mount . Cc cu lnh ch ra di y cho bn thy tun
t cc bc thc hin:
umount /dev/cdrom
mount /dev/cdrom /cdrom

Thay vic g c hai cu lnh mi ln bn thay i a CD, bn c th to mt chng


trnh shell thc hin c hai cu lnh ny cho bn. to chng trinh shell ny bn
a c hai cu lnh vo trong mt file c tn l remount (hoc mt tn bt k no
khc m bn mun).
C mt vi cch thc hin cc cu lnh trong file remount. Cch th nht l bn
thay i thuc tnh cho file ny c th thc thi bng cch thc hin cu lnh sau:
chmod +x remount

Cu lnh ny thay i quyn ca file lm cho file c th thc thi. chy chng
trnh shell mi, g remount trn dng lnh.

Chng trnh shell remount phi nm trong mt th mc c trong ng dn tm

kim ca bn, nu khng h thng s khng tm thy chng trnh thc thi. Nu
bn khng chay c chng trnh bi v file khng c tm thy, hy xc nh
ng dn. Hoc nu bn s dng tcsh vit chng trnh, dng u tin ca
chng trnh shell phi bt u vi # tcsh nhn ra n nh mt file chng trnh
tcsh. Thc ra, cch an ton (m bo ) nht l dng u ca mi chng trnh
shell bn thm #!/bin/sh m bo chng trnh shell c thc thi nh mt tin
trnh Bourne shell. iu ny ngn chn nhiu vn vi ngn ng lp trnh C, shell
s c gng thng dch c php Bourne shell.

Mt cch khc l bn c th thc thi chng trnh shell l chy shell m chng trnh
c vit theo n v tn chng trnh nh mt khai bo cho shell. Trong trng hp
mt chng trinh tcsh, bn thc hin cu lnh sau:
tcsh remount

Cu lnh ny chy mt shell mi v ni cho n thc thi cc cu lnh trong file


remount.
Cch th ba thc thi cc cu lnh trong mt file chng trnh shell l s dng cu
lnh . (du chm) vi c shell pdksh v bash hoc cu lnh source trong shell tcsh.
Cc cu lnh ny ni cho shell thc thi file c truyn vo nh i s. V d, bn c
th s dng cu lnh sau ni cho bash hoc pdksh thc thi cc cu lnh trong file
remount:
. remount

lm tng t i vi tcsh, s dng cu lnh sau:


source remount

V d sau trnh by mt tnh hung khc, trong vic s dng chng trnh shell s
gip tit kim rt nhiu thi gian. Gi s rng bn phi lm vic vi ba file khc
nhua trong mt th mc mi ngy, v bn mun d phng ba file ny vo mt a
mm vo cui mi ngy. thc hin c cng vic ny, bn phi g mt lot cc
lnh:
mount -t msdos /dev/fd0 /a
cp file1 /dev/fd0
cp file2 /dev/fd0
cp file3 /dev/fd0

Mt cch d phng cc file l gn a mm vo h thng v sau g ba cu lnh


copy, mi lnh cho mt file bn mun copy. Mt cch n gin hn l a bn cu
lnh ny vo trong mt file c tn l backup v sau thc hin cu lnh backup khi
bn mun copy ba file ny vo a mm.

Bn vn phi m bo chng trnh file shell backup c th thc thi v nm trong


mt th mc m c trong ng dn ca bn trc khi chy cu lnh. Bn hy cn
thn khi s dng mt tn file, n c th tng ng vi tn ca mt cu lnh h thng.
V d, nu c mt chng trnh c gi l backup trong ng dn m shell tm
kim trc khi c th mc hin ti, cu lnh c th c thi thay cho file cu
lnh shell. V l do ny, hy c s dng cc tn file cho kch bn shell ca bn khng
gn vi cc cu lnh Linux.

6.2. S dng cc bin


Cng ging nh vi hu ht cc ngn ng lp trnh, vic s dng cc bin l rt quan
trng trong cc chng trnh shell. Tt nhin, bn c nhn thy mt vi kiu bin
trc . Mt vi v d ni chung v bin c s dng l bin PATH v bin
TERM. Cc bin ny l cc v d v cc bin shell sn c, l cc bin c nh ngha
bi chng trnh shell m bn ang s dng. Phn ny miu t cch lm th no
bn to cc bin ca chnh bn v s chng trong mt vi chng trnh shell.
6.2.1. Gn mt gi tr cho mt bin
Trong c ba shell c cung cp bi Linux ( shell Bourne, Korn, v C ), bn c th
gn mt gi tr cho mt bin bng cch g tn bin theo su bi du bng v sau g
gi tr m bn mun gn cho bin. V d, gn mt gi tr 5 cho mt bin c tn l
count, vo cu lnh sau trong bash hoc pdksh:
count=5

Vi tcsh, vo cu lnh sau t c kt qu tng t:


set count = 5

Khi thit lp mt bin cho shell bash v pdksh, hy chc chn rng khng c du
cch c hai bn du bng. Vi tcsh, iu ny khng quan trng.

Bi v ngn ng shell l mt ngn ng kch bn phi kiu, bn khng phi khai bo


bin nh bn c th tng lm iu ny trong lp trnh C hay Pascal. Bn c th s
dng cng mt bin lu tr xu k t hay s nguyn. Bn lu mt chui k t vo
trong mt bin cng ging nh vic bn lu mt s nguyn vo mt bin, nh c th
thy trong v d di y:

name=Garry (for pdksh and bash)


set name = Garry (for tcsh)

Sau khi bn lu mt gi tr vo mt bin, bn lm th no c th ly gi tr tr


li? Bn t trc tn bin vi du la ($). in gi tr c lu tr trong bin
count ra mn hnh, vo cu lnh sau:
echo $count

Nu bn qun du $ trc cu lnh, lnh echo s hin th t count trn mn hnh.


6.2.2. Tham s v cc bin Shell c sn
Khi bn chy chng trnh shell yu cu hay h tr mt s cc ty chn dng lnh,
mi ty chn ny c lu tr trong mt i s. i s u tin c lu tr trong
mt bin c tn l 1, i s th hai c lu tr trong bin c tn l 2, v tip tc nh
th. Shell t tn cc bin ny, v vy bn khng th t tn nh th cho cc bin m
bn nh ngha. ly gi tr t cc bin ny, bn phi t trc tn bin vi mt du
$ nh bn lm i cc bin m bn nh ngha.
Chng trnh shell reverse di y ch nhn hai i s. Chng trnh ly hai i s
dng lnh v in ra i s th hai dng u tin v i s u tin dng th hai:
echo "$2"
echo "$1"

Nu bn gi ti chong trnh bng cch g dng lnh sau


reverse hello there

Chng trnh s tr li kt qu
there hello

Mt s cc bin shell quan trng c xy dng sn m bn cn bit khi lm vic


nhiu vi lp trnh shell. Bng 6.2.1 a ra danh sch cc bin ny v m t tm tt
mi bin c s dng lm g.
Bng 6.2.1 Cc bin shell c sn.
Bin S dng
$#

Lu s cc i s dng lnh c a vo chng trnh shell

$?

Lu gi tr tn ti ca cu lnh c thc thi sau cng

$0

Lu t u tin ca cu lnh c a vo, l tn ca chng trnh shell

$*

Lu tt c cc i s c a vo t dng lnh ("$1 $2 ...")

"$@" Lu tt c cc i s c a vo t dng lnh, c du nhy kp ring ("$1"


"$2" ...)
6.3. S dng du trch dn
Vic s dng cc du trch dn l rt quan trng trong lp trnh shell. Shell s dng c
hai kiu du trch dn v k t v du gch cho ngc thc hin cc chc nng
khc nhau. C du nhy kp (""), du nhy n (''), v du gch ngc (\) c s
dng n cc k t c bit trong shell. Cc du nhy c mt ngha c bit trong
shell v n khng nn s dng cha cc xu. Mi mt phng thc c mt mc
che du khc nhau cc k t c bitk trong shell.
Khi bn bao quanh cc k t vi du nhy kp, tt c cc k t trng c n trong
shell, nhng tt c cc k t khc vn c thng dch. Kiu du nhy kp ny s
dng hu ch nht khi bn gn cc chui cha nhiu hn mt t vo mt bin. V d,
gn chui hello there cho bin greeting, nhp vo cu lnh sau:
greeting="hello there" (in bash and pdksh)
set greeting = "hello there" (in tcsh)

Cu lnh ny lu tr ton b chui hello there vo bin greeting nh mt t. Nu bn


g vo cu lnh m khng s dng du nhy kp, bash v pdksh c th khng hiu
cu lnh v c th tr li mt thng bo li, v tcsh c th gn gi tr hello cho bin
greeting v b qua phn ui ca dng lnh.
Du nhy n l hnh thc s dng mnh nht ca du nhy. Chng n tt c cc k
t c bit trong shell. Kiu du nhy ny hu ch nu cu lnh ca bn a vo c
dng cho mt chng trnh hn l cho shell. V d, bn c th s dng du nhy
n ghi chui hello there, nhng bn khng th s dng phng thc ny trong
mt s trng hp. V d, nu chui c gn cho bin greeting cha bin khc, bn
phi s dng du nhy kp. Gi s rng bn mun a tn ca ngi s dng trong
bin greeting. Bn g cu lnh sau:
greeting="hello there $LOGNAME" (for bash and pdksh)
set greeting="hello there $LOGNAME" (for tcsh)

Bin LOGNAME l mt bin shell cha tn ng nhp ca ngi s dng Linux


ng nhp h thng.

Cu lnh ny lu tr gi tr hello there root vo trong bin greeting nu bn ng


nhp vo Linux l root. Nu bn c ghi cu lnh ny s dng du nhy n, du nhy

n s lm n du $ trong shell, v shell khng bit rng n c yu cu thc hin


thay th mt bin. Kt qu, bin greeting c gn gi tr hello there $LOGNAME.
S dng du gch ngc l cch th ba che du cc k t c bit trong shell.
Ging nh phng thc du nhy n, du gch ngc n tt c cc k t c bit
trong shell, nhng n ch c th n mt k t ti mt thi im, ch khng phi mt
nhm cc k t. Bn c th vit li v d greeting s dng du gch ngc thay cho
du nhy kp bng cch s dng cu lnh sau:
greeting=hello\ there (for bash and pdksh)
set greeting=hello\ there (for tcsh)

Trong cu lnh ny, du gch ngc n k t trng trong shell v chui hello there
c gn cho bin greeting.
Du gch ngc thng c s dng nhiu nht khi bn mun n ch mt k t
trong shell. Vn ny xut hin khi bn mun a vo mt k t c bit trong mt
chui. V d, lu gi ca mt hp a my tnh vo mt bin c tn l disk_price,
s dng cu lnh sau.
disk_price=\$5.00 (for bash and pdksh)
set disk_price = \$5.00 (tcsh)

Du gch ngc trong v d ny n du la trong shell. Nu du gch ngc khng


c , shell c th c tm mt bin c tn l 5 v thc hin mt php thay th bin
trn bin . Nu khng c bin tn l 5 c nh ngha, shell c th mt gn gi tr
.00 cho bin disk_price. ( shell ny c th thay th mt gi tr rngcho bin $5 ) Bn
cng c th s dng du nhy n trong v v disk_price n k hiu $ trong shell.
Du nhy ngc (``) thc hin mt chc nng khc. Bn s dng chng khi bn mun
s dng cc kt qu ca mt cu lnh trong mt cu lnh khc. V d, t gi tr
ca bin contents bng danh sch cc file c trong th mc hin ti, g cu lnh sau:
contents=`ls` (for bash and pdksh)
set contents = `ls` (for tcsh)

Cu lnh ny thc thi cu lnh ls v lu kt qu ca cu lnh vo bin contents . Nh


s c ch ra trong cc on sau, c im ny c th rt hu ch khi bn mun ghi
kt qu ca mt chng trnh shell thc hin mt vi hot ng vo trong mt cu
lnh khc.
6.4. S dng cu lnh test
Trong bash v pdksh, cu lnh test c s dng tnh gi tr ca mt biu thc c
iu kin. Thng thng, bn s dng cu lnh test tnh gi tr iu kin trong mt

lnh c iu kin hoc tnh gi tr u vo hay iu kin tn ti cho mt cu lnh lp.


Cu lnh test c c php sau:
test expression

hoc
[ expression ]

Bn c th s dng mt vi ton t c sn vi cu lnh test. Cc ton t ny c


phn loi thnh bn nhm khc nhau: cc ton t xu, cc ton t s, cc ton t file,
v cc ton t logic.
Bn s dng cc ton t xu tnh gi tr biu thc xu. Bng 6.4.1 a ra danh sch
cc ton t xu m ba ngn ng lp trnh shell h tr.
Bng 6.4.1 Cc ton t chui cho cu lnh test.
Ton t

ngha

str1 = str2

Tr li gi tr true nu str1 ging vi str2

str1 != str2

Tr li gi tr true nu str1 khng ging str2

str

Tr li gi tr true nu str khc rng

-n str

Tr li gi tr true nu di ca str ln hn 0

-z str

Tr li gi tr true nu di ca str bng 0

Cc ton t s thc hin cc chc nng tng t cc ton t string ngoi tr vic
chng hot ng trn cc i s kiu s. Bng 6.4.2 lit k danh sch cc ton t s
c s dng trong cu lnh test.
Bng 6.4.2 Cc ton t s cho cu lnh test.
Ton t

ngha

int1 -eq int2

Tr li gi tr true nu int1 bng int2

int1 -ge int2

Tr li gi tr true nu int1 ln hn hoc bng int2

int1 -gt int2

Tr li gi tr true nu int1 ln hn int2

int1 -le int2

Tr li gi tr true nu int1 nh hn int2

int1 -lt int2

Tr li gi tr true nu int1 nh hn int2

int1 -ne int2

Tr li gi tr true nu int1 khng bng int2

Bn s dng cc ton t file cho cu lnh test thc hin cc chc nng chng hn
nh kim tra xem cc file c tn ti hay khng v kim tra xem file thuc loi
no, file c a vo nh mt i s cho cu lnh test. Bng 6.4.3 a ra danh sch
cc ton t file cho cu lnh test.

Bng 6.4.3 Cc ton t File cho cu lnh test.


Ton t

ngha

-d file

Tr li gi tr true nu file c xc nh l mt th mc

-f file

Tr li gi tr true nu file c xc nh l mt file thng thng

-r file

Tr li gi tr true nu file xc nh l c th c bi tin trnh

-s file

Tr li gi tr true nu file xc nh c di khc 0

-w file

Tr li gi tr true nu file c th ghi c bi tin trnh

-x file

Tr li gi tr true nu file xc nh l c th thc thi

Bn s dng cc ton t logic cho cu lnh test kt hp cc ton t s, xu, hay file
hoc ph nh mt ton t n s, xu, hoc file. Bng 6.4.4 a ra danh sch c ton
t logic cho cu lnh test.
Bng 6.4.4 Cc ton t Logic ch cu lnh test.
Ton t

ngha

! expr

Tr li gi tr true nu expr khc true

Expr1 -a expr2

Tr li gi tr true nu expr1 v expr2 l true

Expr1 -o expr2

Tr li gi tr true nu expr1 hoc expr2 l true

Shell tcsh khng c cu lnh test, nhng cc biu thc ca tsch thc hin cc chc
nng tng t. Cc ton t tcsh h tr hu ht ging nh c h tr trong ngn ng
C. Bn thng s dng cc biu tc ny trong cc cau lnh if v while. Trong on
sau,phn "S dng cc lnh c iu kin " v "S dng cc lnh lp " s ni v cc
cu lnh ny. Ging nh cu lnh test trong bash v pdksh, cc biu thc trong tcsh
h tr cc ton t s, xu, file, v logic. Bng 6.4.5 a ra danh sch cc ton t c
h tr trong c biu thc ca tcsh.
Bng 6.4.5 Cc tan t s cho for cc biu thc tcsh.
Ton t

ngha

int1 <= int2

Tr li gi tr true nu int1 nh hn int2

int1 >= int2

Tr li gi tr true nu int1 ln hn hoc bng int2

int1 < int2

Tr li gi tr true nu int1 nh hn int2

int1 > int2

Tr li gi tr true nu int1 ln hn int2

Bng 6.4.6 a ra danh sch cc ton t xu m cc biu thc ca tcsh h tr.


Table 6.4.6. Cc ton t xu cho cc biu thc ca tcsh.
Ton t

ngha

str1 == str2

Tr li gi tr true nu str1 bng str2

str1 != str2

Tr li gi tr true nu str1 khng bng str2

Bng 6.4.7 a ra danh sch c ton t file m cc biu thc tcsh h tr.
Bng 6.4.7 Cc ton t File cho cc biu thc tcsh.
Ton t

ngha

-r file

Tr li gi tr true nu file c th c c

-w file

Tr li gi tr true nu file c th ghi c

-x file

Tr li gi tr true nu file c th thc thi

-e file

Tr li gi tr true nu file tn ti

-o file

Tr li gi tr true nu file c s hu bi ngi s dng hin ti

-z file

Tr li gi tr true nu file c kch thc bng 0

-f file

Tr li gi tr true nu file l file thng thng

-d file

Tr li gi tr true nu file l mt th mc

Bng 6.4.8 a ra danh sch cc ton t logic c h tr trong cc biu thc ca


tcsh.
Table 6.4.8 Cc ton t Logical cho c biu thc ca tcsh.
Ton t

ngha

exp1 || exp2

Tr li gi tr true nu exp1 l true hoc exp2 l true

exp1 && exp2

Tr li gi tr true nu c hai exp1 v exp2 l true

! exp

Tr li true nu exp khc true

6.5. S dng cc cu lnh r nhnh


Trong cc shell bash, pdksh v tcsh, mi shell c hai hnh thc khc nhau ca cu
lnh r nhnh. Bn s dng cc lnh ny thc thi cc phn khc nhau ca chng
trnh shell ph thuc vo cc iu kin nht nh c ng hay khng. Vi hu ht cc
lnh thc hin, c php cho cc cu lnh ny khc nhau gia cc shell.
6.5.1. Lnh if
Tt c ba shell u h tr cc cu lnh if-then-else statements lng nhau. Cc lnh ny
cung cp cho bn cch thc hin cc cu lnh test iu kin phc tp trong chng
trnh shell ca bn. C php ca lnh if trong bash v pdksh l ging nhau:
if [ expression ]
then

commands
elif [ expression2 ]
commands
else
commands
fi

Ch rng shell bash v pdksh s dng o ngc ca tn cu lnh trong hu ht cc


lnh phc tp kt thc cu lnh. Trong lnh bn trn, t kha fi c s dng
lm k hiu kt thc cho cu lnh if.
C hai mnh elif v else u l cc phn ty chn ca lnh if. Lnh elif l rt gn
ca else if. Lnh ny c thc thi nu cc biu thc nm trong lnh if hoc tt c cc
biu thc trong cc lnh elif trc u khng c gi tr true. Cc cu lnh nm
trong lnh else c thc thi ch nu khng mt biu thc no trong mnh if v
trong bt k mnh elif no c gi tr true.
Trong tcsh, lnh if c hai dng khc nhau. Dng th nht cung cp cng mt chc
nng nh lnh if trong bash v pdksh. Dng ny ca lnh if c c php nh sau:
if (expression1) then
commands
else if (expression2) then
commands
else
commands
endif

Li mt ln na cc phn if v else ca lnh if l ty chn. Lnh ny cng c th c


vit vi elif. Nu m bn trn trnh by ton b chng trnh tcsh, n nn bt u
vi dng sau m bo chy hon ho:
#!/bin/sh

Dng th hai ca lnh if m tcsh cung cp l bin i n gin ca lnh if dng u


tin. Dng ny ca lnh if ch tnh gi tr mt biu thc n. Nu biu thc l true n
s thc thi cu lnh n. Nu biu thc l false, khng c iu g xy ra. C php cho
dng ny ca lnh if l nh sau.
if (expression) command

Bn di l mt v d v s dng lnh if trong bash hay pdksh. Lnh ny kim tra


xem c mt file c tn l a .profile trong th mc hin ti hay khng:
if [ -f .profile ]
then
echo "There is a .profile file in the current directory."
else
echo "Could not find the .profile file."
fi

Cng vi v d trn s dng c php ca tcsh nh sau:


#
if ( { -f .profile } ) then
echo "There is a .profile file in the current directory."
else
echo "Could not find the .profile file."
endif

Ch rng trong v d tcsh dng u tin bt u vi k t #. K hiu ny c yu


cu tcsh nhn ra file cha cc cu lnh l mt file kch bn tcsh.
6.5.2. Lnh case
Lnh case cho php bn so snh mt mu vi mt s cc mu khc v thc thi mt
khi m nu mt s ging nhau c tm thy. Lnh case trong shell mnh hn lnh
case trong Pascal hay lnh switch trong C. Vi lnh shell trong case , bn c th so
snh cc xu vi cc k t i din trong chng; bn c th ch c th so snh cc kiu
c lit k hoc cc gi tr s nguyn trong Pascal v C.
C php cho lnh case trong bash v pdksh l nh sau:
case string1 in
str1)
commands;;
str2)
commands;;
*)

commands;;
esac

String1 c so snh vi str1 v str2. Nu mt trong cc xu ny h vi string1, cc


cu lnh bn di n cho n khi gp hai du chm phy(;;) c thc hin. Nu
khng c xu no (str1 hoc str2) hp vi string1, cc cu lnh kt hp vi du hoa
th c thc thi. Cc cu lnh ny l iu kin case mc nh bi v du hoa th hp
vi tt c cc xu.
Cu lnh trong tcsh tng ng vi cu lnh case trong bash v pdksh c gi l
lnh switch. Lnh ny gn gi vi c php lnh switch trong C. C php cho lnh
switch l nh sau:
switch (string1)
case str1:
statements
breaksw
case str2:
statements
breaksw
default:
statements
breaksw
endsw

Lnh ny x l ging n cch s l ca lnh case trong bash v pdksh. Mi xu trong


t kha case c so snh vi string1. Nu xu bt k trong cc xu trn hp vi
string1, cc m bn di n cho n khi gp t kha breaksw keyword c thc
hin. Nu khng c xu no ph hp, cc m bn di t kha default cho n khi
gp t kha breaksw c thc thi.
M bn di l mt v d v lnh case trong shell bash hay pdksh. M ny kim tra
xem ty chn u tin trong dng lnh l -i hay -e. Nu n l -i, chng trnh m s
cc dng trong mt file xc nh bi ty chn th hai trong dng lnh bt u vi k
t i. Nu ty chn th nht l -e, chng trnh m s cc dng trong file c xc
nh bi ty chn th hai ca dng lnh bt u vi k t e. Nu ty chn th nht
ca dng lnh khc -i v khc -e, chng trnh s in ra thng tin bo li trn mn
hnh.
case $1 in
-i)

count=`grep ^i $2 | wc -l`
echo "The number of lines in $2 that start with an i is $count"
;;
-e)
count=`grep ^e $2 | wc -l`
echo "The number of lines in $2 that start with an e is $count"
;;
* )
echo "That option is not recognized"
;;
esac

V d tng t c vit theo c php tcsh:


# remember that the first line must start with a # when using tcsh
switch ( $1 )
case -i | i:
set count = `grep ^i $2 | wc -l`
echo "The number of lines in $2 that begin with i is $count"
breaksw
case -e | e:
set count = `grep ^e $2 | wc -l`
echo "The number of lines in $2 that begin with e is $count"
breaksw
default:
echo "That option is not recognized"
breaksw
endsw

6.6. S dng cc lnh lp


Ngn ng shell cng cung cp lnh lp m thng c s dng nht. Cc lnh lp
ny c thao tc khi bn cn thc hin mt hnh ng lp i lp li, chng hn nh
khi bn x l danh sch cc file.

6.6.1. Lnh for


Lnh for thc thi cc cu lnh cha trong n mt s ln. Lnh for c hai dng khc
nhau trong bash v pdksh. Dng th nht ca lnh for m bash v pdksh h tr c c
php nh sau:
for var1 in list
do
commands
done

Trong dng ny, lnh for thc thi mt ln cho mi phn t nm trong danh sch. Danh
sch ny c th c thay i cha cc t c phn bit vi nhau bi du cch, hoc
n c th l mt danh sch cc gi tr c g trc tip vo trong cu lnh. Mi ln
qua vng lp, bin var1 c gn cho phn t hin ti trong danh sch v tip tc cho
n khi phn t cui cng trong danh sch.
Dng th hai ca lnh for c c php nh sau:
for var1
do
statements
done

Trong dng ny, lnh for thc thi mt ln cho mi phn t nm trong bin var1. Khi
bn s dng c php ny ca lnh for, chng trnh shell gi s rng bin var1 cha
tt c cc i s c a vo trong chng trnh shell t dng lnh. in hnh, dng
ny ca lnh for l tng ng vi vit cc lnh sau:
for var1 in "$@"
do
statements
done

Tng ng vi lnh for trong tcsh l lnh foreach. N x l tng t nh lnh for
trong bash v pdksh. C php ca lnh foreach nh sau:
foreach name (list)
commands
end

Mt ln na, nu m ny l mt chng trnh hon thin, n nn bt u vi k hiu #


(v tt nht l #!/bin/sh buc thc thi theo Bourne shell). Di y l mt v d v
s dng lnh for trong bash hay pdksh. V d ny ly cc ty chn dng lnh s lng
bt k cc file text. Chng trnh c mi file trong cc file ny, chuyn i tt c cc
k t thnh ch hoa, v sau lu tr kt qu trong mt file c cng tn nhng c
phn m rng l .caps.
for file
do
tr a-z A-Z < $file >$file.caps
done

Chng trnh sau l mt v d tng t c vit theo ngn ng shell tcsh:


#
foreach file ($*)
tr a-z A-Z < $file >$file.caps
end

6.6.2. Lnh while


Mt lnh lp khc c a vo ngn ng lp trnh shell l lnh while. Lnh ny thc
thi mt khi cc cu lnh theo mt iu kin no . C php ca lnh while trong
bash v pdksh l nh sau:
while expression
do
statements
done

C php cho lnh while trong tcsh l nh sau:


while (expression)
statements
end

Di y l mt v d v lnh while theo ngn ng shell bash hay pdksh. Chng


trnh ny a ra danh sch cc i s c a vo chng trnh cng vi s cc i
s.

count=1
while [ -n "$*" ]
do
echo "This is parameter number $count $1"
shift
count=`expr $count + 1`
done

Lnh shift chuyn i s dng lnh ln mt sang bn tri (xem on sau"Lnh shift"
bit thm thng tin). Chng trnh bn di tng t c vit cho ngn ng tcsh:
#
set count = 1
while ( "$*" != "" )
echo "This is parameter number $count $1"
shift
set count = `expr $count + 1`
end

6.6.3. Lnh until


Lnh until c c php v chc nng tng t lnh while. Ch c s khc bit thc s
gia hai lnh l lnh until thc thi m trong khi ca n khi gi tr ca biu thc l sai
v lnh while thc thi cc khi lnh cu n nu biu thc c gi tr l true. C php
cho lnh until trong bash v pdksh l nh sau:
until expression
do
commands
done

lm cho v d c s dng vi lnh while lm vic vi lnh until, tt c nhng g


bn phi lm ch l ph nh iu kin, nh ch ra trong on m bn di:
count=1
until [ -z "$*" ]

do
echo "This is parameter number $count $1"
shift
count=`expr $count + 1`
done

Ch c s khc nhau trong v d ny l v v d v lnh while l ty chn -n ca lnh


test, n c ngha rng xu khng c di bng 0, c thay bi ty chn -z , n c
ngha l chui c di bng 0. Trong thc t, lnh until t c dng bi v vi bt
k lnh until no, bn cng c th vit c bng lnh while. Lnh until khng c
h tr trong tcsh.
6.6.4. Lnh shift
Tt c cc shell bash, pdksh, v tcsh u h tr mt lnh gi l lnh shift. Lnh shift
chuyn cc gi tr hin ti c lu tr trong cc i s dng lnh ln mt v tr sang
tri. V d, nu cc gi tr ca cc i s l
$1 = -r $2 = file1 $3 = file2

v bn thc hin lnh shift


shift

kt qu cc i s c a vo nh sau:
$1 = file1 $2 = file2

Bn c th dch chuyn cc i s qua nhiu hn mt v tr bi mt s xc nh


vikm theo vi lnh shift. Lnh sau dch chuyn i s ln hai v tr:
shift 2

Lnh ny rt hu ch khi c mt chng trnh shell cn phn tch cc ty chn dng


lnh. Cc tyd chn thng c t trc bi mt du ni v mt k t ch ra ty
chn no c s dng. Bi v cc ty chn lun lun c x l trong mt vng lp
ca mt loi cu lnh, bn s thng mun nhy n i s tip theo mt khi bn
xc nh c ty chn no nn c x l tip theo. V d, chng trnh shell sau
ch hai ty chn dng lnh, mt xc nh mt file u vo v mt xc nh mt file
u ra. Chng trnh c file u vo, chuyn tt c cc k t trong file input thnh
ch hoa, v sau lu tr kt qu trong file u ra xc nh:
while [ "$1" ]
do

if [ "$1" = "-i" ] then


infile="$2"
shift 2
else if [ "$1" = "-o" ] then
outfile="$2"
shift 2
else
echo "Program $0 does not recognize option $1"
fi
done
tr a-z A-Z <$infile >$outfile

6.6.5. Lnh select


Shell pdksh a ra mt lnh lp m bash v tcsh khng h tr, lnh select. N hi
khc vi cc lnh lp khc bi v n khng thc thi mt khi m lnh shell theo mt
iu kin true hoc false. Nhng g lnh select lm l cho php bn t ng to cc
menu text n gin. C php ca lnh select nh sau:
select menuitem [in list_of_items]
do
commands
done

Khi bn thc thi lnh select, pdksh to mt i tng menu c nh s cho mi


phn t c trong list_of_items. list_of_items ny c th l mt bin cha nhiu hn
mt phn t, chng hn nh choice1 choice2 hoc n c th l mt danh sch cc la
chn c g vo t dng lnh, nh trong v d sau:
select menuitem in choice1 choice2 choice3

Nu danh sch list_of_items is khng c cung cp, lnh select s dng cc i s


dng lnh cho lnh thc hin.
Khi ngi s dng ca chng trnh c cha lnh select chn mt trong s cc phn
t ca menu bng cch g vo s tng ng vi n, lnh select lu gi tr ca phn t
c la chn trong bin menuitem. Cc lnh trong khi do sau c th thc hin
cc hot ng trn phn t menu ny.
Di y l mt v d v vic s dng lnh select nh th no. V d ny hin th ba
phn t ca menu. Khi ngi s dng chn mt phn t, chng trnh s hi bn xem

c phi phn t c la chn khng, nu ngi s dng g khc vi y hoc Y,


chng trnh s hin th li menu.
select menuitem in pick1 pick2 pick3
do
echo "Are you sure you want to pick $menuitem"
read res
if [ $res = "y" -o $res = "Y" ]
then
break
fi
done

V d ny gii thiu mt vi lnh mi. Lnh read c s dng ly d liu vo t


ngi s dng. N lu bt k ci g ngi s dng g vo bin xc nh. Lnh break
kt thc vng lp lnh while, select, hoc for.
6.6.6. Lnh repeat
Shell tcsh c mt lnh lp khng c trong pdksh hay bash. Lnh ny l lnh repeat.
Lnh repeat thc thi cu lnh n theo mt s ln xc nh. C php cho lnh repeat
l nh sau:
repeat count command

V d sau ca lnh repeat ly mt tp hp cc s l cc ty chn dng lnh v in ra s


cc du chm ln mn hnh. Chng trnh ny hot ng nh mt chng trnh minh
ha rt th s.
#
foreach num ($*)
repeat $num echo -n "."
echo ""
end

Bn c th vit li lnh repeat bt k bng lnh while hay lnh for; c php repeat ch
thun tin hn m thi.

6.7. S dng cc hm
Ngn ng shell cho php bn dnh ngha hm ca chnh bn. Cc hm ny c nh
ngha ging nh cch bn nh ngha cc hm trn ngn ng lp trnh C hay cc ngn
ng lp trnh khc. Thun li chnh ca vic s dng hm t chc, trnh vit tt c
cc m shell ca bn trong mt dng. M c vit s dng cc hm c khuynh
hng d hn trong vic c v bo tr v cng l khuynh hng nh gn hn bi v
bn c th nhm cc m chung vo trong mt hm thay vic a n vo tt c cc ni
cn n.
C php to mt hm trongbash v pdksh l nh sau:
fname () {
shell commands
}

Cng vi c php trc , pdksh cho php c php sau:


function fname {
shell commands
}

C hai dng ny u c x l chnh xc nh nhau theo cng mt cch.


Sau khi bn nh ngha hm ca bn s dng mt trong cc dng trn, bn c th
gi n n bng cch vo lnh sau:
fname [parm1 parm2 parm3 ...]

Ch rng bn c th a s lng bt k cc i s vo trong hm ca bn. Khi bn


a cc i s vo trong mt hm, n xem cc i s ny nh i s ca mt chng
trnh shell khi bn a cc i s ny t dng lnh. V d, chng trnh shell sau cha
vi hm, mi hm thc hin mt nhim v m c kt hp vi cc ty chn dng
lnh. V d ny bao trm nhiu ni dung trong phn ny. N c tt c cc file c
a vo t dng lnh v ph thuc vo ty chn c s dng, vit ra file vi tt c
cc k t hoa, vit ra file vi tt c cc k t thng, hoc in cc file.
upper () {
shift
for i
do
tr a-z A-Z <$1 >$1.out

rm $1
mv $1.out $1
shift
done; }
lower () {
shift
for i
do
tr A-Z a-z <$1 >$1.out
rm $1
mv $1.out $1
shift
done; }
print () {
shift
for i
do
lpr $1
shift
done; }
usage_error () {
echo "$1 syntax is $1 <option> <input files>"
echo ""
echo "where option is one of the following"
echo "p -- to print frame files"
echo "u -- to save as uppercase"
echo "l -- to save as lowercase"; }
case $1
in
p | -p) print $@;;
u | -u) upper $@;;

l | -l) lower $@;;


*) usage_error $0;;
esac

Chng trnh tcsh khng h tr cc hm.


6.8. Tng kt
Trong chng ny, bn thy c nhiu c im ca cc ngn ng lp trnh bash,
pdksh v tcsh. Khi bn s dng Linux, bn s thy rng bn s dng cc ngn ng lp
trnh shell cng ngy cng thng xuyn. Cho d ngn ng shell rt mnh v d hc,
bn c th gp phi mt vi vn khi chng trnh shell khng ph hp vi vn
bn gii quyt. Trong nhng trng hp nh vy, bn c th nghin cu tm hiu cc
ngn ng khc c th s dng c trong Linux.

7. Ci t v qun tr WebServer
7.1. Hng dn ci t trn mi trng Linux.
Ci t trn mi trng Linux hon ton khng kh nh nhng g chng ta ngh khi
mi tip xc vi h iu hnh ny. Qu trnh ci t ch n gin, chng ta thc hin
cu lnh rpm vi c php sau:
rpm [ivhqladefUV] [-force] [nodeps] [--oldpackage] package list
y l chng trnh qun l cc gi ci. N cho php bn qun l cc gi RPM, thc
hin rt d dng vic ci t v g b phn mm. ci t phn mm c tn l
precious-software-1.0.i386.rpm chy cu lnh sau:
rpm i precious-software-1.0.i386.rpm
bn c th lm cho vic ci t trng p mt hn bng cch s dng ty chn ivh
thay cho ty chn i. Nu bn ci mt gi phn mm ri nhng v mt l do no
bn li mun ci li n ln phin bn c, bn ch cn s dng ty chn force cho
lnh rpm. Nu bn mun nng cp mt phn mm, bn s dng ty chn U.V d:
rpm Uvh precious-software-1.0.i386.rpm
Tuy nhin bn ci mt phin bn mi v by gi bn mun ci li phin bn c,
nu bn mun s dng lnh trn, h thng s bo li phin bn ci t l phin bn
mi hn phin bn m bn mun ci. c th thc hin c iu ny bn s dng
ty chn --oldpackage cng vi ty chn U ci t phin bn c. tm kim
cc gi ci c ci vo h thng ca bn, bn s dng lnh sau:

rpm -qa
tm cc gi ci ca mt chng trnh nh sendmail, bn c th s dng lnh
rpm q sendmail
H thng s tr li gi ci s dng ci sendmail. pht hin gi ci no ca
mt file xc nh nh /bin/tcsh, ta s dng cu lnh:
rpm qf /bin/tcsh

m bo rng mt gi c ci cha c thay i theo bt c cch no, bn c


th s dng ty chn V. V d tt c cc file c ci trng thi nguyn bn
khng b thay i s dng lnh
rpm Va
Ty chn ny tr ln rt hu ch nu bn nhn thc c rng mt hay nhiu gi ci
c th b ph hy bi ngi khc.
g cc gi ci khi h thng bn s dng lnh rpm vi ty chn e
rpm e sendmail
Nu bn thy rng vic g b gi ci c th b dng bi cc chng trnh khc bi v
chng ph thuc vo n hay cc file ca n, bn phi quyt nh xem bn c tip tc
b gi ci hay chng trnh ny hay khng, nu bn mun g b bn c th s dng
ty chn nodeps cng vi ty chn e p buc rpm g b gi ci .
7.2.

Qun tr WebServer

7.2.1. Phn mm Apache


My ch web nghe yu cu t pha client, nh b trnh duyt Nestcape Navigator
hoc Internet Explorer. Khi nhn c yu cu my ch x l yu cu v tr d liu
li cho my client. D liu tr v my trm thng l cc trang nh dng c cha
hnh nh v text. Trnh duyt nhn d liu v hin th trang d liu cho ngi dng.
Khi nim my ch web rt n gin, n i yu cu, thc hin, ri tr li cho ngi
dng.

My ch web ni chuyn vi cc my client v my trm thng qua giao thc HTTP


(Hypertext Transfer Protocol). iu ny cho php my trm kt ni ti nhiu nh
cung cp dch v web m khng gp phi cc vn v tng thch.
Phn ln cc yu cu c nh dng di dng trang HTML (Hypertect Markup
Language). HTML cho php lin kt nhiu vn bn v ti nguyn khc nhau. Siu vn
bn cho php lin kt ti cc trang vn bn khc trn cng mt my tnh hoc trn cc
my tnh t trn khp th gii.
Apache c pht trin da trn NCSA web server, l phin bn cung cp y cc
tnh nng ca my ch (HTTP) web do d n Apache Server thc hn. Apache cung
cp mt my ch web m ngun m, tin cy, hiu qu v d dng m rng. Phn
mm my ch bao gm: daemon server, file cu hnh, cng c qun tr, v ti liu.
Phn mm Apache Server sn c c trn trang Apache Group. Bn c th ti v t cc
a ch http://www.apache.org/dist/. Bn ti v file .tar.gz tng ng
vi phin bn bn mun s dng. V d, Phin bn mi nht c vit l Apache
1.3.12, v vy file bn cn ti v l apache_1.3.12.tar.gz Bn c th ly m
ngun
t
a
ch
http://www.apache.org/dist/apache_1.3.12.tar.gz.
Gii nn file
gii nn file ny, s dng cu lnh sau (gi s rng bn file trong th mc
temp):
cd temp
gzip -d -c apache_1.3.12.tar.gz | tar xvf Cu lnh ny to mt th mc apache_1.3.12 trong th mc temp

7.2.2. Bin dch v ci t


Chy cc cu lnh sau:
cd apache_1.3.12
./configure --prefix=<path-to-apache>
make
make install
Ch s dng ng dn y thay cho <path-to-apache>. ng dn y
ny nn l ni bn mun ci t apache server, chng hn nh
./configure --prefix=/afs/uncc.edu/usr/q/zlian/apache
7.2.3. Khi ng v tt WebServer
Khi ng Apache
<path-to-apache>/bin/apachectl start
V d:
/afs/uncc.edu/usr/q/zlian/Apache/bin/apachectl start
Tt Apache

<path-to-apache>/bin/apachectl stop
V d:
/afs/uncc.edu/usr/q/zlian/Apache/bin/apachectl stop
7.2.4. Cu hnh Apache
Theo cch truyn thng, cu hnh Apache c chia thnh ba file cu hnh:
httpd.conf, access.conf, v srm.conf. Theo th t cc file ny c
ngha nh sau, httpd.conf l file cu hnh server chnh, access.conf l file
nh ngha cc quyn truy cp, v srm.conf cc ti nguyn server c nh ngha,
chng hn nh nh x cc th mc v cc biu tng. Trong 1.3.4, ba file ny c
trn vo mt file chung httpd.conf, n c th tm thy trong th mc conf. V
d:
/afs/uncc.edu/usr/q/zlian/apache/conf/
Ch : Cc hng dn quan trng cho cu hnh ca bn:

ServerName
ServerName ch ra a ch IP ca my ch ci t dch v WebServer, thng thng
nu my ca bn l my cc b, khng ni mng, a ch ny mc nh l 127.0.0.1
tng ng vi tn my l localhost. Nu my ny c a ch mng, bn c th thay th
bng a ch IP ca my. xem a ch ca my bn thc hin lnh:

ifconfig a

Listen

Ch dn ny ni cho server lng nghe cc yu cu trn da ch IP c xc nh


v/hoc cng TCP/IP . Mc nh, server lng nghe cng 80, nhng bn nn s dng
cng ln hn 1024, bi v s t hn 1024 rt hay c s dng trong cc tin trnh ca
h thng. Nh trong v d sau, Apache nghe trn c hai cng port 8080 and 8081.
listen 8080
listen 8081
Vi cu hnh ny, bn c th kim tra xem server ca bn chy thnh cng hay cha
bng cch g vo a ch sau trn trnh duyt:
http://localhost:8080
hoc
http://localhost:8081

DocumentRoot

Th mc ti liu mc nh l <path-to-apache>/htdocs, bn c th ti liu html , v


d billchu.html, trong th mc ny v kim tra. V d:
http://152.15.35.2:8080/billchu.html
Bn cng c th thay i th mc ti liu bng s dng hng dn sau trong file
httpd.conf:

DocumentRoot /usr/web
Sau mt truy cp n http://www.my.host.com/index.html s tng
ng /usr/web/index.html.
Thng xut hin trong khi cu hnh nh sau: (i.e., "DocumentRoot
/usr/web/") thm mt k t / ui, bn nn trnh iu ny.
7.2.5. Xc thc ngi dng
ngn chn truy cp vo cc file trn server ca bn, bn nn s dng bo v
user/password, Bn c th s dng cc hng dn sau.
AuthType
AuthName
AuthUserFile
AuthGroupFile
require
<Directory></Directory>
<Files></Files>
AuthType La chn kiu xc thc ngi s dng cho mt th mc. Ch c Basic
v Digest l thc thi hin ti.
AuthName t tn ca xc thc cho mt th. Tn xc thc ny s c gi n
client nhng ngi s dng bit loi username v password no gi.
AuthName c mt i s; Nu tn xc thc c du cch n phi c t trong du
trch dn.
AuthUserFile t tn ca file vn bn thun ty cha danh sch nhng ngi s
dng v mt khu cho vic xc thc ngi s dng. Tn file l ng dn n n file
ngi s dng. Nu n khng phi l ng dn tuyt i (v d, nu n khng bt
u vi /), N c xem nh ng dn tng i n ServerRoot.
AuthGroupFile t tn ca mt file vn bn thun ty cha danh sch cc nhm
ngi s dng cho vic xc thc ngi s dng. Tn file l ng dn n file group.
Nu n khng phi l ng dn tuyt i (v d, khng bt u vi du /), n c
xem nh ng dn tng i n ServerRoot.
require Chn nhng ngi s dng no c th truy co vo mt th mc. C php
cho php l:
1. Ch nhng ngi s dng c t tn c th truy cp th mc:
require user userid userid ...
2. Ch nhng ngi s dng trong cc nhm c t tn c th truy cp th
mc:
require group group-name group-name ...
3. Tt c nhng ngi s dng c th truy cp th mc:
require valid-user
<Directory> v </Directory> c s dng nhm mt nhm cc
hng dn v n s ch c p dng cho th mc c t tn v cc th mc con

ca th mc . Mt hng dn bt k c cho php c trong mt directory c th


c s dng.
<Files> v </Files> pcung cp quyn truy cp bi tn file (bao gm ng
dn n file).
V d:
<Directory
"/afs/uncc.edu/usr/q/zlian/apache/htdocs/manual">
AuthType Basic
AuthName "Restricted Directory"
AuthUserFile passwd
AuthGroupFile /dev/null
require valid-user
</Directory>
thit lp file password, bn c th s dng cng c c tn l htpasswd c
cung cp bi Apache. Trc tin to file password bng cch:
% touch passwd
Trong th mc "<path-to-apache>/bin/". thm mt ngi s dng, thc
hin lnh:
% htpasswd <path-to-password-file>/passwd zlian
New password:
Re-type new password:
n y bn hon thnh xong vic cu hnh Apache v thc hin xc thc ngi
s dng cho dch v web ca bn.

8. Qun tr cc tin trnh


8.1. Tin Trnh
8.1.1. Tin trnh tin cnh
Khi bn ang trn du nhc h thng (# hoc $) v gi mt chng trnh, chng
trnh tr thnh mt tin trnh v i vo hot ng di s kim sot ca h thng. Du
nhc ca h thng s khng xut hin khi tin trnh ang chy Khi tin trnh hon
thnh tc v v chm dt, h iu hnh s tr li du nhc bn g tip lnh thc thi
chng trnh khc. Chng trnh hot ng theo cch ny c gi l chng trnh
tin cnh (foreground). V d khi bn thc hin lnh:
ls R /
Bn s phi ch i rt lu cho n khi lnh thc hin xong bn mi c th nhp vo
lnh mi thc hin cng vic tip theo ca bn.
8.1.2. Tin trnh hu cnh

Nu c cch no yu cu Linux a cc tin trnh chim nhiu thi gian x l hoc


t tng tc vi ngi dng ra hot ng pha hu cnh (background) tr li ngay du
nhc c th thc hin cc tin trnh tin cnh th tt hn. iu ny c th thc
hin c bng cch kt hp ch th & vi lnh gi chng trnh m ta s tm hiu
phn sau, khi tin trnh s hot ng pha hu cnh v tr li ngay du nhc cho
chng ta lm cng vic khc. Cc tin trnh nh vy gi l cc tin trnh hu cnh.
Vic chy tin trnh hu cnh rt thun tin , chng cho php nhiu chng trnh
tng tc vi nhau.
8.2. iu khin v gim st cc tin trnh
Nh cp trc y, cc tin trnh thng trc thng c bt u bng tin trnh
init khi khi ng. Bn c th iu khin tin trnh no chy ngay khi khi ng bng
cch cu hnh li cc file cu hnh v kch bn ca init. Ngoi tr cc tin trnh thng
trc, cc loi tin trnh khc m bn s chy c gi l cc tin trnh ca ngi s
dng hay cc tin trnh tng tc. Bn phi chy mt tin trnh tng tc thng qua
mt shell. Mi mt shell chun cung cp mt dng lnh khi ngi s dng vo tn
ca mt chng trnh. Khi ngi s dng vo tn chng trnh hp l trn dng lnh,
shell s t to mt bn copy nh mt tin trnh mi v thay th tin trnh mi vi
chng trnh c t tn trn dng lnh. Ni mt cch khc shell s chy chng
trnh c t tn nh mt tin trnh khc. ly thng tin v tt c cc tin trnh
ang chy trn h thng ca bn, bn cn chy tin ch c tn l ps
8.2.1 S dng lnh ps ly thng tin trng thi ca tin trnh
Tin ch ny to ra mt bo co v tt c cc tin trnh trn h thng ca bn. v d,
nu bn chy lnh ps , n s hin th kt qu nh sau:
PID TTY

TIME

CMD

13636 pts/1

00:00:00 bash

13696 pts/1

00:00:00 man

13699 pts/1

00:00:00 sh

13700 pts/1

00:00:00 sh

13704 pts/1

00:00:00 less

16692 pts/1

00:00:00 tail

17252 pts/1

00:00:00 ps

Di y l gii thch v ngha ca cc trng

Trng

Gii Thch

USER hoc UID

Tn ca tin trnh

PID

ID (nh danh) ca tin trnh

%CPU

% CPU s dng ca tin trnh

%MEM

% b nh tin trnh s dng

SIZE

Kch thc b nh o tin trnh s dng

RSS

Kch thc ca b nh thc s dng bi tin trnh

TTY

Vng lm vic ca tin trnh

STAT

Trng thi ca tin trnh

START

Thi gian hay ngy bt u ca tin trnh

TIME

Tng thi gian s dng CPU

COMMAND

Cu lnh c thc hin

PRI

Mc u tin ca tin trnh

PPID

ID ca tin trnh cha

WCHAN

Tn ca hm nhn khi tin trnh ng c ly t file


/boot/System.map

FLAGS

S c c kt hp vi tin trnh

Tin ch ps cng tip nhn mt vi i s t dng lnh. Bng bn di ch ra cc ty


chn c s dng chung:

Ty Chn

Miu t

Hin th cc tin trnh ca tt c nhng ngi s dng

Hin th cc bin mi trng ca tin trnh sau khi dng lnh


c thc thi

Hin th kt qu y

Hin th tn ngi s dng v thi gian bt u tin trnh

Hin th kt qu theo nh dng rng. Bnh thng, kt qu kt


xut b ct nu n khng va mt dng. S dng ty chn ny
bn c th ngn chn c iu

Txx

Hin th cc tin trnh c kt hp vi vng lm vic xx

Hin th cc tin trnh khng c iu khin vng lm vic

V d hin th tt c cc tin trnh bn thc hin cu lnh:


ps au
hin th tt c cc tin trnh ca mt ngi no s dng:
ps au | grep username
Tuy nhin, nu bn ch mun tm cc tin trnh ang tn ti vi ngi s dng bt k,
bn s dng cu lnh:
ps aux
tm kim PID ca mt tin trnh cha s dng:
ps l pid
Vi pid l PID ca mt tin trnh no .
ps e
Thng tin bin mi trng c b sung vo trng COMMAND
8.2.2. Pht tn hiu cho mt chng trnh ang chy

S dng lnh kill hy mt tin trnh

Cu lnh kill l mt kch bn shell c xy dng sn, thng c tm thy trong


th mc /bin. Bn c th dng lnh ny dng mt tin trnh no . bn c th
chy:
kill PID
Vi PID l PID ca tin trnh no

S dng lnh killall hy mt tin trnh

Tin ch ny cho php bn dng mt tin trnh bng tn. V d bn c mt tin trnh
c goi l signal_demo.pl v bn mun dng tin trnh ny. Bn s dng lnh:
killall signal_demo.pl

Chy mt tin trnh hu cnh hoc tin cnh

Thng thng khi chng ta chy mt tin trnh t thit b u cui (bn phm) hay
shell, bn chy tin trnh tin cnh. Khi bn chy tin trnh tin cnh, bn phi i
cho n kt thc. Tuy nhin, thay v vic i cho n kt thc, bn c th chy n hu
cnh bng vic thm mt k hiu & cui dng lnh. iu ny hu ch khi mt tin
trnh chy trong thi gian di v bn cn phi lm mt cng vic khc. V d, khi
ng h qun tr CSDL PosgresSQL vi postmaster bn thc hin:
postmaster i &
Vy khi no bn bit mt tin trnh hu cnh ang chy hay dng. Bn c th s
dng lnh:
ps -af
xem tt c cc tin trnh trong c c tin trnh hu cnh.

Tm dng tin trnh

Nu mt tin trnh ang chy tin cnh v bn mun a chng vo hu cnh, bn


thc hin cng vic ny bng cch nhn t hp phm Ctrl + Z. Khi nhn c tn hiu
Ctrl+Z tin trnh s b tm dng v c a vo hu cnh. Tuy nhin bn cha bit
c chng trnh ca chng ta dng cha v chuyn vo hu cnh cha. Lnh
jobs hin th trng thi ca tt c cc tin trnh ang chy hu cnh:
[1] Stopped

man ln (wd: /home/trantu/exam)

[2]- Stopped

tail

[3]+ Stopped

ls -R /

nh thc tin trnh

nh thc mt tin trnh ta s dng lnh bg kt hp vi s tc v trong hng i


lit k. Trong v d trn ta c th thc hin lnh:

bg 3
Mt ln na ta s dng lnh jobs, ta s thy thng tin hin trn mn hnh nh sau:
[1] Stopped

man ln (wd: /home/trantu/exam)

[2]- Stopped

tail

[3]+ Running

ls -R /

chuyn mt tin trnh t hu cnh sang chy trn tin cnh bn dng lnh fg. V
d:
fg 3
8.2.3. Giao tip gia cc tin trnh
i khi cc tin trnh cn trao i thng tin cho nhau x l. Chng hn nh lnh ls
ca Linux ch bit lit k v ghi ton b d liu v thng tin ca file, th mc ra mn
hnh. Lnh ls khng c c ch dng khi mn hnh y. Trong khi lnh more li c kh
nng c d liu v a ra mn hnh theo tng trang ngi dng c thi gian xem
qua. Cc chng trnh cn c nhu cu chuyn d liu cho nhau x l. Mt c ch
c s dng kh ph bin trn Linux l pipe (ng ng). Bn s dng ch th |
biu th ng ng. V d:
ls R | more
Hoc bn c th tm chnh xc tn tin trnh nh:
ps af | grep [bash]
8.3 Lp k hoch cc tin trnh

8.3.1 S dng lnh at


Tin ch at cho php bn sp xp mt cu lnh thc thi trong thi gian sau . V
d, xem dung lng a s dng cho ton b cc file, th muc ca h thng bn gi
tin ch du vo lc 8:40 p.m, bn c th chy lnh sau:
at 20:40
Cu lnh s hin th du nhc at> yu cu bn nhp vo cu lnh thc hin theo
thi gian c a vo. Bn g vo dng lnh:

du a > /tmp/du.out
Sau khi bn g lnh Enter, n s hin th li du nhc cho php bn nhp vo cc cu
lnh tip theo. Bn c th chn Ctrl+D kt thc.
Nu v mt l do no , bn mun dng cng vic m bn lp lch, bn c th s
dng lnh atrm xa cng vic trc khi n c thc hin. Bn cn phi bit s
th t ca cng vic m bn mun hy, tm ra cc cng vic m bn lp lch,
bn chy cu lnh atq tm s th t cng vic, sau dng atrq vi i s l s th
t ca cng vic mun hy. V d:
atrq 1
8.3.2 S dng crontab
C nhiu cng vic trn Linux cn c lp lch mt cch thng xuyn, v d xa
cc file c c sinh ra bi h thng trong th mc tmp hng ngy, hay hng tun bn
cn phi chy mt tin trnh mi ngy hay mi tun. Tin ch cron cho php bn thc
hin cc cng vic nh th. Thc ra cron bao gm crond daemon, c khi ng bi
tin trnh init. Crond c cc lch cng vic t /etc/crontab v cc file trong
/var/spoon/cron. Th mc cron ny lu tr cc file lp lch (thng c gi l
crontab hay cron table) cho nhng ngi s dng thng thng c php chy cc
cng vic cron. L mt superuser, bn c th xc nh mt danh sch nhng ngi s
dng c php chy cc cng vic cron trong file /etc/cron.allow. Tng t, bn c
th xc nh nhng ngi s dng khng c php thc hin cc cng vic cron
trong file /etc/cron.deny. C hai file ny u s dng mt nh dng c bn: mt
username trn mt dng. Nu mt ngi c php thc hin cc cng vic cron,
ngi c th s dng tin ch crontab thc hin cng vic lp lch. V d, khi
bn c php, bn c th g lnh:
crontab e
v son tho cc cng vic cn thc hin. Mt cng vic cron phi c nh dng sau:
minute(s) hour(s) day(s) month weekday username command argument(s)
Cc trng t 1 n 5 c nh dng sau

9. Bo mt h thng
Cng vi s pht trin khng ngng ca truyn thng k thut s, Internet v s pht
trin nhy vt ca nn cng nghip phn mm, bo mt my tnh l mt vn ngy
cng tr nn quan trng. Cn phi hiu rng khng c h thng my tnh no l an

ton tuyt i. Tt c nhng g bn c th lm l gip cho h thng ca bn tr nn an


ton hn.
K t khi Linux c pht trin mt cch rng ri v nhanh chng, c bit l trong
cc giao dch kinh doanh quan trng, an ninh l mt vn quyt nh s sng cn
ca Linux. Vi hng trm cng c bo v sn c, ngi dng Linux c trang b tt
hn ngn chn v duy tr mt h thng an ton. Linux khng nhng hot ng tt
m cn c nhng tnh nng v sn phm lin quan cho php xy dng mt mi trng
tng i an ton.
9.1. Nhng nguy c an ninh trn Linux
Linux v cc ng dng trn n c th khng t cc l hng an ninh hn nhng h iu
hnh khc. Theo quan im ca mt s chuyn gia my tnh, Linux c tnh an ton
cao hn cc h iu hnh ca Microsoft, v cc sn phm ca Microsoft khng c
xem xt k lng v cht ch bng cc sn phm m ngun m nh Linux. Hn na,
Linux dng nh l "min nhim" vi virus my tnh (hin ti c xut hin mt vi
loi virus hot ng trn mi trng Linux nhng khng nh hng g my n ngi
dng Linux). Nhng mt h thng Linux c cu hnh khng tt s t hn nhiu so
vi mt h thng Microsoft c cu hnh tt !!! Khi c c mt chnh sch an ninh
tt v h thng c cu hnh theo ng chnh sch th s gip bn to c mt
h thng an ton ( mc m chnh sch ca bn a ra).
Nhng s an ton khng phi l th c th t c nh mt mc tiu cui cng.
ng hn l tp hp ca nhng cch ci t, vn hnh v bo tr mt h iu hnh,
mng my tnh, ... N ph thuc vo cc hot ng hng ngy ca h thng, ngi
dng v ngi qun tr. Bn phi bt u t mt nn tng ban u v t ci thin
tnh an ton ca h thng ca bn nhiu nht c th c m vn m bo cc hot
ng bnh thng ca h thng.
9.2. Xem xt chnh sch an ninh ca bn
Kt ni vo Inernet l nguy him cho h thng mng ca bn vi mc an ton thp.
T nhng vn trong cc dch v TCP/IP truyn thng, tnh phc tp ca vic cu
hnh my ch, cc l hng an ninh bn trong qu trnh pht trin phn mm v nhiu
nhn t khc gp phn lm cho nhng h thng my ch khng c chun b chu
o c th b xm nhp v lun tn ti nhng nguy c tim tng v vn an ton
trong .
Mc ch ca mt chnh sch an ton h thng l quyt nh mt t chc s phi lm
nh th no bo v chnh n. c c mt chnh sch an ninh hiu qu, ngi
xy dng cc chnh sch ny phi hiu v c th kt hp tt c cc thng tin, yu cu,
...
Khi mt tnh hung xy ra nm ngoi d kin, chng hn mt s xm nhp tri php
vo h thng ca bn, cu hi ln nht l "s phi lm g y ?"
Khng may l c hng triu cu tr li khc nhau cho cu hi . Nu mt ngi m
cha tng phi i ph vi mt k xm nhp trc y th k xm nhp c th d
dng bin mt v cc du vt tr nn qa c v khng cn hu ch na.

Nhng sai st trong chnh sch an ninh khng ch lin quan n nhng k xm nhp,
m cn lin quan n nhng vn bnh thng nh thi tit, thin tai, chy, n, h
hng thit b,... Do vy, vic thit lp mt chnh sch an ninh tt cho vic gii quyt
nhng s c phi c ln k hoch k lng, c xem xt v chng nhn bi ngi
c quyn hn trong cng ty.
Mt chnh sch an ninh tt nn bao gm cc vn sau :
o
o
o
o
o
o

Chnh sch phc hi d liu khi c s c


Chnh sch phc hi h thng trong trng hp h hng thit b
Chnh sch, cch thc iu tra nhng k xm nhp tri php
Chnh sch, cch thc iu tra khi cng ty b co buc xm nhp vo
cc h thng khc
Cch thc, quy trnh v ni thng bo s xm nhp tri php t bn
ngoi hay gy ra bi cc nhn vin ca mnh.
Chnh sch an ninh v mt vt l ca h thng
...

Bn c th nh t vn ca cc cng ty, t chc lm dch v t vn v an ton my tnh


gip bn xy dng mt chnh sch an ninh tt. Cc cng ty ny c cc chuyn gia
v an ton my tnh, h c sn cc biu mu chnh sch an ninh nn c th thit lp
nhanh chng cc chnh sch m bao gm tt c cc mt trong vic an ton h thng
my tnh.
9.3. Tng cng an ninh cho KERNEL
Mc d tha hng nhng c tnh ca h thng UNIX v kh an ninh hn mt s h
iu hnh khc, h thng GNU/Linux hin nay vn tn ti nhng nhc im sau:
o
o

Quyn ca user root c th b lm dng. User root c th d dng


thay i bt k iu g trn h thng.
Nhiu file h thng c th d dng b sa i. Nhiu file h thng quan
trng nh /bin/login c th b sa i bi hacker cho php ng
nhp khng cn mt khu. Nhng nhng file loi ny li him khi no
thay i tr phi khi nng cp h thng.
Cc module c th c dng chn kernel. Loadable Kernel
Module l mt thit k tt tng cng tnh uyn chuyn, linh hot
cho kernel. Nhng sau khi mt module c np vo kernel, n s tr
thnh mt phn ca kernel v c th hot ng nh kernel nguyn
thy. V vy, cc chng trnh mc ch xu c th c vit dng
module v np vo kernel, ri sau hot ng nh mt virus.
Cc process khng c bo v. Cc process nh web server c th tr
thnh mc tiu b tn cng ca hacker sau khi thm nhp h thng.

ci thin tnh an ninh cho cc server Linux, chng ta cn c mt kernel an ton


hn. iu ny c th thc hin c bng cch sa i kernel nguyn thu bng cc
patch tng cng tnh an ninh cho h thng. Cc patch ny c cc tnh nng chnh
yu sau:

Bo v bo v cc file h thng quan trng khi s thay i ngay c


vi user root. Bo v cc process quan trng khi b ngng bi lnh
kill. Chn cc tc v truy cp IO mc thp (RAW IO) ca cc
chng trnh khng c php.
Pht hin Pht hin v cnh bo vi ngi qun tr khi server b scan.
Cng nh khi c cc tc v trn h thng vi phm cc lut (rules) nh
trc.
i ph Khi pht hin s vi phm trn h thng, cc ghi nhn chi tit
s c thc hin cng nh c th ngng lp tc phin lm vic gy ra

Mt vi cng c sa i kernel c s dng rng ri l LIDS (Linux Intrusion


Detection System), Medusa, ...
9.4. An ton cc giao dch trn mng
C rt nhiu dch v mng truyn thng giao tip thng qua giao thc vn bn khng
m ho, nh TELNET, FTP, RLOGIN, HTTP, POP3. Trong cc giao dch gia ngi
dng vi my ch, tt c cc thng tin dng gi c truyn qua mng di hnh thc
vn bn khng c m ho. Cc gi tin ny c th d dng b chn v sao chp mt
im no trn ng i. Vic gii m cc gi tin ny rt d dng, cho php ly
c cc thng tin nh tn ngi dng, mt khu v cc thng tin quan trng khc.
Vic s dng cc giao dch mng c m ho khin cho vic gii m thng tin tr
nn kh hn v gip bn gi an ton cc thng tin quan trng. Cc k thut thng
dng hin nay l IPSec, SSL, TLS, SASL v PKI.
Qun tr t xa l mt tnh nng hp dn ca cc h thng UNIX. Ngi qun tr mng
c th d dng truy nhp vo h thng t bt k ni no trn mng thng qua cc giao
thc thng dng nh telnet, rlogin. Mt s cng c qun tr t xa c s dng rng
ri nh linuxconf, webmin cng dng giao thc khng m ho. Vic thay th tt c
cc dch v mng dng giao thc khng m ho bng giao thc c m ho l rt kh.
Tuy nhin, bn nn cung cp vic truy cp cc dch v truyn thng nh HTTP/POP3
thng qua SSL, cng nh thay th cc dch v telnet, rlogin bng SSH.
9.5. Linux firewall
An ton h thng lun lun l mt vn sng cn ca mng my tnh v firewall l
mt thnh phn ct yu cho vic m bo an ninh.
Mt firewall l mt tp hp cc qui tc, ng dng v chnh sch m bo cho ngi
dng truy cp cc dch v mng trong khi mng bn trong vn an ton i vi cc k
tn cng t Internet hay t cc mng khc. C hai loi kin trc firewall c bn l :
Proxy/Application firewall v filtering gateway firewall. Hu ht cc h thng
firewall hin i l loi lai (hybrid) ca c hai loi trn.
Nhiu cng ty v nh cung cp dch v Internet s dng my ch Linux nh mt
Internet gateway. Nhng my ch ny thng phc v nh my ch mail, web, ftp,
hay dialup. Hn na, chng cng thng hot ng nh cc firewall, thi hnh cc
chnh sch kim sot gia Internet v mng ca cng ty. Kh nng uyn chuyn khin
cho Linux thu ht nh l mt thay th cho nhng h iu hnh thng mi.

Tnh nng firewall chun c cung cp sn trong kernel ca Linux c xy dng t


hai thnh phn : ipchains v IP Masquerading.
Linux IP Firewalling Chains l mt c ch lc gi tin IP. Nhng tnh nng ca IP
Chains cho php cu hnh my ch Linux nh mt filtering gateway/firewall d dng.
Mt thnh phn quan trng khc ca n trong kernel l IP Masquerading, mt tnh
nng chuyn i a ch mng (network address translation- NAT) m c th che giu
cc a ch IP thc ca mng bn trong.
s dng ipchains, bn cn thit lp mt tp cc lut m qui nh cc kt ni c
cho php hay b cm. V d:
# Cho php cc kt ni web ti Web Server ca bn
/sbin/ipchains -A your_chains_rules -s 0.0.0.0/0 www -d 192.16.0.100
1024: -j ACCEPT
# Cho php cc kt ni t bn trong ti cc Web Server bn ngoi
/sbin/ipchains -A your_chains_rules -s 192.168.0.0/24 1024: -d
0.0.0.0/0 www -j ACCEPT
# T chi truy cp tt c cc dch vu khc
/sbin/ipchains -P your_chains_rules input DENY

Ngoi ra, bn c th dng cc sn phm firewall thng mi nh Check Point


FireWall-1, Phoenix Adaptive Firewall, Gateway Guardian, XSentry Firewall, Raptor,
... hay rt nhiu cc phin bn min ph, m ngun m cho Linux nh T.Rex Firewall,
Dante, SINUS, TIS Firewall Toolkit, ...
9.6. Dng cng c d tm kho st h thng
Thm nhp vo mt h thng bt k no cng cn c s chun b. Hacker phi xc
nh ra my ch v tm xem nhng port no ang m trc khi h thng c th b
xm phm. Qu trnh ny thng c thc hin bi cc cng c d tm (scanning
tool), k thut chnh tm ra my ch v cc port ang m trn . D tm l bc
u tin hacker s s dng trc khi thc hin tn cng. Bng cch s dng cc cng
c d tm nh Nmap, hacker c th r khp cc mng tm ra cc my ch c th b
tn cng. Mt khi xc nh c cc my ny, k xm nhp c th d tm cc port
ang lng nghe. Nmap cng s dng mt s k thut cho php xc nh kh chnh xc
loi my ang kim tra.
Bng cch s dng nhng cng c ca chnh cc hacker thng dng, ngi qun tr
h thng c th nhn vo h thng ca mnh t gc ca cc hacker v gip tng
cng tnh an ton ca h thng. C rt nhiu cng c d tm c th s dng nh:
Nmap, strobe, sscan, SATAN, ...
Di y l mt v d s dng Nmap:
# nmap -sS -O 192.168.1.200
Starting nmap V. 2.54 by Fyodor (fyodor@dhp.com,
www.insecure.org/nmap/)
Interesting ports on comet (192.168.1.200):
Port State Protocol Service

7 open tcp echo


19 open tcp chargen
21 open tcp ftp
...
TCP Sequence Prediction: Class=random positive increments
Difficulty=17818 (Worthy challenge)
Remote operating system guess: Linux 2.2.13
Nmap run completed -- 1 IP address (1 host up) scanned in 5 seconds

Tuy nhin, s dng cc cng c ny khng th thay th cho mt ngi qun tr c


kin thc. Bi v vic d tm thng d bo mt cuc tn cng, cc site nn u tin
cho vic theo di chng. Vi cc cng c d tm, cc nh qun tr h thng mng c
th pht hin ra nhng g m cc hacker c th thy khi d trn h thng ca mnh.
9.7. Pht hin s xm nhp qua mng
Nu h thng ca bn c kt ni vo internet, bn c th tr thnh mt mc tiu b d
tm cc l hng v bo mt. Mc d h thng ca bn c ghi nhn iu ny hay khng
th vn khng xc nh v pht hin vic d tm ny. Mt vn cn quan tm
khc l cc cuc tn cng gy ngng dch v (Denial of Services - DoS), lm th no
ngn nga, pht hin v i ph vi chng nu bn khng mun h thng ca bn
ngng tr.
H thng pht hin xm nhp qua mng (Network Intrusion Detection System NIDS) theo di cc thng tin truyn trn mng v pht hin nu c hacker ang c
xm nhp vo h thng (hoc gy gy ra mt v tn cng DoS). Mt v d in hnh
l h thng theo di s lng ln cc yu cu kt ni TCP n nhiu port trn mt
my no , do vy c th pht hin ra nu c ai ang th mt tc v d tm TCP
port. Mt NIDS c th chy trn my cn theo di hoc trn mt my c lp theo di
ton b thng tin trn mng.
Cc cng c c th c kt hp to mt h thng pht hin xm nhp qua mng.
Chng hn dng tcpwrapper iu khin, ghi nhn cc dch v c ng k.
Cc chng trnh phn tch nht k h thng, nh swatch, c th dng xc nh cc
tc v d tm trn h thng. V iu quan trng nht l cc cng c c th phn tch
cc thng tin trn mng pht hin cc tn cng DoS hoc nh cp thng tin nh
tcpdump, ethereal, ngrep, NFR (Network Flight Recorder), PortSentry, Sentinel,
Snort, ...
Khi hin thc mt h thng pht hin xm nhp qua mng bn cn phi lu tm n
hiu sut ca h thng cng nh cc chnh sch bo m s ring t.
9.8. Kim tra kh nng b xm nhp
Kim tra kh nng b xm nhp lin quan n vic xc nh v sp xp cc l hng an
ninh trong h thng bng cch dng mt s cng c kim tra. Nhiu cng c kim tra
cng c kh nng khai thc mt s l hng tm thy lm r qu trnh thm nhp tri
php s c thc hin nh th no. V d, mt li trn b m ca chng trnh phc
v dch v FTP c th dn n vic thm nhp vo h thng vi quyn root. Nu
ngi qun tr mng c kin thc v kim tra kh nng b xm nhp trc khi n xy
ra, h c th tin hnh cc tc v nng cao mc an ninh ca h thng mng.

C rt nhiu cc cng c mng m bn c th s dng trong vic kim tra kh nng b


xm nhp. Hu ht cc qu trnh kim tra u dng t nht mt cng c t ng phn
tch cc l hng an ninh. Cc cng c ny thm d h thng xc nh cc dch v
hin c. Thng tin ly t cc dch v ny s c so snh vi c s d liu cc l
hng an ninh c tm thy trc .
Cc cng c thng c s dng thc hin cc kim tra loi ny l ISS Scanner,
Cybercop, Retina, Nessus, cgiscan, CIS, ...
Kim tra kh nng b xm nhp cn c thc hin bi nhng ngi c trch nhim
mt cch cn thn. S thiu kin thc v s dng sai cch c th s dn n hu qu
nghim trng khng th lng trc c.
9.9. i ph khi h thng b tn cng
Gn y, mt lot cc v tn cng nhm vo cc site ca nhng cng ty ln nh
Yahoo!, Buy.com, E-Bay, Amazon v CNN Interactive gy ra nhng thit hi v cng
nghim trng. Nhng tn cng ny l dng tn cng gy ngng dch v "Denial-OfService" m c thit k lm ngng hot ng ca mt mng my tnh hay mt
website bng cch gi lin tc vi s lng ln cc d liu ti mc tiu tn cng
khin cho h thng b tn cng b ngng hot ng, iu ny tng t nh hng trm
ngi cng gi khng ngng ti 1 s in thoi khin n lin tc b bn.
Trong khi khng th no trnh c mi nguy him t cc cuc tn cng, chng ti
khuyn bn mt s bc m bn nn theo khi bn pht hin ra rng h thng ca bn
b tn cng. Chng ti cng a ra mt s cch gip bn bo m tnh hiu qa ca
h thng an ninh v nhng bc bn nn lm gim ri ro v c th i ph vi
nhng cuc tn cng.
Nu pht hin ra rng h thng ca bn ang b tn cng, hy bnh tnh. Sau y
l nhng bc bn nn lm:
o

Tp hp 1 nhm i ph vi s tn cng:
- Nhm ny phi bao gm nhng nhn vin kinh nghim, nhng ngi m c
th gip hnh thnh mt k hoch hnh ng i ph vi s tn cng.

Da theo chnh sch v cc quy trnh thc hin v an ninh ca cng ty, s
dng cc bc thch hp khi thng bo cho mi ngi hay t chc v cuc tn
cng.
Tm s gip t nh cung cp dch v Internet v c quan ph trch v an
ninh my tnh:
- Lin h nh cung cp dch v Internet ca bn thng bo v cuc tn
cng. C th nh cung cp dch v Internet ca bn s chn ng c cuc
tn cng.
- Lin h c quan ph trch v an ninh my tnh thng bo v cuc tn
cng

o
o

Tm thi dng phng thc truyn thng khc (chng hn nh qua in thoi)
khi trao i thng tin m bo rng k xm nhp khng th chn v ly
c thng tin.
Ghi li tt c cc hot ng ca bn (chng hn nh gi in thoi, thay i
file, ...)
Theo di cc h thng quan trng trong qa trnh b tn cng bng cc phn
mm hay dch v pht hin s xm nhp (intrusion detection
software/services). iu ny c th gip lm gim nh s tn cng cng nh
pht hin nhng du hiu ca s tn cng thc s hay ch l s quy ri nhm
nh lc hng s ch ca bn(chng hn mt tn cng DoS vi dng lm
sao lng s ch ca bn trong khi thc s y l mt cuc tn cng nhm
xm nhp vo h thng ca bn).
- Sao chp li tt c cc files m k xm nhp li hay thay i (nh nhng
on m chng trnh, log file, ...)

Lin h nh chc trch bo co v v tn cng.

Nhng bc bn nn lm gim ri ro v i ph vi s tn cng trong tng


lai :
o
o
o
o

Xy dng v trao quyn cho nhm i ph vi s tn cng


Thi hnh kim tra an ninh v nh gi mc ri ro ca h thng
Ci t cc phn mm an ton h thng ph hp gim bt ri ro
Nng cao kh nng ca mnh v an ton my tnh

Cc bc kim tra gip bn bo m tnh hiu qu ca h thng an ninh


o
o
o

o
o
o

Kim tra h thng an ninh mi ci t : chc chn tnh ng n ca chnh


sch an ninh hin c v cu hnh chun ca h thng.
Kim tra t ng thng xuyn : khm ph s ving thm ca nhng
hacker hay nhng hnh ng sai tri ca nhn vin trong cng ty.
Kim tra ngu nhin: kim tra chnh sch an ninh v nhng tiu chun,
hoc kim tra s hin hu ca nhng l hng c pht hin (chng hn
nhng li c thng bo t nh cung cp phn mm)
Kim tra hng m nhng file quan trng: nh gi s ton vn ca nhng
file v c s d liu quan trng
Kim tra cc ti khon ngi dng: pht hin cc ti khon khng s dng,
khng tn ti, ...
Kim tra nh k xc nh trng thi hin ti ca h thng an ninh ca bn

BN C TH XEM THM THNG TIN TI


Cc trung tm gip i ph tai nn trn Internet
http://www.cert.org

http://www.first.org
http://ciac.llnl.gov/
http://www.cert.dfn.de/eng/csir/europe/certs.html
Mt s website v an ton my tnh

http://www.cs.purdue.edu/coast/
http://www.linuxsecurity.com
http://www.securityportal.com
http://www.tno.nl/instit/fel/intern/wkinfsec.html
http://www.icsa.net
http://www.sans.org
http://www.iss.com
http://www.securityfocus.com

Thng tin v an ton t nh cung cp


http://www.calderasystems.com/news/security/
http://www.debian.org/security/
http://www.redhat.com/cgi-bin/support/
Mt s sch v an ton my tnh
Actually Useful Internet Security Techniques by Larry J. Hughes Jr.
Applied Cryptography: Protocols, Algorithms and Source Code in C by Bruce
Schneier
Building Internet Firewall by Brent Chapman & Elizabeth D. Zwicky
Cisco IOS Network Security by Mike Kaeo
Firewalls and Internet Security by Bill Cheswick & Steve Bellovin
Halting the Hacker: A practical Guide To Computer Security by Donal L. Pipkin
Intrusion Detection: An Introduction to Internet Surveillance, Correlation, Traps,
Trace Back and Response by Edward G. Amoroso
Intrusion Detection: Network Security Beyond the Firewall by Terry Escamilla
Linux Security by Jonh S. Flowers

You might also like