You are on page 1of 43

ÑAÏI HOÏC QUOÁC GIA THAØNH PHOÁ HOÀ CHÍ MINH

NHAÄP MOÂN
HEÄ ÑIEÀU HAØNH
LINUX
Taøi lieäu khoùa taäp huaán quaûn trò maïng theo taøi
trôï cuûa döï aùn “Naâng cao chaát löôïng giaùo duïc
vaø ñaøo taïo” töø voán vay cuûa Ngaân haøng theá
giôùi
--- Tieåu döï aùn “A” ---

Thaønh phoá Hoà chí Minh 10/2001


(Löu haønh noäi boä)
MÔÛ ÑAÀU
Vôùi söï phaùt trieån ngaøy caøng maïnh meõ cuûa maïng tin hoïc
toaøn caàu Internet xuaát hieän ngaøy caøng nhieàu nhu caàu veà nguoàn
nhaân löïc chuyeân nghieäp ñeå quaûn trò heä thoáng maïng duøng rieâng
phöùc hôïp vôùi giao tieáp ra Internet.
Laø moät ñôn vò chòu traùch nhieäm quaûn trò maïng tin hoïc cuûa
Ñaïi hoïc quoác gia Tp HCM, chuùng toâi ñaõ coù nhieàu kinh nghieäm
trong coâng taùc quaûn trò moät maïng Intranet roäng lôùn vôùi haøng
ngaøn maùy tính keát noái vaø truy caäp Internet qua ñöôøng duøng
rieâng (leased-line). Qua giaùo trình naøy, chuùng toâi muoán ñöa ñeán
baïn ñoïc nhöõng kieán thöùc cô baûn nhaát, cho pheùp caøi ñaët vaø
quaûn trò moät heä thoáng server Unix cuøng vôùi caùc dòch vuï Internet
cô baûn. Caùc ví duï thöôøng ñöôïc döïa treân heä ñieàu haønh (HDH)
Linux hay Sun OS, laø hai HDH ñang ñöôïc söû duïng roäng raõi trong
maïng ÑHQG-HCM. Chuùng toâi cuõng seõ ñeà caäp ñeán giao thöùc
TCP/IP vaø caùch trieån khai TCP/IP treân moät maùy chuû Unix.
Vôùi phöông chaâm “chæ noùi veà nhöõng gì chuùng toâi ñaõ
söû duïng trong thöïc teá” chuùng toâi hy voïng raèng giaùo trình raát
ngaén goïn naøy seõ coù ích moät caùch thieát thöïc cho nhöõng baïn ñoïc
muoán hoïc veà heä ñieàu haønh Unix vaø coâng ngheä maïng Internet,
cuõng nhö caùc quaûn trò vieân maïng Internet treân cô sôû maùy chuû
Unix.
Do thôøi gian raát eo heïp cho coâng taùc chuaån bò, chuùng toâi
chaéc raèng seõ coù nhöõng thieáu soùt, mong baïn ñoïc goùp yù vaø xin
caûm ôn tröôùc caùc nhaän xeùt cuûa baïn ñoïc. Moïi yù kieán xin göûi veà
:
Trònh Ngoïc Minh
3 Coâng tröôøng Quoác teá, Q.3 Thaønh phoá Hoà chí minh
tnminh@vnuhcm.edu.vn

-2-
I. Giôùi thieäu lòch söû phaùt trieån cuûa Unix
vaø Linux:

i. Vaøi doøng veà lòch söû UNIX:


Giöõa naêm 1960, AT&T Bell Laboratories vaø moät soá trung taâm
khaùc tham gia vaøo moät coá gaéng taïo ra moät heä ñieàu haønh môùi
ñöôïc ñaët teân laø Multics (Multiplexed Information and Computing
Service). Ñeán naêm 1969, chöông trình Multics bò baõi boû vì ñoù laø
moät döï aùn quaù nhieàu tham voïng. Thaäm trí nhieàu yeâu caàu ñoái
vôùi Multics thôøi ñoù ñeán nay vaãn chöùa coù ñöôïc treân caùc Unix
môùi nhaát. Nhöng Ken Thompson, Dennis Ritchie, vaø moät soá ñoàng
nghieäp cuûa Bell Labs ñaõ khoâng boû cuoäc. Thay vì xaây döïng moät
HÑH laøm nhieàu vieäc moät luùc, hoï quyeát ñònh phaùt trieån moät HÑH
ñôn giaûn chæ laøm toát moät vieäc laø chaïy chöông trình (run program).
HÑH seõ coù raát nhieàu caùc coâng cuï (tool) nhoû, ñôn giaûn, goïn nheï
(compact) vaø chæ laøm toát moät coâng vieäc. Baèng caùch keát hôïp
nhieàu coâng cuï laïi vôùi nhau, hoï seõ coù moät chöông trình thöïc hieän
moät coâng vieäc phöùc taïp. Ñoù cuõng laø caùch thöùc ngöôøi laäp trình
vieát ra chöông trình. Peter Neumann ñaët teân Unix cho HÑH ñôn giaûn
naøy. tieáp tuïc phaùt trieån theo moâ hình ban ñaàu vaø ñaët ra moät
heä thoáng taäp tin maø sau naøy ñöôïc phaùt trieån thaønh heä thoáng
taäp tin cuûa UNIX. Vaøo naêm 1973, söû duïng ngoân ngöõ C cuûa
Ritchie, Thompson ñaõ vieát laïi toaøn boä HÑH Unix vaø ñaây laø moät
thay ñoåi quan troïng cuûa Unix, vì nhôø ñoù Unix töø choã laø HÑH cho
moät maùy PDP-xx trôû thaønh HÑH cuûa caùc maùy khaùc vôùi moät coá
gaéng toái thieåu ñeå chuyeån ñoåi. Khoaûng 1977 baûn quyeàn cuûa
UNIX ñöôïc giaûi phoùng vaø HDH UNIX trôû thaønh moät thöông phaåm.

ii. Hai doøng UNIX : System V cuûa AT&T , Novell


vaø Berkeley Software Distribution (BSD) cuûa Ñaïi
hoïc Berkeley.
• System V :
Caùc phieân baûn UNIX cuoái cuøng do AT&T xuaát baûn laø
System III vaø moät vaøi phaùt haønh (releases) cuûa System V. Hai baûn
phaùt haønh gaàn ñaây cuûa System V laø Release 3 (SVR3.2) vaø Release
4.2 (SVR4.2). Phieân baûn SYR 4.2 laø phoå bieán nhaát cho töø maùy PC
cho tôùi maùy tính lôùn.
• BSD :
Töø 1970 Computer Science Research Group cuûa University of
California taïi Berkeley (UCB) xuaát baûn nhieàu phieân baûn UNIX, ñöôïc
bieát ñeán döôùi teân Berkeley Software Distribution, hay BSD. Caûi bieán
cuûa PDP-11 ñöôïc goïi laø 1BSD vaø 2BSD. Trôï giuùp cho caùc maùy tính
cuûa Digital Equipment Corporation VAX ñöôïc ñöa vaøo trong 3BSD. Phaùt
trieån cuûa VAX ñöôïc tieáp tuïc vôùi 4.0BSD, 4.1BSD, 4.2BSD, vaø 4.3BSD
Tröôùc 1992, UNIX laø teân thuoäc sôû höõu cuûa AT&T. Töø 1992, khi
AT&T baùn boä phaän Unix cho Novell, teân Unix thuoäc sôû höõu cuûa
X/Open foundation. Taát caû caùc heä ñieàu haønh thoûa maõn moät soá

-3-
yeâu caàu ñeàu coù theå goïi laø Unix. Ngoaøi ra, Institute of Electrical and
Electronic Engineers (IEEE) ñaõ thieát laäp chuaån "An Industry-
Recognized Operating Systems Interface Standard based on the UNIX
Operating System." Keát quaû cho ra ñôøi POSIX.1 (cho giao dieän C ) vaø
POSIX.2 (cho heä thoáng leänh treân Unix)
Keát laïi, vaán ñeà chuaån hoùa UNIX vaãn coøn raát xa keát quaû cuoái
cuøng. Nhöng ñaây laø quaù trình caàn thieát coù lôïi cho söï phaùt trieån
cuûa ngaønh tin hoïc noùi chung vaø söï soáng coøn cuûa HDH UNIX noùi
rieâng.
Caùc phieân baûn cuûa Unix

c. Lòch söû phaùt trieån cuûa Linux vaø


giôùi thieäu caùc phaân phoái
(distribution) Linux ngaøy nay
Linux laø moät HDH daïng UNIX (Unix-like Operating System) chaïy
treân maùy PC vôùi boä ñieàu khieån trung taâm (CPU) Intel 80386 hoaëc
caùc theá heä sau ñoù, hay caùc boä vi xöû lyù trung taâm töông thích nhö
AMD, Cyrix. Linux ngaøy nay coøn coù theå chaïy treân caùc maùy
Macintosh hoaëc SUN Sparc . Linux thoûa maõn chuaån POSIX.1.
Linux ñöôïc vieát laïi toaøn boä töø con soá khoâng, töùc laø khoâng söû
duïng moät doøng leänh naøo cuûa Unix, ñeå traùnh vaán ñeà baûn
quyeàn cuûa Unix, tuy nhieân hoaït ñoäng cuûa Linux hoaøn toaøn döïa
treân nguyeân taéc cuûa heä ñieàu haønh Unix. Vì vaäy neáu moät ngöôøi
naém ñöôïc Linux, thì seõ naém ñöôïc UNIX. Neân chuù yù raèng giöõa
caùc Unix söï khaùc nhau cuõng khoâng keùm gì giöõa Unix vaø Linux.
Naêm 1991 Linus Torvalds, sinh vieân cuûa ñaïi hoïc toång hôïp
Helsinki, Phaàn lan, baét ñaàu xem xeùt Minix, moät phieân baûn cuûa

-4-
Unix, laøm ra vôùi muïc ñích nghieân cöùu caùch taïo ra moät heä ñieàu
haønh Unix chaïy treân maùy PC vôùi boä vi xöû lyù Intel 80386.
Ngaøy 25/8/1991, Linus cho ra version 0.01 vaø thoâng baùo treân
comp.os.minix cuûa Internet veà chöông trình cuûa mình.
1/1992, Linus cho ra version 0.12 vôùi shell vaø C compiler. Linus
khoâng caàn Minix nöõa ñeå recompile HDH cuûa mình. Linus ñaët teân
HDH cuûa mình laø Linux.
1994, phieân baûn chính thöùc 1.0 ñöôïc phaùt haønh.
Quaù trình phaùt trieån cuûa Linux ñöôïc taêng toác bôûi söï giuùp ñôõ
cuûa chöông trình GNU (GNU’s Not Unix), ñoù laø chöông trình phaùt trieån
caùc Unix coù khaû naêng chaïy treân nhieàu platform. Ñeán hoâm nay,
cuoái 2001, phieân baûn môùi nhaát cuûa Linux kernel laø 2.4.2-2, coù
khaû naêng ñieàu khieån caùc maùy ña boä vi xöû lyù vaø raát nhieàu
caùc tính naêng khaùc.

d. Vaán ñeà baûn quyeàn cuûa GNU project


Caùc chöông trình tuaân theo GNU Copyleft or GPL (General Public
License) coù baûn quyeàn nhö sau :
1. Taùc giaû vaãn laø sôû höõu cuûa chöông trình cuûa mình.
2. Ai cuõng ñöôïc quyeàn baùn copy cuûa chöông trình vôùi giaù baát
kyø maø khoâng phaûi traû cho taùc giaû ban ñaàu.
3. Ngöôøi sôû höõu chöông trình taïo ñieàu kieän cho ngöôøi khaùc sao
cheùp chöông trình nguoàn ñeå phaùt trieån tieáp chöông trình.

e. Taïi sao laïi söû duïng Linux ?


Linux laø mieãn phí (free). Ñoái vôùi chuùng ta hoâm nay khoâng
quan troïng vì ngay WindowsNT server cuõng “free”. Nhöng trong töông lai,
khi chuùng ta muoán hoøa nhaäp vaøo theá giôùi, khi chuùng ta muoán
coù moät thu nhaäp chính ñaùng cho ngöôøi laäp trình, hieän töôïng sao
cheùp troäm phaàn meàm caàn phaûi chaám döùt. Khi ñoù, “free” laø
moät thoâng soá raát quan troïng ñeå choïn Linux.
Linux raát oån ñònh. Traùi vôùi suy nghó truyeàn thoáng “cuûa
reû laø cuûa oâi “, Linux töø nhöõng phieân baûn ñaàu tieân caùch ñaây 5-
6 naêm ñaõ raát oån ñònh. Ngay caû server Linux phuïc vuï nhöõng maïng
lôùn (haøng traêm maùy traïm) cuõng hoaït ñoäng raát oån ñònh.
Linux ñaày ñuû. Taát caû nhöõng gì baïn thaáy ôû IBM, SCO, Sun …
ñeàu coù ôû Linux. C compiler, perl interpeter, shell , TCP/IP, proxy,
firewall, taøi lieäu höôùng daãn ... ñeàu raát ñaày ñuû vaø coù chaát
löôïng. Heä thoáng caùc chöông trình tieän ích cuõng raát ñaày ñuû .
Linux laø HDH hoaøn toaøn 32-bit. Nhö caùc Unix khaùc, ngay
töø ñaàu, Linux ñaõ laø moät HDH 32 bits. Hieän nay ñaõ coù nhöõng
phieân baûn Linux 64 bits chaïy treân maùy Alpha Digital hay Ultra Sparc.

-5-
Linux raát meàm deûo trong caáu hình. Linux cho ngöôøi söû
duïng caáu hình raát linh ñoäng, ví duï nhö ñoä phaân daûi maøn hình
Xwindow tuøy yù, deã daøng söûa ñoåi ngay caû kernel …
Linux chaïy treân nhieàu maùy khaùc nhau töø PC 386, 486
töï laép cho ñeán SUN Sparc.
Linux ñöôïc trôï giuùp. Ngaøy nay, vôùi caùc server Linux söû
duïng döõ lieäu quan troïng, ngöôøi söû duïng hoaøn toaøn coù theå tìm
ñöôïc söï trôï giuùp cho Linux töø caùc coâng ty lôùn. IBM ñaõ chính thöùc
chaøo baùn IBM server chaïy treân Linux. Taøi lieäu giôùi thieäu Linux
ngaøy caøng nhieàu, khoâng thua keùm baát cöù moät HDH naøo khaùc.
Vôùi nguoàn taøi lieäu phong phuù, chöông trình töø kernel cho ñeán
caùc tieän ích mieãn phí vaø boä maõ nguoàn môû, Linux laø ngöôøi baïn
ñoàng haønh lyù töôûng cho nhöõng ai muoán ñi vaøo HDH chuyeân
nghieäp UNIX vaø coâng cuï toát nhaát cho coâng taùc ñaøo taïo CNTT
trong caùc tröôøng ñaïi hoïc.
Caùc phieân baûn cuûa Linux. Caùc phieân baûn cuûa HDH Linux
ñöôïc xaùc ñònh bôûi heä thoáng soá daïng X.YY.ZZ. Neáu YY laø soá
chaün => phieân baûn oån ñònh. YY laø soá leû => phieân baûn thöû
nghieäm .
Caùc phaân phoái (distribution) cuûa Linux quen bieát laø RedHat,
Debian, SUSE, Slakware, Caldera …
Chuù yù phaân bieät soá phieân baûn cuûa heä ñieàu haønh (Linux
kernel) vôùi phieân baûn cuûa caùc phaân phoái (ví duï RedHat 6.0 vôùi
kernel Linux 2.2.5-15).

II. Heä thoáng tieán trình (process) cuûa Linux. Ñieàu


khieån caùc tieán trình.:
Linux laø moät HDH ña ngöôøi söû duïng, ña tieán trình. Linux thöïc
hieän taát caû caùc coâng vieäc cuûa ngöôøi söû duïng cuõng nhö cuûa
heä thoáng baèng caùc tieán trình (process). Do ñoù, hieåu ñöôïc caùch
ñieàu khieån caùc tieán trình ñang hoaït ñoäng treân HDH Linux raát quan
troïng, nhieàu khi coù tính chaát quyeát ñònh, cho vieäc quaûn trò heä
thoáng.
 Ñònh nghóa : Tieán trình (process) laø moät chöông trình ñôn
chaïy treân khoâng gian ñòa chæ aûo cuûa noù . Caàn phaân bieät tieán
trình vôùi leänh vì moät doøng leänh treân shell coù theå sinh ra nhieàu
tieán trình.
 Doøng leänh :
nroff -man ps.1 | grep kill | more
seõ sinh ra 3 tieán trình khaùc nhau.
Coù 3 loaïi tieán trình chính treân Linux :

• Tieán trình vôùi ñoái thoaïi (Interactive processes) : laø tieán trình
khôûi ñoäng vaø quaûn lyù bôûi shell, keå caû tieán trình
forthground hoaëc background.

-6-
• Tieán trình batch (Batch processes) : Tieán trình khoâng gaén lieàn
ñeán baøn ñieàu khieån (terminal) vaø ñöôïc naèm trong haøng ñôïi
ñeå laàn löôït thöïc hieän.

• Tieán trình aån treân boä nhôù (Daemon processes) : Laø caùc tieán
trình chaïy döôùi neàn (background). Caùc tieán trình naøy thöôøng
ñöôïc khôûi ñoäng töø ñaàu. Ña soá caùc chöông trình server cho
caùc dòch vuï chaïy theo phöông thöùc naøy. Ñaây laø caùc chöông
trình sau khi ñöôïc goïi leân boä nhôù, ñôïi thuï ñoäng caùc yeâu
caàu chöông trình khaùch (client) ñeå traû lôøi sau caùc coång xaùc
ñònh (coång laø khaùi nieäm gaén lieàn vôùi giao thöùc TCP/IP BSD
socket. Chuùng ta seõ giaûi thích roõ trong phaàn TCP/IP). Haàu heát
caùc dòch vuï treân Internet nhö mail, Web, Domain Name Service
… chaïy theo nguyeân taéc naøy. Caùc chöông trình ñöôïc goïi laø
caùc chöông trình daemon vaø teân cuûa noù thöôøng keát thuùc
baèng kyù töï “d” nhö named, inetd … Kyù töï “d” cuoái ñöôïc phaùt
aâm rôøi ra nhö “ñeâ “ trong tieáng vieät. Ví duï named ñöôïc phaùt
aâm laø “neâm ñeâ”.

Caùch ñôn giaûn nhaát ñeå kieåm tra heä thoáng tieán trình ñang
chaïy laø söû duïng leänh ps (process status). Leänh ps coù nhieàu tuøy
choïn (option) vaø phuï thuoäc moät caùch maëc ñònh vaøo ngöôøi login
vaøo heä thoáng. Ví duï :
$ ps
PID TTY STAT TIME COMMAND
41 v01 S 0:00 -bash
134 v01 R 0:00 ps
cho pheùp hieån thò caùc tieán trình lieân quan tôùi moät ngöôøi söû
duïng heä thoáng.
Coät ñaàu tieân laø PID (Process IDentification). Moãi tieán trình cuûa
Linux ñeàu mang moät soá ID vaø caùc thao taùc lieân quan ñeán tieán
trình ñeàu thoâng qua soá PID naøy. Gaïch noái – tröôùc bash ñeå thoâng
baùo ñoù laø shell khôûi ñoäng khi ngöôøi söû duïng login.
Ñeå hieån thò taát caû caùc process, ta coù theå söû duïng leänh ps –
a. Moät ngöôøi söû duïng heä thoáng bình thöôøng coù theå thaáy taát caû
caùc tieán trình, nhöng chæ coù theå ñieàu khieån döôïc caùc tieán trình
cuûa mình taïo ra. Chæ coù super-user môùi coù quyeàn ñieàu khieån taát
caû caùc tieán trình cuûa heä thoáng Linux vaø cuûa ngöôøi khaùc. Leänh
ps –ax cho pheùp hieån thò taát caû caùc tieán trình, ngay caû nhöõng
tieán trình khoâng gaén lieàn ñeán coù baøn ñieàu khieån (tty). Chuùng ta
coù theå coi caùc tieán trình ñang chaïy cuøng vôùi doøng leänh ñaày ñuû
ñeå khôûi ñ oäng tieán trình naøy baèng ps –axl. Leänh man ps cho
pheùp coi caùc tham soá töï choïn khaùc cuûa leänh ps .

 Döøng moät tieán trình, leänh kill : Trong nhieàu tröôøng hôïp,
moät tieán trình coù theå bò treo, moät baøn phím ñieàu khieån khoâng
traû lôøi caùc leänh töø baøn phím, moät chöông trình server caàn nhaän
caáu hình môùi, card maïng caàn thay ñoåi ñòa chæ IP …, khi ñoù chuùng

-7-
ta phaûi döøng (kill) tieán trình ñang coù vaán ñeà . Linux coù leänh kill
ñeå thöïc hieän caùc coâng taùc naøy. Tröôùc tieân baïn caàn phaûi bieát
PID cuûa tieán trình caàn döøng thoâng qua leänh ps. Xin nhaéc laïi chæ
coù super-user môùi coù quyeàn döøng taát caû caùc tieán trình, coøn
ngöôøi söû duïng chæ ñöôïc döøng caùc tieán trình cuûa mình. Sau ñoù, ta
söû duïng leänh
kill -9 PID_cuûa_ tieán_trình
Tham soá –9 laø göûi tín hieäu döøng khoâng ñieàu kieän chöông
trình. Chuù yù neáu baïn logged vaøo heä thoáng nhö root, nhaäp soá PID
chính xaùc neáu khoâng baïn coù theå döøng moät tieán trình khaùc.
Khoâng neân döøng caùc tieán trình maø mình khoâng bieát vì coù theå
laøm treo maùy hoaëc dòch vuï.
Moät tieán trình coù theå sinh ra caùc tieán trình con trong quaù trình
hoaït ñoäng cuûa mình. Neáu baïn döøng tieán trình cha, caùc tieán trình
con cuõng seõ döøng theo, nhöng khoâng töùc thì . Vì vaäy phaûi ñôïi moät
khoaûng thôøi gian vaø sau ñoù kieåm tra laïi xem taát caû caùc tieán
trình con coù döøng ñuùng hay khoâng. Trong moät soá haõn höõu caùc
tröôøng hôïp, tieán trình coù loãi naëng khoâng döøng ñöôïc, phöông
phaùp cuoái cuøng laø khôûi ñoäng laïi maùy.
Khi doù tieán trình sau leänh nohup seõ khoâng bò döøng laïi khi baïn
logout.

 Leänh at : Beân caïnh ñoù, Linux coù caùc leänh cho pheùp thöïc
hieän caùc tieán trình ôû caùc thôøi ñieåm mong muoán. Leänh at cho
pheùp thöïc hieän moät tieán trình vaøo thôøi ñieåm nhaäp trong doøng
leänh.
$ at 1:23<Return>
lp /usr/sales/reports/*<Return>
echo “Files printed, BossÆ| mail
boss@company.com<Return>
<^D>
Daáu ^D coù nghóa laø caàn giöõ phím <Ctrl>, sau ñoù nhaán phím
D vaø boû caû 2 phím cuøng moät luùc.
Sau khi baïn keát thuùc leänh at, doøng thoâng baùo gioáng nhö sau
seõ hieän ra maøn hình

job 756001.a at Sat Dec 21 01:23:00 2000

Soá 756001.a cho pheùp tham chieáu tôùi coâng taùc (job) ñoù, ñeå
duøng neáu baïn muoán xoùa job ñoù bôûi leänh
at –r job_number
Leänh naøy coù theå khaùc vôùi caùc phieân baûn khaùc nhau. Ví duï
ñoái vôùi RedHat 6.2 leänh xoùa moät job laø atrm job_number . Trong

-8-
moïi tröôøng hôïp coi manpage ñeå bieát caùc leänh vaø tham soá cuï
theå.
Baïn coù theå duøng quy taéc chuyeån höôùng (redirect) ñeå laäp
lòch trình cho nhieàu laänh cuøng moät luùc
at 10:59 < taäp_leänh
trong ñoù, taäp_leänh laø moät taäp tin daïng text coù caùc leänh.
Ñeå kieåm tra caùc tieán trình maø baïn ñaõ nhaäp vaøo, duøng leänh at –
l

 Leänh batch : Khaùc vôùi leänh at laø tieán trình ñöôïc thöïc hieän
vaøo caùc thôøi ñieåm do ngöôøi söû duïng choïn, leänh batch ñeå cho
heä thoáng töï quyeát ñònh khi naøo tieán trình ñöôïc thöïc hieän döïa
treân möùc ñoä taûi cuûa heä thoáng. Thöôøng laø caùc tieán trình batch
ñöôïc thi haønh khi maùy baän döôùi 20%. Caùc tieán trình in aán, caäp
nhaät döõ lieäu lôùn … raát thích hôïp vôùi kieåu leänh naøy. Cuù phaùp
cuûa batch nhö sau :
$ batch<Return>
lp /usr/sales/reports/*<Return>
echo “Files printed, BossÆ| mail
boss@company.com<Return>
<^D>
Caùc leänh at vaø batch cho pheùp laäp keá hoaïch thöïc hieän tieán
trình moät laàn. Linux coøn cho pheùp laäp keá hoaïch coù tính chaát chu
kyø thoâng qua leänh cron (vieát taét cuûa chronograph) vaø caùc taäp
tin crontabs. Chöông trình cron ñöôïc khôûi ñoäng ngay töø ñaàu vôùi
khôûi ñoäng cuûa heä thoáng. Khi khôûi ñoäng, cron xem coù caùc tieán
trình trong haøng ñôïi nhaäp vaøo bôûi leänh at, sau ñoù xem xeùt caùc
caùc taäp tin crontabs xem coù tieán trình caàn phaûi thöïc hieän hay
khoâng roài “ñi nguû “:-) . Cron seõ “thöùc daäy” moãi phuùt ñeå kieåm
tra xem coù phaûi thöïc hieän tieán trình naøo khoâng. Super-user vaø
user ñeàu coù theå ñaët haøng caùc tieán trình seõ ñöôïc cho pheùp thöïc
hieän bôûi cron. Ñeå laøm ñieàu naøy, baïn caàn taïo moät taäp tin text
theo cuù phaùp cuûa cron nhö sau.
Phuùt giôø ngaøy_cuûa_thaùng thaùng_cuûa_naêm
ngaøy_cuûa_tuaàn leänh
0 8 * * 1
/u/sartin/bin/status_report
cho pheùp /u/sartin/bin/status_report ñöôïc thöïc hieän vaøo 8giôø 00
phuùt caùc thöù hai.
Moãi haøng chöùa thôøi gian vaø leänh. Leänh seõ ñöôïc cron thöïc
hieän taïi thôøi ñieåm ghi ôû tröôùc treân cuøng doøng ñoù. Naêm coät
ñaàu lieân quan tôùi thôøi gian coù theå thay theá baèng daáu sao “*”
vôùi yù nghóa laø “vôùi moïi”. Caùc giaù trò coù theå cho caùc tröôøng laø
:
minute (0-59)

-9-
hour (0-23)
day of month (1-31)
month of year (1-12)
day of week (0-6, 0 is Sunday)
Command (rest of line)
Sau ñoù duøng leänh crontab ñeå caøi ñaët taäp tin leänh vaøo thö
muïc /usr/spool/cron/crontabs. Moãi ngöôøi söû duïng seõ coù moät taäp
tin crontab truøng teân mình (user name) ñeå löu taát caû caùc leänh caàn
thöïc hieän theo chu kyø trong thö muïc naøy. Cuù phaùp söû duïng
crontab:
crontab teân_taäp_tin_leänh
Sau khi hieåu roõ caáu truùc caùc taäp tin, ngöôøi söû duïng coù theå
töï taïo caùc taäp tin crontab vaø ñaët vaøo thö muïc theo ñuùng quy ñònh
cuûa cron maø khoâng caàn phaûi duøng crontab. Ñieàu naøy coøn
ñuùng cho ñaïi ña soá caùc dòch vuï khaùc. Caùc chöông trình cuûa Unix
thöôøng tuaân theo moät quy taéc laø coù caùc taäp tin caáu hình daïng
text. Caùc taäp tin naøy hoaøn toaøn coù theå ñöôïc taïo ra baèng caùc
phaàn meàm soaïn thaûo vaên baûn. Caùc chöông trình tieän ích chæ laø
coâng cuï trôï giuùp neáu ngöôøi söû duïng muoán vaø khoâng mang tính
chaát baét buoäc. Ñeå coù theå trôû thaønh moät ngöôøi quaûn trò Unix
thöïc thuï, baïn ñoïc neân taäp daàn cung caùch caáu hình tröïc tieáp
khoâng thoâng qua caùc tieän ích.
Leänh top. Leänh top cho pheùp hieån thò söï hoaït ñoäng cuûa caùc
tieán trình, ñaëc bieät laø caùc thoâng tin veà taøi nguyeân heä thoáng
cuõng nhö vieäc söû duïng taøi nguyeân ñoù cuûa töøng tieán trình. Vôùi
leänh ñôn giaûn top, ta seõ coù

11:09am  up 46 days, 17:44,  2 users,  load average: 0.08, 0.03, 0.01
63 processes: 61 sleeping, 2 running, 0 zombie, 0 stopped
CPU states:  0.1% user,  0.0% system,  0.0% nice, 99.8% idle
Mem:   126644K av,  121568K used, 5076K free,  0K shrd,   25404K buff
Swap:  136544K av, 9836K used,  126708K free  36040K cached

  PID USER     PRI  NI  SIZE  RSS SHARE STAT %CPU %MEM   TIME COMMAND
27568 tnminh    11   0  1052 1052   836 R     0.1  0.8   0:00 top
    1 root       0   0   124   72    68 S     0.0  0.0   0:25 init
    2 root       8   0     0    0     0 SW    0.0  0.0   0:00 kevent
Soá % maùy raûnh (idle) in ñaäm treân laø raát quan troïng. Moät
maùy raûnh döôùi 50% laø moät maùy quaù taûi vaø caàn ñöôïc xem xeùt.
Leänh top coøn cho pheùp theo doõi xem coù tieán trình naøo chieám
duïng quaù nhieàu thôøi gian CPU cuõng nhö truy caäp ñóa khoâng.
Ngoaøi ra, moät soá leänh khaùc nhö vmstat. Mpstat, sar, iostat ...
cuõng cho pheùp xem xeùt vôùi caùc muïc ñích khaùc nhau hoaït ñoäng
cuûa maùy chuû.

-10-
Inetd vaø caùc dòch vuï maïng :
Unix coù hai caùch ñeå toå chöùc caùc dòch vuï maïng: hoaëc laø
khôûi ñoäng ngay töø ñaàu chöông trình server döôùi daïng daemon,
hoaëc laø ñeå coâng taùc khôûi ñoäng chöông trình dòch vuï theo yeâu
caàu (khi coù yeâu caàu keát noái) vôùi söï trôï giuùp cuûa moät tieán
trình daemon khaùc laø inetd (ñoïc laø ineùt ñeâ). Trong tröôøng hôïp
ñaàu, ta caàn cho moãi dòch vuï ít nhaát moät daemon vaø taøi nguyeân
cuûa heä thoáng bò söû duïng ngay caû khi khoâng coù yeâu caàu keát
noái. Coøn trong tröôøng hôïp sau ta caàn moät daemon cho taát caû caùc
dòch vuï. Taøi nguyeân heä thoáng chæ thöïc söï bò chieám duïng khi coù
yeâu caàu keát noái. Vì vaäy, chöông trình server daïng daemon thöôøng
tröïc ñöôïc duøng cho caùc dòch vuï coù yeâu caàu keát noái thöôøng
xuyeân nhö DNS, mail, Web ; coøn sô ñoà qua inetd daønh cho caùc dòch
vuï vôùi taàn soá thöa nhö ftp, telnet, secure shell …
Chöông trình inetd, coøn goïi laø super-server, ñöôïc söû duïng ñeå
khôûi ñoäng caùc daemon phuïc vuï caùc dòch vuï maïng. inetd ñôïi caùc
noái maïng sau moät soá coång ñöôïc quy ñònh bôûi taäp tion caáu hình
/etc/inetd.conf. RedHat Linux 7.1 söû duïng taäp tin /etc/xinetd.conf vaø
caùc taäp tin trong thö muïc /etc/xinet.d. Khi coù yeâu caàu keát noái,
inetd seõ goïi chöông trình server töông öùng ñeå thieát laäp caùc keát
noái vaø phuïc vuï khaùch haøng. Thoâng thöôøng, inetd ñöôïc khôûi
ñoäng ngay töø ñaàu bôûi caùc script duøng cho khôûi ñoäng maùy. inetd
seõ ñoïc file caáu hình /etc/inetd.conf khi ñöôïc goïi leân boä nhôù . Sau
ñaây laø moät vaøi doøng cuûa taäp tin /etc/inetd.conf

#   <service_name>   <sock_type>   <proto>   <flags>   <user>   <server_path>  


<args>
# Echo, discard, daytime, and chargen are used primarily for testing.
# To re­read this file after changes, just do a 'killall ­HUP inetd'
#time   stream  tcp     nowait  root    internal
#time   dgram   udp     wait    root    internal
#
# These are standard services.
#
ftp     stream  tcp     nowait  root    /usr/sbin/tcpd  in.ftpd ­l ­a
telnet  stream  tcp     nowait  root    /usr/sbin/tcpd  in.telnetd

Beân caïnh taäp tin caáu hình /etc/inetd.conf, taäp tin /etc/services
cuõng ñöôïc inetd söû duïng ñeå bieát caùc coång (port) cuûa caùc
chöông trình server. Ví duï moät ñoaïn cuûa taäp tin /etc/services

ftp­data        20/tcp
ftp             21/tcp

-11-
fsp             21/udp        fspd
ssh             22/tcp # SSH Remote Login Protocol
ssh             22/udp        # SSH Remote Login Protocol
telnet          23/tcp
# 24 ­ private
smtp            25/tcp        mail
# 26 ­ unassigned
time            37/tcp        timserver
time            37/udp        timserver
rlp            39/udp  resource    # resource location
nameserver    42/tcp          name            # IEN 116
whois         43/tcp          nicname
re­mail­ck    50/tcp         # Remote Mail Checking Protocol
re­mail­ck      50/udp       # Remote Mail Checking Protocol
domain          53/tcp          nameserver      # name­domain server
domain          53/udp          nameserver  

Hai taäp tin /etc/inetd.conf vaø /etc/services quan heä maät thieát
vôùi nhau. Coät ñaàu tieân bao goàm teân caùc dòch vuï maïng vaø caàn
phaûi gioáng nhau. Moät dòch vuï muoán ñöôïc hoaït ñoäng nhôø inetd
phaûi khai baùo coång maø noù ñôïi khaùch haøng thoâng qua
/etc/services vaø doøng leänh khôûi ñoäng noù trong /etc/inetd.conf.
Muoán taét moät dòch vuï, ta chæ caàn ñaët daáu chuù thích # tröôùc
doøng mieâu taû dòch vuï vaø khi ñoù, inetd seõ khoâng bieát vaø khoâng
goïi dòch vuï ñoù nöõa. Nhö caùc baïn ñoïc nhaän thaáy noäi dung cuûa
coät <server_path> <args> cho caùc dòch vuï laø /usr/sbin/tcpd
in.telnetd. Chöông trình tcpd ñöôïc inetd goïi leân tröôùc ñeå laøm moät
soá coâng taùc kieåm tra vaø ghi log tröôùc khi chöông trình dòch vuï thöïc
ñöôïc goïi leân. Cuï theå laø tcpd seõ söû duïng
Coät <flags> cho bieát chöông trình inetd coù phaûi ñôïi (wait) hay
khoâng (nowait) keát noái keát thuùc tröôùc khi “tieáp” moät keát noái
khaùc. Ví duï treân vôùi telnet cho thaáy nhieàu chöông trình khaùch coù
theå ñöôïc phuïc vuï moät luùc qua cuøng moät coång telnet 23. Taát
nhieân chöông trình server telnet cuõng phaûi ñöôïc thieát keá thích hôïp
vôùi kieåu laøm vieäc ña khaùch haøng naøy.
Coät <user> quy ñònh quyeàn cuûa tieán trình khi noù ñöôïc chaïy
treân boä nhôù. Trong tröôøng hôïp coù nghi ngôø veà tính baûo maät
cuûa moät dòch vuï, ta coù theå giaûm quyeàn cuûa noù baèng caùch thay
ñoåi noäi dung cuûa coät naøy.
Qua ví duï treân ta thaáy dòch vuï ftp seõ ñöôïc inetd goïi leân thoâng
qua doøng leänh /usr/sbin/tcpd in.ftpd -l –a khi coù moät chöông
trình khaùch haøng duøng giao thöùc TCP goïi qua coång 21.
Ñoïc theâm. Tieán trình ñöôïc sinh ra nhö theá naøo? Treân
moät maùy chuû Unix, thöôøng coù haøng chuïc tieán trình ñang
ñoàng thôøi hoaït ñoäng. Treân nhöõng maùy chuû lôùn vaø baän

-12-
bòu, coù theå coù haøng ngaøn tieán trình cuøng luùc. Vaäy tieán
trình ñöôïc hình thaønh nhö theá naøo ?
Neáu con ngöôøi ñöôïc sinh ra bôûi con ngöôøi thì tieán trình cuõng
sinh ra bôûi tieán trình. Chæ coù moät ñieàu khaùc laø phaûi caàn 2
ngöôøi laøm cha meï môùi coù treû em (tröø nhöõng döï ñònh clone
ngöôøi hieän nay), coøn tieán trình thì chæ coù moät tieán trình cha.
Khi heä thoáng khôûi ñoäng, tieán trình ñaàu tieân laø init. Sau ñoù,
init seõ sinh ra caùc tieán trình khaùc caàn thieát cho söï hoaït
ñoäng cuûa heä thoáng. Ví duï moãi khi ta ñaêng nhaäp heä thoáng,
tieán trình login sau khi kieåm tra maät khaåu seõ sinh ra moät
tieán trình shell ñeå ngöôøi söû duïng coù theå laøm vieäc thoâng
qua caùc doøng leänh cuûa shell. Coù 2 leänh lieân quan tôùi vieäc
hình thaønh caùc tieán trình laø leänh fork vaø execve. Leänh fork
cho pheùp hình thaønh moät tieán trình con gioáng heät tieán trình
cha vaø caû hai sau ñoù cuøng ñöôïc song song hoaït ñoäng vaø
ñöôïc HÑH ñoái xöû nhö nhau. Hai tieán trình naøy chæ khaùc nhau
veà PID vaø ngöôøi ta coù theå bieát raèng hieän ñang ôû tieán trình
baèng caùch xem giaù trò trôû veà cuûa leänh fork: neáu baèng 0, ta
ñang ôû tieán trình cha, neáu khaùc 0 thì ñoù laø PID cuûa tieán
trình con. Leänh execve thì thay theá moät tieán trình baèng moät
tieán trình khaùc. Nhö vaäy, neáu ta ñang coù moät tieán trình A,
tieán trình B coù theå sinh ra töø A baèng caùch A fork ra A’ roài
trong A’ ta duøng leänh execve ñeå thay theá A’ baèng B.
Ñoaïn chöông trình sau cho pheùp hieåu roõ hôn caùc mieâu taû
treân

if (fork() == 0) {
/* I am the child, I will become ls /usr/bin */
execl(“/bin/ls”,”ls”,”/usr/bin”, (char *) 0);
}
else {
/* I’m parent, do whatever perent’s sopposed to do*/
}

Caùc bieán taáu cuûa execve taïo thaønh moät hoï caùc haøm exec
(exec family). Linux coù theâm clone ñeå taïo caùc threads (tieåu
tieán trình). Trong tröôøng hôïp heä thoáng quaù taûi, leänh fork seõ
khoâng thaønh coâng do taøi nguyeân ñaõ bò veùt caïn. Khi ñoù ta
seõ coù thoâng baùo loãi treân maøn hình gaén tröïc tieáp vôùi
maùy chuû vaø maùy chuû caàn ñöôïc xem xeùt söûa chöõa hoaëc
naâng caáp.

III. Heä thoáng taäp tin cuûa Linux :

III.1 Caây thö muïc cuûa Linux. Ñoái vôùi heä ñieàu haønh
Linux, khoâng coù khaùi nieäm caùc oå ñóa khaùc nhau. Sau quaù
trình khôûi ñoäng, toaøn boä caùc thö muïc vaø taäp tin ñöôïc

-13-
“gaén” leân (mount) vaø taïo thaønh moät heä thoáng taäp tin
thoáng nhaát, baét ñaàu töø goác ‘/’

/­­­­­+
!­­­­­­­/bin
!­­­­­­­/sbin
!­­­­­­­/usr­­­­­­/usr/bin
!      !­­­­­­/usr/sbin
!      !­­­­­­/usr/local
!      !­­­­­­/usr/doc
      !
!­­­­­­­/etc
!­­­­­­­/lib
!­­­­­­­/var­­­­­­­/var/adm
     !­­­­­­­/var/log
     !­­­­­­­/var/spool

Hình treân laø caây thö muïc cuûa ña soá caùc Unix. Vôùi caây thö
muïc treân ta khoâng theå naøo bieát ñöôïc soá löôïng oå ñóa cöùng, caùc
phaân maûnh (partition) cuûa moãi ñóa vaø söï töông öùng giöõa caùc
phaân maûnh vaø thö muïc nhö theá naøo.
Chuùng ta coù theå chia ñóa cöùng thaønh nhieàu phaân maûnh
(partition). Moãi partition laø moät heä thoáng taäp tin (file system) ñoäc
laäp. Sau ñoù, caùc heä thoáng taäp tin naøy ñöôïc ‘gaén ‘ (mount) vaøo
heä thoáng taäp tin thoáng nhaát cuûa toaøn heä thoáng. Chuùng ta
hoaøn toaøn coù theå gaén theâm moät ñóa cöùng môùi, format roài
mount vaøo heä thoáng taäp tin döôùi teân moät thö muïc naøo ñoù vaø
taïi moät ñieåm (mount point) naøo ñoù. Ñoái vôùi caùc chöông trình chaïy
treân Unix, khoâng heà coù khaùi nieäm moät thö muïc naèm ôû ñóa naøo
hay partition naøo.

-14-
Hình sau ñaây cho thaáy söï töông quan giöõa vò trí vaät lyù treân
ñóa vaø vò trí logic trong caây taäp tin.

!­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­!
!           / ! ! /
! ! ! |
­­­­­­­­­­­­­­­­­­! !       ­­­­­­­­­­­­­
! !  < == > | |
| |
! /usr ! /usr /squid
 !­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­! |
! ! /usr/home
!         /usr/home !
!­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­! 
!         /squid !
!­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­! 

Thö muïc /usr/home laø thö muïc con cuûa /usr trong caây thö muïc,
nhöng treân ñóa vaät lyù, ñaây laø hai phaân maûnh (partition) caïnh
nhau.
Heä thoáng taäp tin ñöôïc OS Linux mount trong quaù trình khôûi
ñoäng tuaân theo caùc thoâng soá ghi trong taäp tin /etc/fstab (moät laàn
nöõa, neáu baïn naém vöõng cuù phaùp cuûa taäp tin naøy, baïn coù theå
thay ñoåi noù thoâng qua moät chöông trình soaïn thaûo vaên baûn text
baát kyø vaø coù moät kieåu khôûi ñoäng heä thoáng taäp tin nhö baïn
muoán)
[tnminh@pasteur tnminh]$ more /etc/fstab
/dev/hda2 / ext2 defaults 1 1
/dev/hda3 swap swap defaults    0 0
/dev/fd0 /mnt/floppy ext2 noauto      0 0
/dev/cdrom /mnt/cdrom iso9660 noauto,ro   0 0
none         /proc        proc     defaults    0 0
none          /dev/pts   devpts   mode=0622   0 0

Coät 1 (fs_spec) : caùc trang thieát bò (device) caàn mount


- 2 (fs_file) : ñieåm treo (mount point)
- 3 (fs_vfstype) : Kieåu cuûa heä thoáng taäp tin,
- 4 (fs_mntops) : caùc options. Default = mount khi khôûi ñoäng,
ro = read only, user neáu cho pheùp user mount heä thoáng
taäp tin naøy ...

-15-
- 5 (fs_freq) : hieän thò (dumped ) hay khoâng heä thoáng taäp
tin
- 6 (fs_passno) : coù caàn kieåm tra hay khoâng bôûi fsck

Taäp tin /etc/fstab ñöôïc söû duïng bôûi chöông trình mount trong
quaù trình khôûi ñoäng cuûa Linux. Doøng
/dev/cdrom    /mnt/cdrom  iso9660  noauto,ro      0 0
cho pheùp oå CDROM coù theå mount theo yù muoán cuûa ngöôøi
duøng (khoâng mount automatic) vaø gaén vaøo /mnt/crdom vôùi kieåu
heä thoáng taäp tin iso9660 vôùi muïc ñích chæ ñoïc. Neáu khoâng coù töø
khoùa user thì chæ coù root môùi ñöôïc quyeàn mount oå CDROM. Vôùi
taäp tin /etc/fstab nhö treân thì leänh mount/unmount oå CDROM seõ laø
:
mount /dev/cdrom hay umount /dev/cdrom

Mount khoâng coù thoâng soá cho pheùp hieån noäi dung taäp tin
/etc/mtab = nhöõng heä thoáng taäp tin ñaõ ñöôïc mounted.
[root@pasteur tnminh]# mount
/dev/hda2 on / type ext2 (rw)
none on /proc type proc (rw)
none on /dev/pts type devpts (rw,mode=0622)
/dev/hda1 on /home/tnminh/minh type vfat (rw)
So saùnh vôùi
[root@pasteur tnminh]# more /etc/mtab
/dev/hda2 / ext2 rw 0 0
none /proc proc rw 0 0
none /dev/pts devpts rw,mode=0622 0 0
/dev/hda1 /home/tnminh/minh   vfat   rw   0   0

ÔÛ ñaây chuùng ta thaáy 2 doøng ñaëc bieät :

none /proc proc rw 0 0
none /dev/pts devpts rw,mode=0622 0 0

/dev chöùa nhöõng taäp tin ñaëc bieät : taäp tin thieát bò ngoaïi vi.
Heä thoáng Linux söû duïng caùc taäp tin naøy ñeå truy xuaát döõ lieäu
ñeán caùc thieát bò ngoaïi vi. Nhö vaäy, Linux giao tieáp ñeán caùc thieát
bò ngoaïi vi gioáng nhö vôùi caùc taäp tin. Ví duï /dev/psaux ñöôïc duøng
ñeå giao tieáp vôùi chuoät, /dev/hda1 ñeå giao tieáp vôùi phaân maûnh 1
cuûa ñóa cöùng master cuûa controler soá 0...

brw­rw­­­­   1 root     disk       3,   1 May  6  1998 hda1   

-16-
crw­rw­r­­   1 root     root      10,   1 May  6  1998 psaux 
crw­­­­­­­   1 root     tty        4,  64 Oct  3 15:55 ttyS0
crw­­­­­­­   1 root     tty        4,  65 May  6  1998 ttyS1
crw­­­­­­­   1 root     tty        4,  66 May  6  1998 ttyS2
crw­­­­­­­   1 root     tty        4,  67 May  6  1998 ttyS3
Kyù töï coät ñaàu tieân ‘b’ ñeå thoâng baùo kieåu giao tieáp block
(cho thieát bò nhö oå ñóa), ‘c’ – giao tieáp kieåu kyù töï (cho thieát bò nhö
baøn phím, chuoät …).
Toùm laïi, ta nhaän thaáy caây thö muïc cuûa Unix cuõng gioáng nhö
caây thö muïc cuûa MS DOS hay Windows.
/proc laø heä thoáng taäp tin aûo cho pheùp ñoïc caùc thoâng tin cuûa
caùc process treân boä nhôù. Ñeå thöïc taäp , ta coù theå duøng ps ñeå
coi caùc tieán trình vaø thaáy caùc taäp tin töông öùng trong /proc nhö ví
duï sau :

[oracle@appserv]$ ps ax|grep 582
  582 ?        S      0:17 nmbd ­D
 8724 pts/5    S      0:00 grep 582
[oracle@appserv]$ cd /proc/582
[oracle@appserv 582]$ ls ­l
ls: exe: Permission denied
ls: root: Permission denied
ls: cwd: Permission denied
total 0
­r­­r­­r­­    1 root     root            0 Oct 12 17:39 cmdline
lrwx­­­­­­    1 root     root            0 Oct 12 17:39 cwd
­r­­­­­­­­    1 root     root            0 Oct 12 17:39 environ
lrwx­­­­­­    1 root     root            0 Oct 12 17:39 exe
dr­x­­­­­­    2 root     root            0 Oct 12 17:39 fd
pr­­r­­r­­    1 root     root            0 Oct 12 17:39 maps
­rw­­­­­­­    1 root     root            0 Oct 12 17:39 mem
lrwx­­­­­­    1 root     root            0 Oct 12 17:39 root
­r­­r­­r­­    1 root     root            0 Oct 12 17:39 stat
­r­­r­­r­­    1 root     root            0 Oct 12 17:39 statm
­r­­r­­r­­    1 root     root            0 Oct 12 17:39 status
[oracle@appserv 582]$ more cmdline
nmbd­D
[oracle@appserv 582]$

-17-
Caùc kyù töï in ñaäm trong ví duï treân cho pheùp thaáy ñöôïc moái
lieân heä giöõa /proc vaø tieán trình ñang chaïy. Caùc thao taùc treân coù
theå thöïc hieän bôûi moät user baát kyø.

III.2 Quyeàn truy caäp, sôû höõu taäp tin vaø thö muïc cuûa
Linux (directory and file permission and ownership) :
Do Linux laø moät heä ñieàu haønh multitasking vaø multiuser, nhieàu
ngöôøi cuøng coù theå söû duïng moät maùy Linux vaø moät ngöôøi coù
theå cho chaïy nhieàu chöông trình khaùc nhau. Coù hai vaán ñeà lôùn
ñöôïc ñaët ra : quyeàn sôû höõu caùc döõ lieäu treân ñóa vaø phaân chia
taøi nguyeân heä thoáng nhö CPU, RAM ... giöõa caùc process. Chuùng ta
seõ baøn veà sôû höõu caùc taäp tin vaø caùc quyeàn truy xuaát taäp tin.
Taát caû caùc taäp tin vaø thö muïc cuûa Linux ñeàu coù ngöôøi sôû
höõu vaø quyeàn truy nhaäp. Baïn coù theå ñoåi caùc tính chaát naøy cho
pheùp nhieàu hay ít quyeàn truy nhaäp hôn ñoái vôùi moät taäp tin hay
thö muïc. Quyeàn cuûa taäp tin coøn cho pheùp xaùc ñònh taäp tin coù laø
moät chöông trình (application) hay khoâng (khaùc vôùi MSDOS vaø
MSWindows xaùc ñònh tính chaát naøy qua phaàn môû roäng cuûa teân
taäp tin) .Ví duï vôùi leänh ls –l chuùng ta coù theå thaáy

­rw­r—r— 1 fido users 163 Dec 7 14:31 myfile

Coät ñaàu chæ ra quyeàn truy caäp taäp tin


Coät 2 chæ soá lieân keát (link) ñoái vôùi taäp tin hay thö muïc
Coät 3, 4 chæ chuû sôû höõu vaø nhoùm sôû höõu
Coät 5 chæ ñoä daøi cuûa taäp tin
Coät 6 chæ thôøi gian thay ñoåi cuoái cuøng
Coät 7 laø teân taäp tin hay thö muïc
Trong ví duï treân, caùc kyù töï -rw-r—r— bieåu thò quyeàn truy caäp
cuûa taäp tin myfile. Sôû höõu cuûa myfile laø fido vaø nhoùm sôû höõu
myfile laø users . Fido ñöôïc quyeàn ñoïc vaø ghi vaøo myfile, coøn
nhöõng ngöôøi söû duïng cuûa nhoùm users vaø nhöõng ngöôøi khaùc
chæ ñöôïc quyeàn ñoïc myfile.
Linux cho pheùp ngöôøi söû duïng xaùc ñònh caùc quyeàn ñoïc (read),
vieát (write) vaø thöïc hieän (execute) cho töøng ñoái töôïng trong nhoùm
sau : sôû höõu (the owner), nhoùm (the group), vaø nhöõng ngöôøi coøn
laïi ("others" (everyone else)).
Quyeàn ñoïc cho pheùp baïn ñoïc noäi dung cuûa taäp tin. Ñoái thö
muïc quyeàn ñoïc cho pheùp baïn söû duïng leänh ls ñeå xem noäi dung
cuûa thö muïc.
Quyeàn vieát cho pheùp baïn thay ñoåi noäi dung hay xoùa taäp tin.
Ñoái vôùi thö muïc, quyeàn vieát cho pheùp baïn taïo ra, xoùa hay thay
ñoåi teân trong thö muïc.

-18-
Quyeàn thöïc hieän cho pheùp baïn goïi chöông trình leân boä nhôù
baèng caùch nhaäp töø baøn phím teân cuûa taäp tin. Ñoái vôùi thö muïc,
baïn chæ coù theå vaøo thö muïc bôûi leänh cd neáu baïn coù quyeàn
thöïc hieän vôùi thö muïc .
Xem xeùt laïi ví duï treân :

-rw-r—r— 1 fido users 163 Dec 7 14:31 myfile

Kyù töï ñaàu tieân cuûa quyeàn laø kyù töï “–“ aùm chæ raèng ñoù
laø moät taäp tin bìnht thöôøng. Neáu myfile laø moät thö muïc, ta seõ
thaáy vaøo dàoù kyù töï d. Ngoaøi ra coøn coù c cho thieát bò ngoaïi vi
daïng kyù töï (nhö baøn phím), b cho thieát bò ngoaïi vi daïng block (nhö
oå ñóa cöùng).
Chín kyù töï tieáp theo chia thaønh 3 nhoùm, cho pheùp xaùc ñònh
quyeàn cuûa ba nhoùm sôû höõu (owner), nhoùm (group) vaø coøn laïi
(other). Moãi caëp ba naøy cho pheùp xaùc ñònh quyeàn ñoïc, vieát vaø
thöïc hieän theo thöù töï keå treân. Quyeàn ñoïc vieát taét laø “r” ôû vò trí
ñaàu tieân, quyeàn vieát vieát taét baèng “w” ôû vò trí thöù hai vaø vò trí
thöù ba laø quyeàn thöïc hieän kyù hieäu baèng chöõ “x” . Neáu moät
quyeàn khoâng ñöôïc cho, taïi vò trí ñoù seõ coù kyù töï “-“ .
Trong tröôøng hôïp cuûa taäp tin myfile, sôû höõu coù quyeàn rw
töùc laø ñoïc vaø vieát. Myfile khoâng phaûi laø moät chöông trình.
Nhoùm cuøng vôùi coøn laïi chæ coù quyeàn ñoïc taäp tin (read-only).
Hình sau cho ta thaáy roõ hôn caùch “ñoïc” quyeàn truy caäp ñoái vôùi
taäp tin.
Quyeàn truy caäp cô baûn cuûa taäp tin

Song song vôùi caùch kyù hieäu mieâu taû baèng kyù töï nhö ôû
treân, quyeàn thao taùc taäp tin coøn coù theå cho döôùi daïng 3 soá .
Ñoái vôùi myfile, quyeàn ñoù laø 644. Ñieàu quan troïng laø phaûi hieåu
caùch kyù hieäu baèng soá vì noù lieân quan ñeán vieäc thay ñoåi caùc
quyeàn sau naøy. Caùc soá coù theå nhaän taát caû caùc giaù trò töø 0
ñeán 7. Soá ñaàu tieân mieâu taû quyeàn cuûa sôû höõu, soá thöù hai cho
nhoùm vaø soá thöù ba cho coøn laïi.
Moãi soá laø toång cuûa caùc quyeàn theo quy taéc sau :
read permission 4

-19-
Write permission 2
Execute permission 1

Vì vaäy, moät taäp tin vôùi quyeàn 751 coù nghóa laø sôû höõu coù
quyeàn read, write, vaø execute baèng 4+2+1=7, Nhoùm coù quyeàn
read vaø execute baèng 4+1=5, vaø coøn laïi coù quyeàn execute baèng
1.
Neáu chuùng ta xem kyõ, chuùng ta seõ thaáy moïi soá töø 0 ñeán 7
ñeàu töông öùng vôùi moät toå hôïp duy nhaát caùc quyeàn truy nhaäp
taäp tin.

0 or —-: No permissions at all


4 or r—: read-only
2 or -w-: write-only (rare)
1 or —x: execute
6 or rw-: read and write
5 or r-x: read and execute
3 or -wx: write and execute (rare)
7 or rwx: read, write, and execute

Neáu baïn quen vôùi heä nhò phaân, haõy suy nghó baèng heä
thoáng nhò phaân. Khi ñoù, rwx seõ nhö soá nhò phaân 3 bits. Neáu
quyeàn ñöôïc cho, soá nhò phaân töông öùng seõ baèng 1, ngöôïc
laïi, noù seõ baèng 0. Ví duï r-x seõ laø soá nhò phaân 101, vaø theo
heä thaäp phaân seõ laø 4+0+1, hay 5. —x seõ töông öùng 001, hay
0+0+1 = 1 …
Chuù yù: Ngöôøi söû duïng coù quyeàn ñoïc thì coù quyeàn copy
taäp tin vaø taäp tin sao cheùp seõ thuoäc sôû höõu ngöôøi laøm
copy nhö minh hoïa sau
 [tnminh@backup tnminh]$ ls ­l /etc/passwd
­rw­r­­r­­    1 root     root    1113 Oct 13 12:30 /etc/passwd
[tnminh@backup tnminh]$  cp /etc/passwd ./
[tnminh@backup tnminh]$ ls ­l passwd 
­rw­r­­r­­    1 tnminh   admin        1113 Oct 15 10:37 passwd
Caùc quyeàn d9ònh khi taïo taäp tin. Khi moät taäp tin hay thö muïc
ñöôïc taïo ra, permission maëc ñònh seõ ñöôïc xaùc ñònh bôûi caùc
quyeàn tröø bôùt bôûi caùc quyeàn hieån thò baèng umask
[tnminh@pasteur tnminh]$ umask
002
[tnminh@pasteur tnminh]$ echo tao mot file > tmp
[tnminh@pasteur tnminh]$ ls ­l

-20-
total 5472
­rw­rw­r­­   1 tnminh   tnminh         13 Oct  3 21:55 tmp
 [tnminh@pasteur /etc]$ umask 022
[tnminh@pasteur tnminh]$ echo tao mot file khac >tmp1
[tnminh@pasteur tnminh]$ ls ­l
­rw­rw­r­­   1 tnminh   tnminh         13 Oct  3 21:55 tmp
­rw­r­­r­­   1 tnminh   tnminh         18 Oct  3 21:59 tmp1

Trong ví duï treân, quyeàn maëc ñònh luùc ñaàu xaùc ñònh bôûi
umask=002. Khi ñoù, taäp tin tmp taïo ra seõ coù quyeàn laø 664 vaø ñoù
chính laø buø ñeán 6 cuûa umask. Quyeàn thöïc hieän chöông trình caàn
ñöôïc gaùn coá yù bôûi ngöôøi söû duïng hay caùc chöông trình bieân
dòch. Sau ñoù ta ñoåi giaù trò cuûa umask thaønh 022 vaø taäp tin taïo ra
coù quyeàn 644. Giaù trò maëc ñònh cuûa caùc quyeàn thöôøng ñöôïc
gaùn moãi khi ngöôøi söû duïng login vaøo heä thoáng thoâng qua caùc
taäp tin khôûi taïo bieán moâi tröôøng nhö .profile, .bashrc. Ñöùng treân
quan ñieåm baûo maät heä thoáng, giaù trò 024 laø toát nhaát, noù cho
ngöôøi cuøng nhoùm coù quyeàn ñoïc vaø khoâng cho quyeàn naøo vôùi
nhöõng ngöôøi khaùc.
- Leänh chown, chgrp vaø chmod :
Ñaây laø nhoùm leänh ñöôïc söû duïng raát phoå bieán, cho pheùp
thay quyeàn truy caäp cuûa taäp tin hay thö muïc. Chæ coù chuû sôû höõu
vaø superuser môùi coù quyeàn thöïc hieän caùc leänh naøy.

Caùch duøng leänh : chmod quyeàn_truy_caäp_môùi teân_file.

darkstar:~$ ls -l myfile
-rw-r—r— 1 fido users 114 Dec 7 14:31 myfile
darkstar:~$ chmod 345 myfile
darkstar:~$ ls -l myfile
—wxr—r-x 1 fido users 114 Dec 7 14:31 myfile
darkstar:~$ chmod 701 myfile
darkstar:~$ ls -l myfile
-rwx——x 1 root users 114 Dec 7 14:31 myfile

Ví duï thay ñoåi vaø hieän thò cho thaáy söï thgay ñoåi quyeàn truy
caäp taäp tin myfile . Chuù yù laø ta coù quyeàn caáp phaùt quyeàn thöïc
hieän (execute) maø khoâng caàn bieát laø taäp tin coù phaûi laø moät
chöông trình hay khoâng.
Phöông phaùp thay ñoåi tuyeät ñoái naøy coù moät soá öu ñieåm vì
noù laø caùch ñònh quyeàn tuyeät ñoái, keát quaû cuoái cuøng khoâng
phuï thuoäc vaøo quyeàn truy caäp tröôùc ñoù cuûa taäp tin. Ñoàng thôøi,
deã noùi “thay quyeàn taäp tin thaønh baûy-naêm-naêm” thì deã hôn laø

-21-
“thay quyeàn taäp tin thaønh ñoïc-vieát-thöïc hieän, ñoïc-thöïc hieän, ñoïc-
thöïc hieän”
Baïn cuõng coù theå thay ñoåi quyeàn truy nhaäp moät caùch töông
ñoái vaø deã nhôù. Ñeå chæ ra nhoùm quyeàn naøo caàn thay ñoåi, baïn
coù theå söû duïng u (user), g (group), o (other), hay a (all). Tieáp
theo ñoù laø daáu + ñeå theâm quyeàn vaø – ñeå bôùt quyeàn. Cuoái
cuøng laø baûn thaân caùc qyuyeàn vieát taét bôûi r,w,x. Ví duï nhö ñeå
boå sung quyeàn thöïc hieän cho nhoùm vaø coøn laïi, ta nhaäp vaøo
doøng leänh
darkstar:~$ chmod go+x myfile
Ñaây laø caùch thay ñoåi töông ñoái vì keát quaû cuoái cuøng phuï
thuoäc vaøo quyeàn ñaõ coù tröôùc ñoù maø leänh naøy khoâng lieân
quan ñeán. Treân quan ñieåm baûo maõt heä thoáng, caùch thay ñoåi
tuyeät ñoái daãn ñeán ít sai soùt hôn. Thay ñoåi quyeàn truy caäp cuûa
moät thö muïc cuõng ñöôïc thöïc hieän gioáng nhö ñoái vôùi moät taäp tin.
Chuù yù laø neáu baïn khoâng coù quyeàn thöïc hieän (execute) ñoái vôùi
moät thö muïc, baïn khoâng theå thay ñoåi thö muïc cd vaøo thö muïc ñoù.
Moïi ngöôøi söû duïng coù quyeàn vieát vaøo thö muïc ñeàu coù quyeàn
xoùa taäp tin trong thö muïc ñoù, khoâng phuï thuoäc vaøo quyeàn cuûa
ngöôøi ñoù ñoái vôùi taäp tin. Vì vaäy, ña soá caùc thö muïc coù quyeàn
drwxr-xr-x. Nhö vaäy chæ coù ngöôøi sôû höõu cuûa thö muïc môùi coù
quyeàn taïo vaø xoùa taäp tin trong thö muïc. Ngoaøi ra, thö muïc coøn coù
moät quyeàn ñaëc bieät, ñoù laø cho pheùp moïi ngöôøi ñeàu coù quyeàn
taïo taäp tin trong thö muïc, moïi ngöôøi ñeàu coù quyeàn thay ñoåi noäi
dung taäp tin trong thö muïc, nhöng chæ coù ngöôøi taïo ra môùi coù
quyeàn xoùa taäp tin. Ñoù laø sticky bit cho thö muïc. Thö muïc /tmp
thöôøng coù sticky bit baät leân
drwxrwxrwt 7 root root 16384 Oct 21 15:33 tmp
Ta thaáy chöõ t cuoái cuøng trong nhoùm caùc quyeàn, theå hieän
cho sticky bit cuûa /tmp

III.3 Lieân keát (link) taäp tin: Trong Unix coù 2 hình thöùc lieân
keát hoaøn toaøn khaùc nhau, ñoù laø hard link vaø soft link hay
symbolic link. Hard link cho pheùp taïo moät teân môùi cho taäp tin.
Caùc teân naøy coù vai troø hoaøn toaøn nhö nhau vaø taäp tin chæ bò
hoaøn toaøn xoùa boû khi hard link cuoái cuøng cuûa noù bò xoùa. Leänh
ls –l cho pheùp hieån thò soá hard link ñeán taäp tin. Symbolic link coù
chöùc naêng gioáng nhö shortcut cuûa MS Windows. Khi ta ñoïc/ghi soft
link, ta ñoïc/ghi taäp tin; khi ta xoùa symbolic link, ta chæ xoùa symbolic
link vaø taäp tin ñöôïc giöõ nguyeân. Link ñöôïc taïo bôûi leänh ln . Töï
choïn ln –s cho pheùp taïo symbolic link. Ví duï

[tnminh@pascal tnminh]$ls ­l
­rw­­­­­­­   1 tnminh   pkt 517 Oct 27 12:00 mbox
drwxr­xr­x   2 tnminh   pkt 4096 Aug 31 17:50 security
[tnminh@pascal tnminh]$ln –s mbox mybox

-22-
[tnminh@pascal tnminh]$ln –s security securproj
[tnminh@pascal tnminh]$ln –l
­rw­­­­­­­   1 tnminh   pkt 517 Oct 27 12:00  mbox
lrwxrwxrwx   1 tnminh   pkt 4 Oct 27 17:57  mymail ­> mbox
lrwxrwxrwx   1 tnminh   pkt 8 Oct 27 17:57  secrproj ­> security
drwxr­xr­x   2 tnminh   pkt 4096 Aug 31 17:50 security
[tnminh@pascal tnminh]$
Baïn ñoïc coù theå thaáy khaù roõ keát quaû cuûa symbolic link qua
thí duï treân.
Symbolic link raát coù nhieàu öùng duïng. Ví duï nhö moät taäp tin
XXX cuûa moät chöông trình YYY naèm trong thö muïc /var/ZZZ. Neáu
phaân maûnh cuûa /var/ZZZ bò quaù ñaày, ta coù theå “sô taùn” XXX qua
moät thö muïc khaùc thuoäc phaân maûnh khaùc vaø taïo moät link theá
vaøo ñoù maø chöông trình YYY vaãn khoâng heà “hay bieát” vì noù vaãn
truy caäp ñeán /var/ZZZ/XXX nhö thöôøng leä.

-23-
Caùc thao taùc treân taäp tin. Caùc leänh cô baûn cho pheùp laøm
vieäc vôùi caùc taäp tin laø
ls : xem noäi dung moät thö muïc
cp : copy taäp tin/thö muïc
mv : di chuyeån taäp tin/thö muïc
rm : xoaù taäp tin. rm –rf cho pheùp xoùa thö muïc khoâng roãng vaø
taát caû caùc thö muïc con
mkdir : taïo thö muïc môùi
more, less, cat : xem noäi dung taäp tin
diff : so saùnh noäi dung hai taäp tin
touch : ghi laïi thôøi gian taäp tin hoaëc taïo taäp tin môùi neáu chöa
coù
vi, pico, emacs ... cho pheùp soaïn thaûo vaên baûn, laäp trình.
Tieän ích mc gioáng nhö Norton Cammander treân DOS cho pheùp thao
taùc deã daøng caùc taäp tin, keå caû thao taùc vôùi taäp tin cuûa maùy
khaùc thoâng qua maïng.
Leänh tar vaø gzip. Ñaây laø 2 leänh cho pheùp löu tröõ (backup)
cuõng nhö sao cheùp döõ lieäu chuû yeáu cuûa Unix. Leänh tar cho pheùp
ñoùng goùi moät heä thoáng taäp tin thaønh moät taäp tin vôùi phaàn
ñuoâi .tar. Caáu truùc cuûa heä thoáng taäp tin naøy (heä thoáng caùc thö
muïc con) ñöôïc löu tröõ vaø phuï hoài trong quaù trình môû goùi (untar).
Leänh gzip cho pheùp neùn (compact) moät taäp tin. Thoâng thöôøng, ñeå
löu tröõ, ngöôøi ta tar caùc döõ lieäu, roài sau ñoù zip taäp tin keát quaû
cuûa tar. Quaù trình phuïc hoài laøm theo quy trình ngöôïc laïi. Leänh tar
vaø tuøy choïn phoå bieán laø :
Ñeå taïo ra moät löu tröõ tar
tar -cv dir_name > dir_name.tar

Khi ñoù, toaøn boä noäi dung vaø caáu truùc thö muïc con cuûa dir_name
seõ ñöôïc löu trong taäp tin dir_name.tar. Ngöôïc laïi, ñeå phuïc hoài löu
tröõ, ta duøng
tar -xvf dir_name.tar

Leänh df, du. Leänh df (disk free) cho pheùp hieån thò tình traïng
söû duïng cuûa caùc oå ñóa nhö dung löôïng, ñaõ söû duïng vaø dung
löôïng coøn raûnh. Leänh du thö_muïc cho pheùp hieån thò ñoä lôùn cuûa
thö muïc ñoù.
Leänh fsck. Linux ñoøi hoûi caàn ñöôïc döøng theo ñuùng quy trình,
töùc laø phaûi shutdown maùy tröôùc khi taét ñieän baèng coâng taéc.
Moãi khi maùy Linux bò taét ñoät ngoät, heä thoáng taäp tin bò hö haïi vaø
caàn ñöôïc söûa chöõa qua dòch vuï fsck (file system check). Thoâng
thöôøng, fsck söûa chöõa thaønh coâng moät caùch töï ñoäng heä thoáng
taäp tin vaø Linux khôûi ñoäng laïi deã daøng. Tuy nhieân, neáu hö hoûng
quaù naëng, Linux seõ chuyeån qua cheá ñoä single mode ñeå söûa

-24-
chöõa. Khi ñoù, chuùng ta chæ coù theå laøm vieäc vôùi maùy tröïc tieáp
treân baøn phím cuûa noù. Ta seõ phaûi söû duïng leänh
fsck thieát_bò_ñóa_cöùng_bò_hö
ñeå söûa chöõa. Ví duï nhö fsck /dev/hda1 seõ söûa pphaân ñoaïn ñaàu
cuûa oå ñóa master cuûa controller soá 0.
IV. Quaù trình khôûi ñoäng vaø keát thuùc
cuûa UNIX :
Nhö thoâng leä, khi moät maùy tính ñöôïc khôûi ñoäng, sau khi kieåm
tra caùc thieát bò phaàn cöùng gaén treân maùy tính qua caùc chöông
trình kieåm tra ghi trong ROM, heä ñieàu haønh ñöôïc taûi leân boä nhôù.
Coâng taùc ñaàu tieân cuûa heä ñieàu haønh laø kieåm tra caùc thieát bò
ngoaïi vi vaø taûi caùc chöông trình ñieàu khieån (driver) caàn thieát leân
boä nhôù. Sau caùc coâng taùc naøy, baét ñaàu giai ñoaïn ñònh hình heä
thoáng vaø moãi heä ñieàu haønh, thaäm trí moãi phieân baûn cuûa moät
heä ñieàu haønh thöïc hieän moät khaùc. Chuùng toâi xin giôùi thieäu
caùch thöùc khôûi ñoäng vaø caáu hình heä thoáng cuûa Linux RedHat 6.x
. Caùc Unix khaùc nhö SUN OS 6.x, 7.x cuõng coù heä thoáng caùc taäp
tin khôûi ñoäng vaø cô cheá hoaït ñoäng gaàn gioáng nhö Linux RedHat
6.x.
Taäp tin ñaàu tieân maø heä ñieàu haønh xem xeùt ñeáùn laø
/etc/inittab

[tnminh@proxy tnminh]$ ls –l /etc/ inittab
­rw­r­­r­­   1 root     root         1756 May 30 15:51 inittab
[tnminh@proxy tnminh]$ more /etc/inittab
#
# inittab      This file describes how the INIT process should set up
#               the system in a certain run­level.
# Default runlevel. The runlevels used by RHS are:
#   0 ­ halt (Do NOT set initdefault to this)
#   1 ­ Single user mode
#       2   ­   Multiuser,   without   NFS   (The   same   as   3,   if   you   do   not   have  
networking)
#   3 ­ Full multiuser mode
#   4 ­ unused
#   5 ­ X11
#   6 ­ reboot (Do NOT set initdefault to this)
#
id:3:initdefault:

Möùc (level) laøm vieäc maëc ñònh ñöôïc quy ñònh trong taäp tin
naøy. Ví duï treân cho thaáy möùc maëc ñònh laø möùc 3 ôû doøng cuoái
cuøng. Unix noùi chung coù 7 möùc hoaït ñoäng khaùc nhau töø 0 ñeán 6.
Möùc 0 laø ñeå shutdown heä thoáng. Möùc 1 laø ñôn ngöôøi söû duïng

-25-
(single user ) vaø thöôøng ñöôïc duøng ñeå söûa chöõa loãi heä thoáng
taäp tin, möùc 2, 3 laø hai möùc cho ña ngöôøi söû duïng, möùc 6 duøng
ñeå reboot heä thoáng, möùc 4,5 do ngöôøi söû duïng töï thieát keá cho
mình. Töông öùng vôùi caùc möùc treân, trong thö muïc /etc/rc.d coù caùc
thö muïc rc0.d – rc6.d, chöùa caùc taäp tin khôûi ñoäng trong töøng möùc
(rc laø vieát taét cuûa run command). RedHat 6.x coù thö muïc
/etc/rc.d/init.d chöùa taát caû caùc taäp tin khôûi ñoäng. Thöôøng caùc
taäp tin naøy laø caùc shell script (taäp hôïp leänh shell) hoaëc perl script
(nhö Debian Linux chaúng haïn). Trong caùc thö muïc rc?.d chæ coù caùc
lieân keát hình thöùc (symbolic link) ñeán caùc taäp tin khôûi ñoäng trong
/etc/rc.d/init.d. SUN OS 7.0 laïi ñaët thöïc söï caùc script khôûi ñoäng
vaøo caùc thö muïc rc?.d thay vì symbolic link.

-26-
[tnminh@proxy /etc/rc.d]$ ls ­l 
total 22
drwxr­xr­x   2 root     root         1024 May 10 09:44 init.d
­rwxr­xr­x   1 root     root         2722 Apr 15  1999 rc
­rwxr­xr­x   1 root     root          693 Aug 17  1998 rc.local
­rwxr­xr­x   1 root     root         9822 Apr 14  1999 rc.sysinit
drwxr­xr­x   2 root     root         1024 May  3 01:44 rc0.d
drwxr­xr­x   2 root     root         1024 May  3 01:44 rc1.d
drwxr­xr­x   2 root     root         1024 May  3 01:44 rc2.d
drwxr­xr­x   2 root     root         1024 May 10 09:47 rc3.d
drwxr­xr­x   2 root     root         1024 May  3 01:44 rc4.d
drwxr­xr­x   2 root     root         1024 May  3 01:44 rc5.d
drwxr­xr­x   2 root     root         1024 May  3 01:44 rc6.d

Trong caùc thö muïc rc?.d, caùc script baét ñaàu baèng S (start) ñöôïc
söû duïng khi khôûi ñoäng, coøn caùc script baét ñaàu töø K (kill) duøng
ñeå döøng caùc tieán trình tröôùc khi qua moät möùc hoaït ñoäng khaùc.
Toaøn boä caùc taäp tin naøy quyeát ñònh caáu hình laøm vieäc cuûa
moät maùy Unix sau khi hoaøn thaønh quaù trình khôûi ñoäng. Vieäc khôûi
ñoäng heä thoáng caùc dòch vuï cuõng thöïc hieän thoâng qua cô cheá
nhö ñaõ mieâu taû treân.
Leänh init soá_möùc cho pheùp chuyeån giöõa caùc möùc cuûa heä
thoáng. Ví duï

[root@proxy /etc/rc.d]# init 1 

cho pheùp chuyeån heä thoáng töø möùc hieän haønh qua möùc 1
ñeå söûa chöõa. Sau ñoù init 3 cho pheùp quay veà möùc 3 ña ngöôøi
duøng.
Khi chuùng ta ñaùnh leänh shutdown, toaøn boä heä thoáng chuyeån
veà möùc 0 vaø chuùng ta döøng heä thoáng. Chuù yù luoân shutdown
hay halt heä thoáng tröôùc khi taét coâng taéc ñieän.

V. Quaûn lyù ngöôøi söû duïng :


Trong quaù trình caøi ñaët Linux chuùng ta khôûi taïo ngöôøi söû
duïng root cho heä thoáng. Ñaây laø superuser, töùc laø ngöôøi söû duïng
ñaëc bieät vaø khoâng coù giôùi haïn naøo veà quyeàn haïn ñoái vôùi
root. Söû duïng quyeàn root chuùng ta raát thaáy thoaûi maùi vì chuùng ta
coù theå laøm ñöôïc thao taùc maø khoâng phaûi lo laéng gì ñeát xeùt
quyeàn truy caäp naøy hay khaùc. Tuy nhieân, khi heä thoáng bò söï coá
do moät loãi laàm naøo ñoù, chuùng ta môùi thaáy söï nguy hieåm khi
laøm vieäc nhö root. Baïn thöû hình dung toaøn boä caùc Email cuûa moät
mail server cuûa toaøn coâng ty bò xoùa do ñaùnh moät leänh sai thì taùc

-27-
haïi seõ lôn ñeán möùc naøo ( ñöøng ñeán gaëp tröïc tieáp giaùm ñoác khi
baùo tin naøy maø neân thoâng baùo qua ñieän thoaïi ñeå traùnh moät
caùi … baït tai, ). Vì vaäy, haõy chæ duøng quyeàn root khi baïn khoâng
coù caùch naøo khaùc.
Caàn phaân bieät baïn ñang login nhö root hay ngöôøi söû duïng
thöôøng thoâng qua daáu nhaéc cuûa shell.

login: tnminh
Password:
Last login: Sat Oct 28 14:30:15 from 172.16.10.199
 [tnminh@pascal tnminh]$ su –l root
Password:
[root@pascal /root]#

Doøng 4 vôùi daáu $ cho thaáy ta ñang keát noái nhö moät ngöôøi
söû duïng thöôøng (tnminh). Doøng cuoái cuøng vôùi daáu # cho thaáy
baïn ñang thöïc hieän caùc leänh nhö root. Leänh su cho pheùp baïn thay
ñoåi login döôùi moät user khaùc maø khoâng phaûi logout roài login
laïi.
Baïn caàn taïo caùc taøi khoaûn (account) cho ngöôøi söû duïng
thöôøng sôùm nhaát coù theå ñöôïc (ñaàu tieân laø cho baûn thaân baïn).
Vôùi nhöõng server quan troïng vaø coù nhieàu dòch vuï khaùc nhau,
thaäm trí baïn coù theå taïo ra caùc superuser thích hôïp cho töøng dòch
vuï ñeå traùnh duøng root cho caùc coâng taùc naøy. Ví duï nhö superuser
cho coâng taùc backup chæ caàn chöùc naêng ñoïc (read-only) maø
khoâng caàn chöùc naêng ghi.

Taäp tin /etc/passwd. Taäp tin /etc/passwd ñoùng moät vai troø
soáng coøn ñoái vôùi moät heä thoáng Unix. Moïi ngöôøi ñeàu coù theå
ñoïc ñöôïc taäp tin naøy nhöng chæ coù root môùi coù quyeàn thay ñoåi
noù. Taäp tin /etc/passwd ñöôïc löu döôùi daïng text hieån nhö ñaïi ña soá
caùc taäp tin caáu hình cuûa Unix.

[oracle@appserv oracle]$ more /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:
...
tnminh:x:501:501:TNMinh:/home/tnminh:/bin/bash

Moãi user ñöôïc löu trong moät doøng goàm 7 coät.


Coät 1 : teân ngöôøi söû duïng

-28-
Coät 2 : maõ lieân quan ñeán passwd cho Unix chuaån vaø ‘x’ ñoái
vôùi Linux. Linux löu maõ naøy trong moät taäp tin khaùc /etc/shadow
maø chæ coù root môùi coù quyeàn ñoïc.
Coät 3:4 : user ID:group ID
Coät 5: Teân ñaày ñuû cuûa ngöôøi söû duïng. Moät soá phaàn meàm
phaù password söû duïng döõ lieäu cuûa coät naøy ñeå thöû ñoaùn
password.
Coät 6: thö muïc caù nhaân
Coät 7: chöông trình seõ chaïy ñaàu tieân sau khi login (thöôøng laø
shell) cho user

Taäp tin môû ñaàu bôûi superuser root. Chuù yù laø taát caû nhöõng
user coù user ID = 0 ñeàu laø root!!! Tieáp theo laø caùc user heä thoáng.
Ñaây laø caùc user khoâng coù thaät vaø khoâng theå login vaøo heä
thoáng. Cuoái cuøng laø caùc user bình thöôøng.
Taäp tin /etc/shadow. Unix truyeàn thoáng löu caùc thoâng tin lieân
quan tôùi maät khaåu ñeå ñaêng nhaäp (login) ôû trong /etc/passwd. Tuy
nhhieân, do ñaây laø taäp tin phaûi ñoïc ñöôïc bôûi taát caû moïi ngöôøi do
moät soá yeâu caàu cho hoaït ñoäng bình thöôøng cuûa heä thoáng (nhö
chuyeån User ID thaønh teân khi hieån thò trong leänh ls chaúng haïn) vaø
nhìn chung caùc user ñaët maät khaåu “yeáu”, do ñoù haàu heát caùc
Unix phieân baûn môùi ñeàu löu maät khaåu trong moät taäp tin khaùc
/etc/shadow vaø chæ co root ñöôïc quyeàn ñoïc taäp tin naøy.
Chuù yù: Theo caùch xaây döïng maõ hoùa maät khaåu, chæ coù 2 caùch
phaù maät khaåu laø veùt caïn (brute force) vaø ñoaùn. Phöông phaùp
veùt caïn, theo tính toaùn chaët cheõ, laø khoâng theå thöïc hieän noåi vì
ñoøi hoûi thôøi gian tính toaùn quaù lôùn, coøn ñoaùn thì chæ tìm ra
nhöõng maät khaåu ngaén, hoaëc “yeáu”, ví duï nhö nhöõng töø tìm thaáy
trong töø ñieån nhö god, darling ...
Taïo user (account) môùi : Ñeå taïo moät moät account, baïn coù
theå söû duïng leänh adduser (hoaëc useradd tuøy vaøo phieân baûn).
Taát nhieân laø baïn phaûi laøm thao taùc naøy döôùi quyeàn root (daáu
nhaéc #)

[root@appserv oracle]# /usr/sbin/adduser foo
[root@appserv oracle]# passwd foo
Changing password for user foo
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully
[root@appserv oracle]#

-29-
Sau khi baïn taïo xong user bôûi doøng ñaàu tieân cuûa ví duï treân,
user foo vaãn chöa keát noái ñöôïc vì thieáu password. Baïn phaûi khôûi
taïo password cho foo bôûi leänh passwd foo nhö thaáy ôû treân.
Vì vaán ñeà an ninh cuûa maùy Unix naøy vaø keùo theo söï an toaøn
cuûa toaøn heä thoáng maïng cuûa baïn, raát quan troïng choïn ñuùng
password. Moät password goïi laø ñuùng neáu :
• Coù ñoä daøi toái thieåu 8 kyù töï.ï
• Phoái hôïp giöõa chöõ thöôøng, chöõ hoa, soá vaø caùc kyù töï
ñaëc bieät
• Khoâng lieân quan ñeán teân tuoåi, ngaøy sinh … cuûa baïn vaø
ngöôøi thaân
• Khoâng coù trong töø ñieån

Trong ví duï treân, baïn khôûi taïo ngöôøi duøng vaø khoâng quan
taâm gì ñeán nhoùm (group) cuûa ngöôøi duøng. Raát tieän lôïi neáu baïn
taäp hôïp nhieàu ngöôøi duøng vaøo chung moät nhoùm coù cuøng moät
chöùc naêng vaø cuøng chia seû nhau döõ lieäu. Khi baïn taïo ngöôøi söû
duïng nhö treân, Linux seõ taïo cho moãi ngöôøi moät nhoùm. Ñoïc taäp tin
/etc/passwd ta thaáy

[root@appserv oracle]# more /etc/passwd|grep foo


foo:x:1012:1013::/home/foo:/bin/bash
[root@appserv oracle]#

foo laø user soá 1012 vaø thuoäc nhoùm 1013.

Xem taäp tin /etc/group ta thaáy

[root@appserv oracle]# more /etc/group


root:x:0:root
……………….
users:x:100:
………………
foo:x:1013:

vaø ta coù theå keát naïp foo vaøo nhoùm users baèng caùch thay
soá 1013 baèng 100, laø group ID cuûa users.

-30-
Xoùa user (account) : Leänh userdel duøng ñeå xoùa moät user.
Baïn cuõng coù theå xoùa moät user baèng caùch xoùa ñi doøng döõ lieäu
töông öùng trong taäp tin /etc/passwd.

VI. Quyeàn truy caäp cuûa tieán trình. Setuid vaø


setgid.
Ngöôøi söû duïng khi thao taùc treân heä thoáng vaø truy caäp caùc taäp
tin ñeàu thöïc hieän thoâng qua caùc tieán trình. Nhìn chung caùc tieán
trình seõ coù quyeàn nhö ngöôøi söû duïng noù. User foo khi ñaùnh leänh
more /etc/passwd seõ goïi leân boä nhôù tieán trình more vaø tieán trình seõ
hieån thò t noäi dung cuûa /etc/passwd. Tieán trình more naøy seõ coù
quyeàn truy caäp nhö foo vaø do /etc/passwd cho pheùp taát caû ñeàu
ñoïc ñöôïc vaø leänh naøy thöïc hieän thaønh coâng. Tuy nhieân more 
/etc/shadow seõ khoâng thaønh coâng vì vôùi quyeàn cuûa foo, tieán trình
more khoâng theå hieån thò noäi dung cuûa /etc/shadow. Nhö ta bieát,
ngöôøi söû duïng coù theå thay ñoåi maät khaåu cuûa baûn thaân mình
thoâng qua leänh passwd. Neáu vaãn theo cô cheá treân, leänh passwd
seõ coù quyeàn nhö ngöôøi goïi noù vaø do ñoù khoâng coù quyeàn ghi
vaøo taäp tin /etc/shadow. Ñeå giaûi quyeát nhöõng yeâu caàu laø coù
nhöõng thao taùc ngöôøi söû duïng caàn coù quyeàn root, Unix ñaët ra cô
cheá setuid/setgid cho caùc chöông trình. Theo cô cheá naøy, chöông trình
khi ñöôïc ngöôøi söû duïng (goïi laø real user) goïi leân boä nhôù seõ coù
quyeàn nhö ngöôøi sôû höõu cuûa taäp tin chöông trình (goïi laø effective
user). Ví duï neáu ta coi chöông trình passwd ta seõ thaáy
[tnminh@backup tnminh]$ ls ­l /usr/bin/passwd
­r­s­­x­­x    1 root     root        13536 Jul 12  2000 /usr/bin/passwd
[tnminh@backup tnminh]$ 
Chöông trình naøy coù sôû höõu laø root vaø coù moät kyù töï “s” ñöùng
vaøo vò trí cuûa “x”. Kyù töï naøy noùi leân raèng passwd ñöôïc setuid
vaø cho duø ai goïi passwd leân boä nhôù, passwd seõ coù quyeàn root.
Hoaøn toaøn töông töï ñoái vôùi setgid.
Chuù yù: Treân quan ñieåm baûo maät heä thoáng, caùc chöông trình coù
setuid veà quyeàn root laø nhöõng ñieåm quan troïng caàn xem xeùt vì ña
soá caùc xaâm nhaäp heä thoáng lieân quan tôùi loãi cuûa caùc chöông
trình loaïi naøy.
VII. Keát noái maïng thoâng qua TCP/IP:
Chuùng ta seõ xem xeùt quaù trình noái moät maùy Linux vaøo maïng
Ethernet ñeå trao ñoåi thoâng tin baèng giao thöùc TCP/IP treân Ethernet.

VII.1. HDH Linux vaø card maïng:


Ñeå noái moät maùy Linux vaøo moät maïng Ethernet, baïn caàn
phaûi coù ñaàu tieân laø moät card maïng maø Linux ñaõ coù chöông trình
driver. Sau ñaây laø moät soá maïng maø Linux coù trôï giuùp (danh saùch
sau khoâng ñaày ñuû vaø caùc phieân baûn môùi cuûa Linux hoã trôï raát
nhieáu caùc card maïng khaùc nhau) :
3Com 3C509

-31-
3Com 3C503/16
Novell NE1000
Novell NE2000
Western Digital WD8003
Western Digital WD8013
Hewlett-Packard HP27245
Hewlett-Packard HP27247
Hewlett-Packard HP27250

Giaû söû caùc baïn muoán gaén maùy cuûa mình vaøo moät maïng
LAN Ethernet vaø baïn ñaõ coù moät card maïng. Vaán ñeà ñaàu tieân laø
söï nhaän bieát cuûa Linux ñoái vôùi card naøy. Neáu card cuûa baïn laø
moät card khaù phoå bieán nhö 3c509 cuûa 3COM hay NE2000 cuûa
Novell, HDH Linux seõ nhaän bieát söï hieän dieän cuûa card trong quaù
trình boot. Ñeå bieát xem keát quaû nhaän bieát card maïng, ta coù theå
xem xeùt caùc thoâng baùo cuûa kernel Linux trong quaù trình boot cuûa
heä thoáng qua leäng dmesg

-32-
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 doøng in ñaäm baùo raèng card maïng 3c509 ñaõ ñöôïc kernel
nhaän bieát. Trong tröôøng hôïp kernel khoâng nhaän bieát card , chuùng
ta phaûi laøm laïi kernel Linux vaø ñaët module ñieàu khieån (driver) cuûa
card vaøo trong kernel hay caáu hình ôû cheá ñoä load module.
Ñeå caáu hình tieáp noái maïng qua TCP/IP chuùng ta phaûi xaùc ñònh
roõ caùc thoâng tin lieân quan ñeán ñòa chæ IP cuûa maùy. Caùc thoâng
tin caàn bieát laø :
Ñòa chæ IP cuûa maùy
Netmask
Ñòa chæ cuûa maïng
Broadcast
Ñòa chæ IP cuûa gateway

Chuùng ta seõ laàn löôït ñieåm qua caùc khaùi nieäm cô baûn treân
vaø seõ hoïc saâu hôn trong phaàn TCP/IP cuûa khoùa hoïc.
Ñòa chæ IP cuûa maùy laø moät daõy 4 soá vieát döôùc daïng
A.B.C.D, trong ñoù moãi soá nhaän giaù tri töø 0-255. Neáu maùy cuûa
baïn keát noái moät maïng nhoû taïi nhaø do baïn thieát laäp thì ñòa chæ
kieåu 192.168.1.D laø moät ñòa chæ neân ñaët, vôùi D laø caùc soá khaùc
nhau cho töøng maùy. Neáu maùy cuûa baïn seõ hoøa nhaäp vôùi moät
maïng LAN ñaõ coù tröôùc ñoù vaø baïn muoán keát noái vôùi caùc maùy
khaùc thì hoûi ngöôøi quaûn trò maïng veà ñòa chæ IP baïn coù theå gaùn
cho maùy cuûa mình cuøng vôùi taát caû caùc thoâng soá tieáp theo.
Netmask. Töông töï nhö treân, neáu baïn töï quaûn, netmask seõ laø
255.255.255.0
Ñòa chæ maïng. Neáu baïn töï quaûn, ñòa chæ cuûa maïng seõ laø
192.168.1.0
Broadcast. Neáu baïn töï quaûn, broadcast laø 192.168.1.255
Ñòa chæ gateway. Ñaây laø ñòa chæ cuûa maùy cho pheùp baïn
keát noái vôùi maïng LAN khaùc, töùc laø caùc maùy tính vôùi 3 soá ñaàu
cuûa ñòa chæ khoâng gioáng baïn laø 192.168.1. Baïn boû troáng neáu
baïn chæ lieân laïc vôùi caùc maùy cuøng maïng 192.168.1.XXX. Chuù yù
laø ñòa chæ maïng cuûa maùy gateway baét buoäc phaûi truøng vôùi ñòa
chæ maïng cuûa baïn.

-33-
Sau khi ñaõ xaùc ñònh caùc thoâng soá, ví duï nhö
IP address = 192.168.1.15
Netmask = 255.255.255.0
suy ra network address = 192.168.1.0 vaø broadcast = 192.168.1.255
Gateway = 192.168.1.1

VII.2. Caáu hình card maïng:


 Leänh ifconfig. Sau khi laøm cho kernel nhaän bieát söï hieän
dieän cuûa card maïng, coâng taùc tieáp theo laø caáu hình TCP/IP cho
card. Trong quaù trình caøi ñaët Linux Redhat 6.X, bình thöôøng chuùng
ta ñaõ ñöôïc chöông trình caøi ñaët hoûi vaø caáu hình hoä . Trong
tröôøng hôïp khi chuùng ta boå sung card maïng sau khi Linux ñaõ
ñöôïc caøi ñaët, chuùng ta coù theå söû duïng tieän ích netconf cho
muïc ñích naøy hoaëc chuùng ta söû duïng leänh ifconfig ñeå töï caøi
ñaët.
Leänh ifconfig ñöôïc söû duïng trong quaù trình boot heä thoáng ñeå
caáu hình caùc trang thieát bò maïng. Sau ñoù, trong quaù trình vaän
haønh, ifconfig ñöôïc söû duïng cho debug, hoaëc ñeå cho ngöôøi quaûn
trò heä thoáng thay ñoåi caáu hình khi caàn thieát .
Leänh ifconfig khoâng coù tuøy choïn duøng ñeå hieån thò caáu
hình hieän taïi cuûa maùy.

 [root@pasteur tnminh]# /sbin/ifconfig
eth0      Link encap:Ethernet  HWaddr 00:A0:24:4F:3D:DC
          inet addr:192.168.2.20  Bcast:192.168.2.255  Mask:255.255.255.0
          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    

Ñeå gaùn ñòa chæ IP 193.105.106.10 cho card maïng Ethernet ñaàu
tieân ta duøng leänh

-34-
ifconfig eth0 193.105.106.10 netmask 255.255.255.0 broadcast 192.105.106.255

Linux cho pheùp baïn söû duïng bí danh (alias) cho card maïng, töùc
laø cho pheùp baïn coù nhieàu ñòa chæ IP cho cuøng moät card vaät lyù.
Keát quaû nhaän ñöôïc gaàn gioáng nhö baïn coù gaén nhieàu card vaät
lyù leân maùy. Do ñoù, baïn coù theå duøng moät card ñeå noái vôùi
nhieàu maïng logic khaùc nhau. Cuù phaùp cuûa leänh naøy laø :

ifconfig   eth0:0   208.148.45.58   netmask   255.255.255.248   broadcast  


208.148.45.255 up
Caùc taäp tin caáu hình cuûa keát noái maïng laø
/etc/sysconfig/network-scripts/ifcfg-ethX vôùi X laø 0,1 ... hay 0:0, 0:1
.... Baïn coù theå thay ñoåi caáu hình keát noái maïng baèng caùch söûa
ñoåi laïi taäp tin naøy baèng moät chöông trình soaïn thaûo text nhö mc
chaúng haïn, sau ñoù khôûi ñoäng laïi keát noái maïng baèng
/etc/rc.d/init.d/network restart
Nhôù kieåm tra laïi keát quaû qua leänh ifconfig.
 Leänh route.
Leänh Route cho pheùp laøm caùc thao taùc ñeán baûng daãn ñöôøng
(forwarding table) cuûa kernel. Noù ñöôïc söû ñaàu tieân ñeå xaùc ñònh
ñöôøng daãn coá ñònh (static) ñeán nhöõng maùy hoaëc nhöõng maïng
qua caùc card maïng ethernet ñaõ ñöôïc caáu hình tröôùc ñoù bôûi
ifconfig.
Leänh route khoâng coù tuøy choïn (option) cho pheùp hieån thò
baûng daãn ñöôøng hieän taïi cuûa kernel (Leänh netstat –r cuõng coù
taùc duïng töông töï)

[root@pasteur tnminh]# /sbin/route
Kernel IP routing table
Destination     Gateway   Genmask   Flags Metric Ref Use Iface
192.168.2.20    *   255.255.255.255 UH   0     0     0   eth0
192.168.2.0     *   255.255.255.0   U    0     0     0   eth0
127.0.0.0       *   255.0.0.0       U    0     0     0   lo
default       192.168.2.10   0.0.0.0   UG    0    0   0 eth0
Ñeå chæ ra raèng card maïng eth0 ñöôïc noái vôùi moät maïng
208.148.45.56 ta duøng leänh route nhö sau :

route add ­net 208.148.45.56 eth0

Coøn neáu chuùng ta muoán söû duïng bí danh cuûa card maïng ñeå
noái vaøo moät maïng logic khaùc, ta coù theå söû duïng leänh

-35-
route add ­net 193.105.106.0 eth0:0

Coâng taùc cuoái cuøng laø phaûi chæ ra caùc ñòa chæ cuûa gateway
maëc ñònh.

route add default gw 193.105.106.1 metric 1
Bieát söû duïng thaønh thaïo cuù phaùp cuûa 2 leänh ifconfig vaø
route raát quan troïng, noù cho pheùp caùc caùn boä quaûn trò thay ñoåi
caáu hình keát noái maïng cuûa moät server moät caùch nhanh choùng
vaø khoâng phaûi khôûi ñoäng laïi maùy. Vì vaäy, server luoân saün saøng.
Baïn cuõng coù theå söû duïng tieän ích netconfig ñeå caáu hình lieân
keát maïng neáu chöa thaønh thaïo nhieàu cuù phaùp cuûa caùc leänh
treân.
 Leänh ping. ÖÙng duïng cuûa leänh naøy laø ñeå thöû xem 2
maùy coù keát noái ñöôïc vôùi nhau chöa. Cuù phaùp cô baûn cuûa
leänh raát ñôn giaûn laø ping ñòa_chæ_IP_maùy_ñích. Ví duï 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
[tnminh@proxy tnminh]$

Neáu 2 maùy coù theå lieân laïc ñöôïc vôùi nhau, ñoàng thôøi chuùng
ta seõ coù traû lôøi cuøng vôùi thôøi gian traû lôøi ñeå cho bieát söï thoâng
thoaùng veà maïng giöõa 2 maùy. Coù theå noùi, ping phaûi chaïy tröôùc
tieân tröôùc taát caû caùc hoaït ñoäng maïng khaùc.
Chuù yù: Neân söû duïng ping –n ñeå traùnh truïc traëc do dòch vuï
DNS laøm aûnh höôûng tôùi vieäc keát quaû thöû keát noái maïng.

 Leänh Traceroute. Ñaây cuõng laø leänh cho pheùp chaån


ñoaùn hoaït ñoäng cuûa maïng. Cuù phaùp cuûa leänh gioáng nhö
leänh ping nhöng keát quaû khoâng chæ döøng ôû söï traû lôøi maø
coøn chæ ra caùc thieát bò trung gian naèm giöõa 2 maùy.
# tnminh@nefertiti ~ > traceroute 203.162.44.33
traceroute to 203.162.44.33 (203.162.44.33): 1­30 hops, 38 byte packets

-36-
 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 (195.25.28.149), 5.0 ms, 4.17 ms, 4.17 m
 3  FastEth0­0.GW16.Defense.OLEANE.NET (195.25.25.208), 4.17 ms, 4.17 ms, 4.17s
 4  100.ATM6­1.GW2.Telehouse.OLEANE.NET (194.2.3.245), 5.0 ms, 5.0 ms, 5.0 ms
 ..............
14  210.132.93.210 (210.132.93.210), 849 ms (ttl=241!), 807 ms (ttl=241!), 970
s (ttl=241!)
15  202.167.121.195 (202.167.121.195), 905 ms !H 203.162.3.42 (203.162.3.42), 1
88 ms (ttl=242!)

Chuù yù laø khi chuùng ta thöû keát noái vôùi moät maùy ôû xa trong
Internet, do nhieàu maïng aùp duïng caùc böùc töôøng löûa (firewall) neân
nhieàu khi leänh ping vaø traceroute khoâng chaïy nhöng treân thöïc chaát
laø maïng vaãn thoâng.

VIII. X-Window. X-window (chuù yù window khoâng coù “s” nhö


Windows cuûa Miscrosoft) laø giao dieän ñoà hoïa cuûa Unix. X Window
System ñöôïc phaùt trieån taïi Laboratory for Computer Science,
Massachusetts Institute of Technology vaøo 1984.
Tuy nhieân, do Unix laøheä ñieàu haønh maïng neân phöông thöùc hoaït
ñoäng cuûa X-widow cuõng khaùc haún Windows cuûa Microsoft. Cô
cheá hoaït ñoäng cuûa Xwindow ñöôïc mieâu taû trong sô ñoà sau:

Xserver (XF86-SVGA) Xclient (netscape, xterm)


User------- Maùy traïm WS <------ maïngTCP/IP------ Maùy
chuû S
(maøn hình, baøn phím, chuoät)

Tham gia vaøo moâ hình X window coù chöông trình X server vaø X
client. Nhìn chung, X server laø chöông trình chaïy treân maùy traïm laøm
vieäc WS cuûa ngöôøi söû duïng, coøn X client chaïy treân maùy chuû S
naèm xa ngöôøi söû duïng. Chöông trình Xserver treân maùy traïm chòu
traùch nhieäm quaûn lyù taøi nguyeân cuûa maùy traïm (maøn hình, baøn
phím, chuoät) vaø thöïc hieän giao tieáp giöõa ngöôøi söû duïng vaø
chöông trình X client chaïy treân maùy chuû (noùi chung laø ôû xa nhöôøi
söû duïng). Keát noái giöõa X server vaø Xclient coù theå thöïc hieän
hoaøn toaøn treân TCP/IP qua maïng LAN cuõng nhö WAN. Moät Xserver
coù theå cho pheùp “hieån thò” nhieàu Xclient ôû nhieàu maùy khaùc
nhau vaø ñoù laø öu ñieåm cô baûn cuûa Xwindow. Xserver “nghe” taïi
coång 6000 vaø Xclient môû moät keát noái töø moät coång naøo ñoù
(lôùn hôn 1023) veå coång 6000 cuûa Xserver.
Tröôùc khi keát noái, Xserver phaûi cho pheùp Xclient ñöôïc quyeàn keát
noái thoâng qua leänh xhost +ñòa_chæ_maùy_Xclient treân maøn hình
cuûa Xserver.
Ñeå Xclient bieát phaûi hieån thò ñi ñaâu, ta caàn thay ñoåi bieán moâi
tröôøng DISPLAY treân maùy coù Xclient qua leänh export

-37-
DISPLAY=ñòa_chæ_maùy_Xserver:0.0. Sau ñoù goïi chöông trình
Xclient, ví duï xterm & hay netscape & (chuù yù daáu & ôû cuoái cho
pheùp chöông trình chaïy background).
Nhöõng coâng taùc treân thöïc chaát phaûi laøm ñeå caáu hình moät
Xserver laø :
• Xaùc ñònh nhaø saûn xuaát, phieân baûn cuûa video controller. Qua
ñoù xaùc ñòng ñöôïc chöông trình Xserver. Trong nhieàu tröôøng
hôïp, XF86-SVGA laø töông thích.
• Xaùc ñònh maøn hình ñeå qua ñ1o xaùc ñònh caùc thoâng soá veà
toác ñoä queùt doïc vaø ngang cuûa maøn hình
• Xaùc ñònh ñoä phaân giaûi cuûa maøn hình, ña soá laø 800x600 hay
1024x768
• Ngöôøi söû duïng löïa choïn chöông trình quaûn lyù cöûa soå
(Window Manager). Söï löïa choïn naøy phuï thuoäc vaøo sôû thích
laø chính. KDE vaø GNOME laø 2 löïa choïn chính cuûa Linux.
Raát may maén laø vieäc caøi ñaët giao dieän Xwindow treân Linux hieän
nay ñaõ ñöôïc töï ñoäng hoùa raát nhieàu. Trong tröôøng hôïp coù truïc
traëc, leänh X –probeonly >/tmp/test 2>&1 cho pheùp chuùng ta ghi
laïi toaøn boä caùc thoâng baùo cuûa Xserver vaøo taäp tin /tmp/test vaø
duøng cho xem xeùt tìm nguyeân nhaân truïc traëc cuûa Xserver. Ta thöû
xem trong ví duï sau:
[root@backup X11]# more /tmp/t
XFree86 Version 3.3.6a / X Window System
......
Configured drivers:
SVGA: server for SVGA graphics adaptors (Patchlevel 1): (teân Xserver)
s3_savage, NV1, STG2000, RIVA 128, RIVA TNT, RIVA TNT2,
... danh saùch caùc video controller maø Xserver hoã trôï .....
ct65550, ct65554, ct65555, ct68554, ct69000, ct64200, ct64300,
mediagx, V1000, V2100, V2200, p9100, spc8110, i740, i740_pci,
Voodoo Banshee, Voodoo3, i810, i810-dc100, i810e, smi, generic

XF86Config: /usr/X11R6/lib/X11/XF86Config (taäp tin caáu


hình)
(**) stands for supplied, (--) stands for probed/default values
(**) XKB: keycodes: "xfree86"
......
(**) Mouse: zaxismapping: (-)4 (+)5
(**) SVGA: Graphics device ID: "Cirrus Logic GD5480"
(Xserver nhaän daïng ñöôïc video controller – Ñaëc bieät quan
troïng)

-38-
(**) SVGA: Monitor ID: "My Monitor"
........
(**) SVGA: Using 16 bpp, Depth 16, Color weight: 565 (ñoä phaân giaûi
maøn hình)
(--) SVGA: Maximum allowed dot-clock: 100.000 MHz
(**) SVGA: Mode "800x600": mode clock = 40.000, clock used = 39.991
........

Tieän ích Xconfigurator cuõng coù theå giuùp ích cho baïn. Taát caû caáu
hình cuûa Xserver ñöôïc ghi laïi trong taäp tin text /etc/X11/XFConfig.
Baïn coù theå töï thay ñoåi caùc thoâng soá trong naøy neáu hieåu roõ yù
nghóa cuûa chuùng.

-39-
IX. Theo doõi hoaït ñoäng cuûa heä thoáng.
Tieän ích syslog. Syslog laø tieän ích cuûa Unix cho pheùp ghi nhaän
laïi moät caùch taäp trung vaø chuaån (giöõa caùc Unix) hoaït ñoäng cuûa
heä thoáng caùc dòch vuï vaø thoâng baùo cuûa kernel. Thoâng qua
syslog, ta coù theå:
• Xem thoâng baùo loãi khi khôûi ñoäng moät chöông trình dòch vuï,
qua ñoù coù theå söûa ñoåi laïi caáu hình cho thích hôïp
• Xem xeùt laïi nhöõng gì ñaõ xaûy ra, dòch vuï naøo ñaõ khôûi ñoäng
laïi, nhöõng ai ñaõ thöïc hieän keát noái taïi thôøi ñieåm naøo ...
• Vieát chöông trình dòch vuï vaø göûi ñeán syslog caùc thoâng baùo
nhaèm ghi laïi hoaït ñoäng cuûa chöông trình cuûa mình.
Ñeå thöïc hieän caùc chöùc naêng keå treân, syslog coù moät tieán trình
server syslogd thöôøng ñöôïc khôûi ñoäng cuøng vôùi heä thoáng.
Chöông trình syslogd naøy ñoïc taäp tin caáu hình /etc/syslog.conf ñeå
xaùc ñònh phaûi ghi laïi nhöõng gì vaø ôû ñaâu. Ta thöû coi
/etc/syslog.conf (moïi user ñeàu coù theå ñoïc taäp tin naøy)

[tnminh@backup X11]$ cat /etc/syslog.conf
# Log all kernel messages to the console.
# Logging much else clutters up the screen.
#kern.*                                                 /dev/console
# Log anything (except mail) of level info or higher.
# Don't log private authentication messages!
*.info;mail.none;authpriv.none;cron.none                /var/log/messages
# The authpriv file has restricted access.
authpriv.*                                              /var/log/secure
# Log all the mail messages in one place.
mail.*                                                  /var/log/maillog
# Log cron stuff
cron.*                                                  /var/log/cron
# Everybody gets emergency messages, plus log them on another
# machine.
*.emerg                                                 *
# Save mail and news errors of level err and higher in a
# special file.
uucp,news.crit                                          /var/log/spooler
# Save boot messages also to boot.log
local7.*                                                /var/log/boot.log
# Receive log from center router
local0.*                                                /var/log/router
[tnminh@backup X11]$ 

-40-
Hai khaùi nieäm caàn bieát ñeå hieåu taäp tin naøy laø facility vaø priority.
Facility chính laø danh saùch caùc dòch vuï coù theå log. Priority bieåu thò
caáp ñoä nghieâm troïng cuûa thoâng baùo. Cuù phaùp trong taäp tin
/etc/syslog laø facility.priority. Coät beân phaûi xaùc ñònh ñòa chæ ghi
log. /etc/log/maillog laø taäp tin ghi laïi thoâng baùo cuûa mail.*; daáu “*”
aùm chæ thoâng baùo seõ ñöôïc hieän ra ôû taát caû caùc maøn hình cuûa
caùc user; @maùy_khaùc cho pheùp göûi thoâng baùo tôùi syslogd cuûa
maùy khaùc; |chöông_trình_xöû_lyù cho pheùp göûi thoâng baùo qua
pipe “|” tôùi chöông_trình_xöû_lyù...

Syslog facilities:

Name Facility

Kern Kernel

User Regular user processes

Mail Mail system

Lpr Line printer system

auth Authorization system, or programs that ask for user names and passwords (login,
su, getty, ftpd, etc.)

daemon Other system daemons

news News subsystem

uucp UUCP subsystem

local0... Reserved for site-specific use


local7

mark A timestamp facility that sends out a message every 20 minutes


syslog Priorities
Priority Meaning

emerg Emergency condition, such as an imminent system crash, usually broadcast to all
users

Alert Condition that should be corrected immediately, such as a corrupted system


database

Crit Critical condition, such as a hardware error

Err Ordinary error

warning Warning

notice Condition that is not an error, but possibly should be handled in a special way

-41-
Name Facility

Kern Kernel

User Regular user processes

Info Informational message

debug Messages that are used when debugging programs

None Do not send messages from the indicated facility to the selected file. For example,
specifying *.debug;mail.none sends all messages except mail messages to the
selected file.
Chuù yù neáu ta log moät priority thì ta seõ log toaøn boä priorities coù
ñoä nghieâm troïng cao hôn. Ví duï neáu trong /etc/syslog coù mail.info thì
taát caû mail.notice hay mail.emerg ñeàu ñöôïc log.
Vôùi moät maùy chuû baän roän, taäp tin log phình to raát nhanh vaø
chuùng ta ñöùng tröôùc moät baøi toaùn laø ñoàng thôøi phaûi giöõ log
laâu nhaát coù theå ñöôïc ñeå ñeà phoøng söï coá vaø xoùa log ñeå coù
khoâng gian ñóa cho maùy hoaït ñoäng. Logrotate laø moät tieän ích
giuùp cho nhaø quaûn trò xoay voøng (rotate), neùn (compact) vaø göûi
mail thoâng tin log. Logrotate ñoïc taäp tin caáu hình /etc/logrotate.conf
ñeå bieát chu kyø quay voøng vaø caùc thoâng tin khaùc. Ví duï sau

# sample logrotate configuration file
       errors sysadmin@my.org
       compress

       /var/log/messages {
           rotate 5
           weekly
           postrotate
            /sbin/killall ­HUP syslogd
           endscript
       }

cho thaáy taäp tin /var/log/message ñöôïc löu vaø quay voøng 5 tuaàn.
Leänh /sbin/killall –HUP syslogd cho pheùp khôûi taïo laïi taäp tin
/var/log/message vì taäp tin cuõ ñaõ bò ñoåi tin vaø neùn.
X. Caøi ñaët RedHat Linux. RedHat laø moät Linux distributor phoå
bieán nhaát hieän nay. RedHat löïa choïn phieân baûn kernel cuûa Linux
vaø caùc chöông trình dòch vuï khaùc ñoùng thaønh caùc goùi (taäp tin
coù phaàn môû roäng .rpm) vaø löu vaøo moät hoaëc hai ñóa CDROM.
Phieân baûn cuoái cuøng cuûa Redhat Linux hieän nay laø 7.1 vôùi kernel
2.4.2-2. Caùc ñóa CDROM cuûa RedHat ñeàu coù theå duøng ñeå boot
maùy vaø ñieàu naøy laøm ñôn giaûn raát nhieàu quaù trình caøi ñaët

-42-
RedHat Linux. Coù theå mieâu taû sô löôïc caùc böôùc caàn phaûi qua khi
caøi ñaët RedHat Linux laø
1. söûa caáu hình maùy ñeå boot töø oå CDROM
2. Ñaët ñóa soá 1 cuûa RedHat Linux vaøo oå CDROM vaø khôûi
ñoäng laïi maùy
3. Löïa choïn moät phöôngphaùp caøi ñaët, ví duï text
4. löïa choïn kieåu caøi ñaët , server hay traïm laøm vieäc hay
custom
5. Chia laïi oå ñóa cöùng
6. löïc choïn caùc goùi seõ caøi ñaët
7. ñeå cho chöông trình caøi ñaët Linux töï laøm vieäc
8. thöïc hieän moät soá caáu hình neáu coù yeâu caàu hieån thò
treân maøn hình.
Sau khi Linux ñöôïc caøi xong, ta coù theå theâm bôùt caùc goùi (package)
vaøo/ra heä thoáng thoâng qua tieän ích rpm (Redhat Package Manager).
Caùc goùi cuûa RedHat thöôøng naèm trong thö muïc RPMS cuûa CDROM.
Ñeå caøi moät goùi X, ta duøng leänh
rpm -i [install-options] <package_file>+
Caùc taäp tin cuûa goùi X seõ ñöôïc rpm ñaët vaøo caùc vò trí quy ñònh
ñaûm baûo cho söï hoaït ñoäng cuûa dòch vuï X. Trong moät soá tröôøng
hôïp chuùng ta muoán caøi “ñeø” leân goùi ñaõ caøi tröôùc vaø coù truïc
traëc. Khi ñoù option --force cho pheùp thay goùi cuõ baèng goùi môùi.
Leänh
rpm -e <package_name>+
cho pheùp xoùa moät goùi ñaõ caøi ñaët. Ngoaøi ra rpm coøn cho pheùp
xem xeùt tính toaøn veïn cuûa moät chöông trình, naâng caáp moät dòch
vuï, lieät keâ caùc taäp tin trong moät goùi hoaëc chæ ra goùi chöùc moät
taäp tin ... Ñaây laø moät coâng cuï raát maïnh cho pheùp quaûn trò moät
maùy Linux. Baïn ñoïc coù theå ñoïc manpage cuûa rpm ñeå bieát theâm.

-43-

You might also like