You are on page 1of 100

Trường Đại học Công nghiệp TP HCM Quản trị Linux 1

Khoa Công nghệ thông tin Hướng dẫn thực hành

Trang 1

QUẢN TRỊ LINUX 1

HƯỚNG DẪN THỰC HÀNH

Bản hướng dẫn thực hành này nhằm giúp sinh viên dễ dàng hơn trong việc nắm bắt cách
sử dụng một số lệnh quan trọng trong mỗi chương.

Bản hướng dẫn thực hành không thay thế Bộ Bài Tập của môn học. Trước khi làm bài
tập trong Bộ Bài tập môn học, Sinh viên nên được thực hành theo bản hướng dẫn thực
hành này.

Mỗi bài Lab trong Bản hướng dẫn thực hành này có nêu rõ nội dung thực hành
và phần lý thuyết tương ứng trong giáo trình. Hình minh hoạ có trong các bài Lab được
thực hiện trên openSUSE 11.2 và RedHat 9

-1-
Trường Đại học Công nghiệp TP HCM Quản trị Linux 1
Khoa Công nghệ thông tin Hướng dẫn thực hành

Trang 2

Bài Lab 1
Login vào hệ thống ; Sử dụng man , info để xem help về lệnh ; Sử dụng vi
editor (Giáo trình chương 4 và 5 )
1. Login vào hệ thống
- Khi quá trình khởi động của openSUSE (hoặc một distro Linux khác) ở chế độ text
mode kết thúc thành công , dấu nhắc login xuất hiện

- Thực hiện login vào hệ thống bằng tài khoản root hoặc tài khoản đã khai báo khi cài
đặt. Nếu đăng nhập thành công, dấu nhắc lệnh (shell prompt) sẽ xuất hiện.

Lưu ý : khi nhập passwd , hệ thống không hiển thị ký tự nhập. Nếu nhập sai, hệ
thống sẽ báo và dấu nhắc login sẽ xuất hiện cho phép login lại.

- Tại dấu nhắc lệnh, gõ và thực thi lệnh whoami ( lệnh hiển thị tên của tài khoản
đang sử dụng )

-2-
Trường Đại học Công nghiệp TP HCM Quản trị Linux 1
Khoa Công nghệ thông tin Hướng dẫn thực hành

Trang 3

2. Sử dụng man để xem help về lệnh


- Dùng man để xem hướng dẫn về cách dùng lệnh ls

- Nội dung hướng dẫn lệnh ls hiển thị như hình sau

- Nhấn space bar ( hay pagedown) để xem trang kế tiếp . Nhấn page up để quay lui.
Nhấn Enter để xem tiếp từng dòng ( hoặc dùng phím mũi tên lên / xuống ) .

- Để search nhanh một từ khoá trong khi bạn đọc tài liệu help, ví dụ tìm từ sort, hãy
nhấn / sort , rồi enter. Nếu tìm thấy từ khoá, kết xuất sẽ như hình sau:

-3-
Trường Đại học Công nghiệp TP HCM Quản trị Linux 1
Khoa Công nghệ thông tin Hướng dẫn thực hành

Trang 4

- Nhấn phím N để tìm tiếp , hoặc nhấn phím P để quay lui.

- Nhấn q để thoát khỏi lệnh man.

- Xem chương 4 để biết cách dùng lệnh info.

3. Sử dụng trình soạn thảo văn bản vi :

- Tạo một tập tin tên text.txt nằm trong /root , nội dung tuỳ ý.
Các bước thực hiện như sau :

B1 : Khởi động vi , bằng gõ lệnh vi

B2 : Trong màn hình vi , Nhấn phím Insert


bắt đầu nhập văn bản …

B3 : Nhấn phím ESC , rồi nhấn :wq /root/text.txt để lưu file và đóng vi

Hoặc , nhấn phím ESC, rồi nhấn :q! để đóng vi và không lưu file

-4-
Trường Đại học Công nghiệp TP HCM Quản trị Linux 1
Khoa Công nghệ thông tin Hướng dẫn thực hành

Trang 5

- Mở file text.txt , và chỉnh sửa .


Các bước thực hiện :

B1 : khởi động vi và mở file bằng lệnh


vi /root/text.txt
Nếu file đã có thì mở, nếu file chưa có thì vi sẽ tạo mới.

B2 : Nhấn phím Insert


Bắt đầu nhập / chỉnh sửa văn bản.

B3 : Nhấn phím ESC, và nhấn :w để lưu dữ liệu tại thời điểm hiện tại.

B4 : Lập lại bước 2 và bước 3 để thực hiện chỉnh sửa văn bản và lưu phần vừa
chỉnh sửa.

B5 : Nhấn phím ESC, và nhấn :wq để lưu file và đóng vi

Hoặc , nhấn phím ESC, và nhấn :q! để không lưu lại những chỉnh sửa mới nhất và đóng
vi.

4. Shutdown máy :
Có nhiều cách để shutdown máy trong giao diện text mode. Bạn có thể sử dụng một
trong những lệnh sau :

shutdown now

shutdown +0

shutdown –h now

shutdown –h now “he thong dang shutdown”

init 0

halt

Để reboot máy trong giao diện text mode, dùng một trong các lệnh sau :

reboot

init 6

shutdown -r now

-5-
Trường Đại học Công nghiệp TP HCM Quản trị Linux 1
Khoa Công nghệ thông tin Hướng dẫn thực hành

Trang 6

Bài Lab 2
Quản lý file/thư mục (Giáo trình chương 6)
Sử dụng quyền của root để thực thi các lệnh trong bài này

1. Tạo thư mục : lệnh mkdir


- Tạo cây thư mục sau :
/
|---- root
|----- tailieu
|----- linuxdistros
Thư mục /root |----- backup
đã tồn tai . Gõ
|----- installs
lệnh
|---- antivirus
ls / để thấy.
|---- reader

- Dùng man xem hướng dẫn về lệnh mkdir .


man mkdir

- Có thể tạo các thư mục trên bằng cách dùng đường dẫn tương đối.
Giả định, ta sẽ tạo các thư mục như trên một lần nữa, tên các thư mục sẽ giữ nguyên
và thêm số 2 ở cuối.

-6-
Trường Đại học Công nghiệp TP HCM Quản trị Linux 1
Khoa Công nghệ thông tin Hướng dẫn thực hành

Trang 7

- Lưu ý :
o Đường dẫn tương đối không bao giờ bắt đầu bằng ký hiệu thư mục gốc ( / ) .
Đường dẫn tương đối là đường dẫn bắt đầu từ thư mục hiện hành.
o Khi sử dụng đường dẫn tương đối, cần kết hợp lệnh pwd (xem thư mục
hiện hành ) và lệnh cd ( thay đổi thư mục hiện hành )
o Đường dẫn ghi sai , hệ thống sẽ báo lỗi ( xem Câu lệnh số 6 trong hình
trên )

2. Lệnh xem nội dung thư mục : lệnh ls


- Liệt kê nội dung thư mục /root/tailieu
- Liệt kê nội dung thư mục /root/tailieu có dùng –l để thấy nhiều thông tin hơn

- Tương tư , xem nội dung thư mục /root/tailieu2 , /root, / ,…

-7-
Trường Đại học Công nghiệp TP HCM Quản trị Linux 1
Khoa Công nghệ thông tin Hướng dẫn thực hành

Trang 8

3. Tạo tập tin :


- Có nhiều cách tạo tập tin :
o Dùng vi
o Tạo tập tin rỗng bằng lệnh touch
touch /root/tailieu/text1.txt
o Tạo tập tin bằng lệnh cat
cat > /root/tailieu/text2.txt
Ba cong di cho troi mua
Cai tom cai tep di sau lung ba
( nhấn ctrl_D để kết thúc nhập liệu và thoát khỏi lệnh )

- Xem thông tin về tập tin vừa tạo


o ls -l /root/tailieu/text1.txt
o ls -l /root/tailieu/text*

4. Xem nội dung file text : lệnh cat, more, less, head, tail
- Tạo một file dài ( có nội dung nằm trên nhiều trang màn hình )
man ls > /root/tailieu/lscommand.txt

- Sử dụng các lệnh nêu trên để đọc file lscommand.txt cat


/root/tailieu/lscommand.txt
more /root/tailieu/lscommand.txt less
/root/tailieu/lscommand.txt head
/root/tailieu/lscommand.txt tail
/root/tailieu/lscommand.txt

Lưu ý :

o khi dùng lệnh more và less , có thể dùng phím pgup, pgdown để di chuyển
giữa các trang màn hình .
o xem lại chương 6 để biết sự khác biệt giữa các lệnh nêu trên. Hoặc dùng
man.

- Thử xem một file hệ thống


cat /etc/passwd

5. Lệnh sao chép : lệnh cp


- Sao chép các file trong thư mục /root/tailieu vào thư mục /root/tailieu2 .
Sau đó kiểm tra kết quả.

-8-
Trường Đại học Công nghiệp TP HCM Quản trị Linux 1
Khoa Công nghệ thông tin Hướng dẫn thực hành

Trang 9

- Sao chép thư mục /root/tailieu vào /root với tên mới là tailieu_backup
Kiểm tra kết quả.
cp -r /root/tailieu /root/tailieu_backup ls
/root
ls -R /root/tailieu_backup

6. Di chuyển file /thư mục :


- Di chuyển các file trong /root/tailieu vào /root/tailieu/linuxdistros
mv /root/tailieu/text* /root/tailieu/linuxdistros

- Di chuyển các file và thư mục con nằm trong /root/tailieu/installs vào
/root/tailieu/linuxdistros
mv /root/tailieu/installs/* /root/tailieu/linuxdistros

- Kiểm tra kết quả bằng lệnh ls


ls -R /root/tailieu/linuxdistros

- Di chuyển thư mục /root/tailieu/installs vào /root/tailieu/linuxdistros


mv /root/tailieu/installs /root/tailieu/linuxdistros

- Kiểm tra kết quả bằng lệnh ls


ls -R /root/tailieu/linuxdistros

- Đổi tên thư mục backup thành saoluu


mv /root/tailieu/backup /root/tailieu/saoluu ls
/root/tailieu

7. Xoá file / thư mục :


- Xem nội dung thư mục /root/tailieu/linuxdistros ls
/root/tailieu/linuxdistros
ls -l /root/tailieu/linuxdistros

-9-
Trường Đại học Công nghiệp TP HCM Quản trị Linux 1
Khoa Công nghệ thông tin Hướng dẫn thực hành

Trang
1010
- Xoá các file trong thư mục /root/tailieu/linuxdistros rm
/root/tailieu/linuxdistros/*
ls /root/tailieu/linuxdistros

- Xoá các thư mục nằm trong /root/tailieu/linuxdistros rm


-r /root/tailieu/linuxdistros/*
ls /root/tailieu/linuxdistros

- Xoá bản thân thư mục /root/tailieu/linuxdistros rm


-r /root/tailieu/linuxdistros
ls /root/tailieu/linuxdistros ls
/root/tailieu/

8. Link files (hay hard links và symbolic links)


Sử dụng quyền của root để thực hiện các lệnh sau :
- Tạo file text , nội dung tùy ý
vi /root/vi.txt
- Tạo link file dạng hard link và softlink :
ln /root/vi.txt /root/hardlink.txt
ln -s /root/vi.txt /root/softlink.txt
- Xem thông tin về các link file đã tạo (so sánh size, type ,…)
ls -l /root
- Xem nội dung file vi.txt qua các link file
cat /root/hardlink.txt
cat /root/softlink.txt
- Xóa file gốc , thì các file link sẽ như thế nào ?
rm /root/vi.txt
cat /root/hardlink.txt
cat /root/softlink.txt

- Thử tạo link cho thư mục


mkdir /root/tm1
mkdir /root/tm1/a /root/tm1/b

ln /root/tm1 /root/hardlink_tm1 //ko tạo hard link cho thưmục !


ln -s /root/tm1 /root/softlink_tm1 // tạo soft link thì được

//xem nội dung tm1 qua softlink_tm1


ls /root/softlink_tm1
//thử xóa thư mục tm1

-10-
Trường Đại học Công nghiệp TP HCM Quản trị Linux 1
Khoa Công nghệ thông tin Hướng dẫn thực hành

Trang
1111
rm -r /root/tm1
//xem nội dung tm1 qua softlink_tm1 là không thể
ls /root/softlink_tm1

9. Lệnh tìm kiếm tập tin và thư mục : find


- Tìm các tập tin/thư mục theo tên, tìm bắt đầu từ thư mục gốc :
find / -name “ifcfg*”
- Tìm các tập tin/thư mục theo tên, tìm bắt đầu từ thư mục gốc :
find / -name “passwd”
- Tìm các tập tin/thư mục theo kích thước , tìm từ thư mục /etc
find /etc -size “+100k” //lớn hơn 100K
ls -l ` find /etc -size “+100k” ` //sử dụng dấu nháy ngược
ls -lh ` find /etc -size “+100k” ` //sử dụng dấu nháy ngược tương

tự :

find /etc -size “-100k” //nhỏ hơn 100K

find /etc -size “-100k” | more

find /etc -size “100k” //bằng 100K

- chỉ tìm các tập tin , tìm từ thư mục /root


ls -l /root
find /root -type f
- chỉ tìm các thư mục , tìm từ thư mục /root
find /root -type d
- tìm các tập tin do root tạo , tìm từ thư mục /tmp
ls -l /tmp
find /tmp -user root

10. Lệnh tìm kiếm tập tin và thư mục : locate


- Locate cần phải cài nếu sử dụng openSuSE

11. Lệnh tìm kiếm nội dung : grep


- Tạo file text , nội dung như mẫu sau
vi /root/file1.txt
“ Linux that thu vi ”
- Sao chép file thành nhiều bản :
cp /root/file1.txt /root/file2.txt

-11-
Trường Đại học Công nghiệp TP HCM Quản trị Linux 1
Khoa Công nghệ thông tin Hướng dẫn thực hành

Trang
1212
cp /root/file1.txt /tmp/file3.txt cp
/root/file1.txt /mnt/file4.txt
- Dùng lệnh grep tìm dòng chứa chuỗi “thu vi” trong 1 file và nhiều file
grep “thu vi” /root/file1.txt
grep “thu vi” /root/*

- Dùng lệnh grep tìm dòng chứa chuỗi “thu vi” trong các file, tìm từ gốc (so sánh 2
lệnh sau)
grep “thu vi” /*
grep -r “thu vi” /*

- Dùng lệnh grep lọc kết xuất của lệnh :


cat /etc/passwd
cat /etc/passwd | grep “root” //so sánh với lệnh trên để thấy khác biệt ?
ls -l /
ls -l / | grep “t” //so sánh với lệnh trên để thấy khác biệt ?

- Đọc man page của lệnh find, grep, locate để xem các lệnh có hỗ trợ tìm kiếm theo
nhiều mẫu không ? có hỗ trợ tìm trên nhiều vị trí thư mục không ?...

-12-
Trường Đại học Công nghiệp TP HCM Quản trị Linux 1
Khoa Công nghệ thông tin Hướng dẫn thực hành

Trang
1313

Bài Lab 3
Các lệnh về đĩa (tạo partitions, format đĩa, mount, umount)
(Giáo trình chương 6)
Sử dụng quyền của root để thực thi các lệnh trong bài này

1. Xem thông tin về đĩa cứng hiện tại của máy linux :
- Xem file thiết bị tương ứng
ls /dev | grep sd
hoặc
ls /dev | grep hd
- Xem hệ thống file hiện tại
mount
hoặc
df

2. Lệnh tạo partition và format đĩa :


- Tạo partitions (phân vùng) và format đĩa sẽ được thực hành trên 1 đĩa USB
trống.
- Chuẩn bị một đĩa usb . Cắm đĩa usb vào cổng. Kiểm tra máy ảo Linux đã nhận
được thiết bị chưa ( có tình trang connect)

- Khi Linux nhận được đĩa, nó tự phát sinh file “thiết bị” tương ứng với đĩa usb.
Thực hiện sau để kiểm tra:
ls /dev | grep sd
Thường đĩa usb có một partition và đĩa được nhận là sdb và partition có file thiết
bị tương ứng là /dev/sdb1

-13-
Trường Đại học Công nghiệp TP HCM Quản trị Linux 1
Khoa Công nghệ thông tin Hướng dẫn thực hành

Trang
1414
- Sử dụng lệnh fdisk để phân vùng đĩa usb thành 2 partition
fdisk /dev/sdb
Nhấn m để mở danh sách các lệnh
Nhấn p để xem danh sách các partition
Nhấn d để xóa partition
Nhấn n để khai báo một partition mới muốn tạo
Nhấn w để thực sự tạo các partition đã được khai báo bởi lệnh n
Nhấn q để thoát khỏi lệnh fdisk

Lệnh w thành công , sẽ có dạng :

- Sau khi dùng fdisk phân vùng thành công, hệ thống sẽ tạo các file thiết bị
(trong /dev) giao tiếp với các partition

- Sử dụng lệnh mkfs để format các partition

3. Đọc ghi dữ liệu trên USB disk (lệnh mount và umount)


- Tạo 2 thư mục :
mkdir /mnt/p1
mkdir /mnt/p2

- Mount từng partition của đĩa USB với thư mục trên
mount /dev/sdb1 /mnt/p1
mount /dev/sdb2 /mnt/p2

-14-
Trường Đại học Công nghiệp TP HCM Quản trị Linux 1
Khoa Công nghệ thông tin Hướng dẫn thực hành

Trang
1515
- Xem kết quả

- Ghi dữ liệu vào đĩa


cp /etc/passwd /mnt/p1 cp
/etc/group /mnt/p2

- Xem kết quả


ls /mnt/p1
cat /mnt/p1/passwd ls
/mnt/p2
cat /mnt/p2/group

- Sử dụng lệnh umount trước khi rút đĩa hoặc disconnect.


umount /dev/sdb1 hoặc umount /mnt/p1
umount /dev/sdb2 hoặc umount /mnt/p2

- Đọc dữ liệu đã chép trong usb trên máy host Windows


o Disconnect khỏi máy ảo Linux và connect với host
o Đọc dữ liệu

4. Shared folders
- Có một số kỹ thuật có thể dùng để share dữ liệu giữa máy host và máy ảo
(guest). Ở phần thực hành này, ta sẽ dùng kỹ thuật shared folders . Tức là , tạo một
thư mục có thể thấy cả trên máy host và máy ảo.

Cách thực hiện như sau :

B1 : Trên máy ảo, chọn lệnh VM.Settings .

Vào mục Options : bật Enabled cho mục Shared Folders

Trong tab Folders, chọn Add để chỉ định một thư mục trong host mà ta định làm shared
folder. Ví dụ, chọn My Documents.

Bật Enabled cho option Guest Isolations .

-15-
Trường Đại học Công nghiệp TP HCM Quản trị Linux 1
Khoa Công nghệ thông tin Hướng dẫn thực hành

Trang
1616
Nhấn OK để đóng hộp thoại Settings.

B2 : Trên máy ảo , thực hiện lệnh sau để thấy được shared folder trên host thông
qua thư mục /mnt

mount -t vmhgfs .host:/ /mnt

( lưu ý : /mnt là một thư mục đã có trên máy ảo Linux, có thể chọn một thư mục khác )

Nếu lệnh thực thi thành công , ta có thể sử dụng thư mục /mnt từ máy ảo Linux để thấy
shared folder

Ta lưu kết xuất của lệnh history vào 1 file trong thư mục shared folder này bằng lệnh :

history > /mnt/”My Documents”/command_lab2. txt

Trên máy host , mở file bằng Wordpad, hay Word để xem.

-16-
Trường Đại học Công nghiệp TP HCM Quản trị Linux 1
Khoa Công nghệ thông tin Hướng dẫn thực hành

Trang
1717

Bài Lab 4
Quản trị tài khoản người dùng và nhóm
(Giáo trình Chương 7)

1. Xem thông tin người dùng :


Thông tin về một user account được lưu trong 2 file : /etc/passwd và
/etc/shadow
Thông tin về nhóm người dùng được lưu trong file : /etc/group

a. Tập tin /etc/passwd : là cơ sở dữ liệu các tài khoản người dùng trong Linux lưu dưới
dạng tập tin text.
Cấu trúc file /etc/passwd :

Xem nội dung file /etc/passwd , gõ lệnh cat /etc/passwd

Hãy quan sát kết xuất của lệnh và chỉ ra thông tin về một số tài khoản . b. Tập

tin /etc/shadow : là tập tin lưu thông tin về password (đã mã hoá) của
các tài khoản có trong file /etc/passwd
Cấu trúc file /etc/shadow

-17-
Trường Đại học Công nghiệp TP HCM Quản trị Linux 1
Khoa Công nghệ thông tin Hướng dẫn thực hành

Trang
1818

Xem nội dung file /etc/shadow , gõ lệnh cat /etc/shadow

Quan sát và chỉ ra thông tin về passwd của một vài tài khoản

Lưu ý : Cột thứ 2 trong file /etc/shadow chứa mật khẩu đã mã hoá. Nếu cột

thứ 2 bắt đầu bằng * => tài khoản đã bị vô hiệu hoá (disable) Nếu cột thứ 2

bắt đầu bằng !! => tài khoản tạm thời bị khoá (locked)

c. Tập tin /etc/group : lưu thông tin về các nhóm người dùng
Cấu trúc file /etc/group

-18-
Trường Đại học Công nghiệp TP HCM Quản trị Linux 1
Khoa Công nghệ thông tin Hướng dẫn thực hành

Trang
1919
Xem nội dung file /etc/group

2. Tạo tài khoản người dùng : lệnh useradd và passwd

- Xem cú pháp lệnh useradd :


man useradd

- Thực hiện chuỗi lệnh sau : Tạo một tài khoản tên usera. Kiểm tra thong tin về tài
khoản trước và sau khi đặt password cho tài khoản. Kiểm tra xem thư mục cá nhân của
tài khoản được tạo chưa.

useradd usera
cat /etc/passwd // Kiểm tra thông tin về usera

-19-
Trường Đại học Công nghiệp TP HCM Quản trị Linux 1
Khoa Công nghệ thông tin Hướng dẫn thực hành

Trang
2020
cat /etc/shadow // Kiểm tra thông tin về usera

usera đang bị tạm khoá, do chưa tạo password

passwd usera //Đặt password cho usera


cat /etc/shadow //// Kiểm tra thông tin về usera

usera đã được active và password được lưu lại dưới dạng mã hoá

ls /home // kiểm tra tài khoản có thư mục cá nhân chưa ( chưa có !)

Lưu ý :

- Khi tạo ra một user, nếu ta chưa tạo password cho user đó, thi user đó sẽ tạm thời
bị khóa và chưa sử dụng được.
- Khi tạo user mà không chỉ userID thì hệ thống tự đặt userID với giá trị >=500
- User root có UID = 0
- Thông thường thiết lập mặc định homedir của các users nằm trong /home.

- Thực hiện chuỗi lệnh sau : Tạo userb có thư mục cá nhân, và có mô tả “day la tai
khoan dung de test”. Kiểm tra thong tin về tài khoản. Kiểm tra xem thư mục cá nhân
của tài khoản được tạo chưa.

useradd -m -c “day la tai khoan dung de test “ userb


passwd userb
cat /etc/passwd // xem thông tin user vừa tạo
cat /etc/shadow
ls -l /home // xem thư mục cá nhân của user vừa tạo

- Thực hiện chuỗi lệnh sau : Tạo userc có thư mục cá nhân được đặt ở /tmp có tên là
userc, và có mô tả “day la tai khoan dung de test”. Kiểm tra thong
tin về tài khoản. Kiểm tra xem thư mục cá nhân của tài khoản được tạo chưa.

useradd -m -d /tmp/userc -c “day la tai khoan dung de test “ userc passwd


userc
cat /etc/passwd //xem thông tin user vừa tạo
cat /etc/shadow

-20-
Trường Đại học Công nghiệp TP HCM Quản trị Linux 1
Khoa Công nghệ thông tin Hướng dẫn thực hành

Trang
2121
ls -l /tmp // Kiểm tra thư mục cá nhân của user vừa tạo

3. Đặt lại password của tài khoản


Đặt lại password của tài khoản root

Hoặc

Tương tự , thực hiện đổi password cho các tài khoản thông thường ( usera, userb ,
…)

passwd usera
passwd userb
passwd userc

-21-
Trường Đại học Công nghiệp TP HCM Quản trị Linux 1
Khoa Công nghệ thông tin Hướng dẫn thực hành

Trang
2222
4. Thay đổi các thiết lập của tài khoản người dùng : Lệnh usermod
Xem cú pháp lệnh : man usermod

- Thay đổi home directory của tài khoản userc là : /home/userc . Và kiểm tra kết quả
cat /etc/passwd
usermod -d /home/userc userc cat
/etc/passwd

- Thay đổi UID của tài khoản userc . Và kiểm tra kết quả
cat /etc/passwd // hoặc dùng lệnh id userc
usermod -u 2000 userc
cat /etc/passwd

-22-
Trường Đại học Công nghiệp TP HCM Quản trị Linux 1
Khoa Công nghệ thông tin Hướng dẫn thực hành

Trang
2323
- Thay đổi tên tài khoản userc là user3 cat
/etc/passwd |grep user usermod -l
user3 userc
cat /etc/passwd |grep user

- Xem cú pháp lệnh usermod để thực hiện thay đổi những thiết lập khác của tài khoản
người dùng.

5. Khoá và mở khoá tài khoản người dùng : lệnh passwd hoặc lệnh usermod
- Khoá tài khoản usera
passwd -l usera
//Hoặc
usermode -L usera
//Kiểm tra thông tin của tài khoản usera trong /etc/shadow

//Thử dùng lệnh su để chuyển sang dùng tài khoản usera. Nhận xét ?
su usera

- Mở khoá cho tài khoản usera


passwd -u usera
//Hoặc
usermode -U usera
//Kiểm tra thông tin của tài khoản usera trong /etc/shadow

//Thử dùng lệnh su để chuyển sang dùng tài khoản usera. Nhận xét ?
su usera

-23-
Trường Đại học Công nghiệp TP HCM Quản trị Linux 1
Khoa Công nghệ thông tin Hướng dẫn thực hành

Trang
2424
6. Tạo nhóm người dùng : lệnh groupadd
- Xem cú pháp lệnh groupadd
man groupadd

- Tao nhóm tên group1


groupadd group1

// Kiểm tra thông tin của nhóm trong /etc/group


cat /etc/group

-24-
Trường Đại học Công nghiệp TP HCM Quản trị Linux 1
Khoa Công nghệ thông tin Hướng dẫn thực hành

Trang
2525
7. Thay đổi thiết lập cho nhóm người dùng : lệnh groupmod
- Xem hướng dẫn về lệnh: man groupmod
- Thêm thành viên vào nhóm group1
groupmod -A usera group1
groupmod -A userb group1
cat /etc/group //Kiểm tra thông tin của nhóm trong /etc/group

- Loại bỏ thành viên ra khỏi nhóm


groupmod -R usera group1
cat /etc/group //Kiểm tra thông tin của nhóm trong /etc/group

- Đổi gid của nhóm group1


groupmod -g 600 group1

- Đổi tên của nhóm group1


groupmod -n nhom1 group1
cat /etc/group //Kiểm tra thông tin của nhóm trong /etc/group

8. Xoá người dùng và xoá nhóm : lệnh userdel và groupdel


- Xoá tài khoản usera
userdel usera
// Kiểm tra thông tin về tài khoản usera trong /etc/passwd và /etc/shadow
cat /etc/passwd
cat /etc/shadow
(=> không còn lưu trữ nữa )

- Xoá nhóm group1


groupdel group1
// Kiểm tra thông tin về group1
cat /etc/group
(=> không còn lưu trữ nữa )

9. Chuyển sang/ thoát khỏi dùng quyền của tài khoản khác : lệnh su và exit
- Chuyển sang dùng quyền của usera
su usera

- Thoát khỏi quyền của usera


exit

-25-
Trường Đại học Công nghiệp TP HCM Quản trị Linux 1
Khoa Công nghệ thông tin Hướng dẫn thực hành

Trang
2626
- Chuyển sang dùng quyền của root
su root
hoặc
su

Thực hiện ví dụ :

Đang dùng quyền của root, chuyển sang usera


Từ usera , chuyển sang dùng quyền của userc
Tại sao
hỏi pass Thoát khỏi quyền của userc

Thoát khỏi quyền của usera , quay lại dùng root Từ

root, chuyển sang dùng quyền của userc Thoát khỏi


Tại sao
Không hỏi quyền của userc , quay lại dùng root
pass

10. Định nghĩa các cấu hình mặc định cho người dùng :
Khi dùng lệnh useradd không có option kèm theo, tài khoản được tạo sẽ có các thuộc
tính thiết lập mặc định theo các thông số trong các file :
/etc/default/useradd
/etc/login.defs

- Xem nội dung file /etc/default/useradd

- Thay đổi giá trị của option HOME thành “var/home”

-26-
Trường Đại học Công nghiệp TP HCM Quản trị Linux 1
Khoa Công nghệ thông tin Hướng dẫn thực hành

Trang
2727

- Từ đây Các user được tao sẽ có thư mục home nằm trong /var/home
Kiểm tra :
a. Dùng lệnh useradd, tạo một user mới userd
b. Kiểm tra thấy userd có thư mục home trong /var/home

- Xem nội dung của file /etc/login.defs


cat /etc/login.defs | more
đây là file định nghĩa các policy liên quan đến password : độ dài password, ngày
hết hạn, ngày warning,…

Có thể chỉnh sửa lại policy bằng cách làm tương tự như ví dụ trước.

-27-
Trường Đại học Công nghiệp TP HCM Quản trị Linux 1
Khoa Công nghệ thông tin Hướng dẫn thực hành

Trang
2828

11. Xem thông tin về ownership và permissions của file/directory :


- Xem thông tin về ownership và permissions của các thư mục trong thư mục / Hãy cho
biết tên owner, tên group chủ , các quyền của owner, của group ,
của other trên các thư mục etc , thư mục home ,… ?

Permissions của owner Primary group


owner , group và (owning group)

Tương tự hãy dùng lệnh ls –l để xem thông tin về ownership và permissions của các
file trong /bin

12. Hiểu về các quyền r, w, x trên file và thư mục :


- Hãy tạo 2 tài khoản viet và nam. Hai tài khoản này có thư mục cá nhân .
useradd -m viet
passwd viet

useradd -m nam
passwd nam

- Kiểm tra thư mục cá nhân của 2 tài khoản này , đọc thông tin về ownership và
permission

Nam là owner của thư mục /home/nam , có quyền rwx trên thư mục này .

Tương tự, Viet là owner của thư mục viet, có quyền rwx trên thư mục này.

-28-
Trường Đại học Công nghiệp TP HCM Quản trị Linux 1
Khoa Công nghệ thông tin Hướng dẫn thực hành

Trang
2929

- Thực hiện test các quyền của viet trên thư mục /home/ viet :

Chuyển sang dùng quyền của tài khoản viet :


su viet

Thực hiện các lệnh sau :


ls /home/viet Ok, vì có quyền r

cd /home/viet OK, vì có quyền x

mkdir /home/viet/tm1 OK, vì có quyền w

cat > /home/viet/text1.txt OK, vì có quyền w

cp /home/viet/text1.txt /home/viet/tm1/text2.txt rm OK, vì có quyền w

/home/viet/text1.txt OK, vì có quyền w

ls /home/viet/tm1 OK, vì có quyền x

cat /home/viet/tm1/text2.txt OK, vì có quyền x

- Thực hiện test quyền w của nam trên thư mục /home/viet :
Chuyển sang dùng quyền của nam :
su nam
Thực hiện các lệnh sau :

mkdir /home/viet/tm3 Bị từ chối, vì không có quyền w

cat > /home/viet/text3.txt Bị từ chối, vì không có quyền w

- Thực hiện test quyền x của nam trên thư mục /home/viet :
Chuyển sang quyền của viet
Xóa bỏ quyền x của other trên thư mục /home/viet :

-29-
Trường Đại học Công nghiệp TP HCM Quản trị Linux 1
Khoa Công nghệ thông tin Hướng dẫn thực hành

Trang
3030

Chuyển sang quyền của nam


su nam
Thực thi lệnh sau :

cd /home/viet OK, vì nam thuộc nhóm users có quyền x

Lưu ý :

a. Nếu nam là tài khoản thuộc nhóm users , nam có quyền r và x trên thư mục
/home/viet ( như tình huống đang có )
b. Nếu nam là tài khoản thuộc nhóm other, nam sẽ không có quyền x trên
thư mục /home/viet . Ta có thể test tình huống này bằng các lệnh như hình
sau

- Các ví dụ trên cho ta hiểu quyền r, w, x trên thư mục. Làm ví dụ tương tự để hiểu
quyền r, w, x trên tập tin…

-30-
Trường Đại học Công nghiệp TP HCM Quản trị Linux 1
Khoa Công nghệ thông tin Hướng dẫn thực hành

Trang
3131
13. Thay đổi bộ quyền của file /thư mục : lệnh chmod

- Xem bộ quyền hiện hành của file /home/viet/tm1/text2.txt


ls -l /home/viet/tm1/text2.txt

- Thay đổi quyền của file text2.txt là rwx r- - r - - chmod


u=rwx,g=r,o=r /home/viet/tm1/text2.txt hoặc
chmod 744 /home/viet/tm1/text2.txt

- Xem lại bộ quyền hiện hành của file /home/viet/tm1/text2.txt


ls -l /home/viet/tm1/text2.txt

14. Thay đổi chủ nhân và nhóm chủ : sử dụng chown và chgrp
- Giả sử, root đã tạo một tài khoản bằng lệnh sau :
useradd minh
passwd minh
Kết quả một tài khoản được tạo. Nhưng tài khoản này chưa có thư mục cá nhân .
Để tạo thư mục cá nhân cho tài khoản trên, root cần thực hiện tiếp 2 lệnh sau
mkdir /home/minh
chown minh.users /home/minh
Đến lúc này, người sử dụng tài khoản minh có thể tạo file/thư mục trong thư mục cá
nhân /home/minh

-31-
Trường Đại học Công nghiệp TP HCM Quản trị Linux 1
Khoa Công nghệ thông tin Hướng dẫn thực hành

Trang
3232
Bài Lab 5
Cài đặt phần mềm trong Linux ( giáo trình chương 8 )

1. Chép các file cần cài đặt vào máy ảo :


- Các file cần cài đặt có thể là các tarball file ( .tar.gz) hay là các packages (
.rpm )
- Các file này sau khi download hay chép về máy host , cần chép vào máy ảo bằng sử
dụng kỹ thuật trao đổi dữ liệu giữa máy host – máy ảo. Sau đây giới thiệu kỹ thuật
chép qua đĩa cd ảo.
o B1 : Các file cài đặt cần lưu vào một file iso (đĩa cd ảo) bằng sử dụng một
phần mềm tạo đĩa cd ảo như UltraISO, hay PowerISO, hay MagicISO.
Giả sử , đã có file software.iso chứa các file cài đặt ( có thể nhận từ giáo
viên).
o B2 : Mount đĩa cd ảo với một thư mục trong máy Linux
Chọn trong menu của VMWare lệnh VM.Removable
Devices.CD/DVD.Setting :
Trong hộp thoại :
=> chỉ định đĩa cd là file software.iso
=> chọn connect

thực hiện lệnh mount đĩa cd ảo với thư mục /media


mount -t iso9660 /dev/cdrom /media
hoặc
mount /dev/cdrom /media

o B3 : đọc dữ liệu trong đĩa cd ảo


ls /media
Như vậy, khi đọc thư mục /media là ta đang đọc đĩa cd ảo ( file
software.iso ).
Có thể chép các file cài đặt vào một thư mục trên máy ảo để không lệ thuộc
vào đĩa cd ảo
cp -r /media/ /software

2. Cài phần mềm units :


- File cài đặt là units-1.74.tar.gz
- Chức năng : chuyển đổi giữa các đơn vị đo lường

-32-
Trường Đại học Công nghiệp TP HCM Quản trị Linux 1
Khoa Công nghệ thông tin Hướng dẫn thực hành

Trang
3333
- Phương pháp cài đặt : cài từ source code, vì file cài đặt là một tarball file
(.tar.gz).
Các bước cài đặt như sau :

B 0 : sao chép file cài đặt vào thư mục /software/… .Chuyển thư mục hiện hành là thư
mục chứa file cài đặt.

cd /software

B 1. giải nén file cài đặt


tar -zxvf units-1.74.tar.gz
=> kết quả : các tập tin trong file .tar.gz được giải nén và đặt trong thư mục
./units-1.74

B 2. chuyển vào thư mục chứa các file đã giải nén


cd unit-1.74
chạy file configure
./configure

B 3. chạy lệnh make để gcc biên dịch chương trình


make

B 4. cài đặt chương trình


make install

B 5. chạy chương trình


whereis units //xem vị trí của file thực thi man
units // đọc hướng dẫn sử dụng units
// chạy chương trình

3. Gỡ bỏ phần mềm units :


- Chuyen vào thư mục chứa các file đã giải nén từ file cài đặt units-1.74.tar.gz cd
unit-1.74
- Chạy lệnh gỡ bỏ phần mềm units
make uninstall
- Có thể kiểm tra kết quả bằng lệnh :
whereis units

4. Cài phần mềm John the Ripper :


- File cài đặt là john-1.7.3.1.tar.gz
- Chức năng : crack password (test password )

-33-
Trường Đại học Công nghiệp TP HCM Quản trị Linux 1
Khoa Công nghệ thông tin Hướng dẫn thực hành

Trang
3434
- Áp dụng phương pháp cài đặt từ source code. Tuy nhiên các bước cài đặt có khác
biệt. Để thực hiện cài đặt cần đọc file hướng dẫn
- Cách mở xem các file hướng dẫn
o Giải nén file
tar -zxvf john-1.7.3.1.tar.gz
o Chương trình tar sẽ giải nén và bung các file vào thư mục john-1.7.3.1.
Mở xem ta sẽ thấy các file hướng dẫn nằm trong john-1.7.3.1/doc. Bao gồm
các file : INSTALL (hướng dẫn cài đặt), EXAMPLES ( hướng dẫn về cách sử
dụng qua ví dụ) , và nhiều file hướng dẫn khác …
o Đọc các file này để biết cách cài đặt và sử dụng.

5. Sử dụng rpm để đọc thông tin về các gói (package) đã cài đặt .
- Dùng rpm xem tất cả các gói đã cài
rpm -qa |more

- Dùng rpm xem gói một số gói đã cài đặt chưa ?


rpm -qa make
rpm -qa gcc
rpm -qa gzip
rpm -qa man
rpm -qa rpm

- Dùng rpm xem thông tin về gói man đã cài đặt


rpm -qi man
Tương tự, thực hiện lệnh với các gói đã cài khác.

- Dùng rpm xem tất cả các file đã được cài của gói man
rpm -ql man
Tương tự, thực hiện lệnh với các gói đã cài khác.

- Dùng rpm để biết một file thuộc về gói nào :


rpm -qf /usr/bin/gzip

6. Sử dụng rpm cài gói kcalc


- Tên góí : kcalc
Tên file cài đặt : kcalc-4.3.1-3.4.i586.rpm
Chức năng : Kcalc is the KDE calculator tool. Cần
thực hiện cài đặt trong môi trường KDE.
- Kiểm tra gói đã được cài chưa
rpm -qa kcalc

-34-
Trường Đại học Công nghiệp TP HCM Quản trị Linux 1
Khoa Công nghệ thông tin Hướng dẫn thực hành

Trang
3535

- Nếu gói đã cài rồi thì tiến hành gỡ bỏ bằng lệnh sau . Nếu gói chưa cài thì tiến
hành cài đặt theo bước kế tiếp
rpm -e kcalc

- Cài đặt gói kcalc. Giả định file cài đặt nằm trong /software
rpm -ivh /software/kcalc-4.3.1-3.4.i586.rpm

- Sử dụng rpm –q để truy vấn thông tin về gói kcalc vừa cài
rpm -qi kcalc
rpm -ql kcalc

- Khởi động kcalc :


Có thể khởi động kcalc từ hệ thống menu trên màn hình desktop, hoặc có thể khởi
động từ dòng lệnh bằng cách gọi chạy file thực thi của chương trình kcalc.

7. Sử dụng rpm cài gói bsd-games


Tên gói : bsd-games
Tên file cài đặt: bsd-games-2.17-90.1.i586.rpm
Chức năng : cài bộ game chạy trên chế độ text mode

- Thực hiện các thao tác tương tự như câu 6 để cài gói này

8. Sử dụng tool đồ hoạ và cài online


Trong giao diện đồ họa của một Linux distro, gọi chạy một chương trình cài đặt software.
Sử dụng chương trình này để cài gói wine, gnome-games như yêu cầu của bài tập 2
(module 4).
Lưu ý : khi cài đặt các gói, trình cài đặt có thể yêu cầu online để download các
gói phụ thuộc cần thiết .

-35-
Trường Đại học Công nghiệp TP HCM Quản trị Linux 1
Khoa Công nghệ thông tin Hướng dẫn thực hành

Trang
3636
Bài Lab 6
Linux Shell
(giáo trình chương 9 )

Phần 1 : Thiết lập môi trường người dùng và các hỗ trợ người dùng khi tương tác với hệ
thống.

- Thực hiện lại các ví dụ trong slide bài giảng chương 9

Phần 2 : Lập trình shell

Làm quen với lập trình Shell qua một số ví dụ.

Lưu ý : nên lưu các script ví dụ vào cùng một thư mục ~/myscript

Vd1 : tạo script1

- tạo script vd1 (xem slide chapter 9)

vi ~/myscript/sc1

#!/bin/bash

#vi du ve shell script echo

"hello"

echo "toi ten la aaaa"

exit 0

- thi hanh script

bash ~/myscript/sc1

hoặc

chmod 755 ~/myscript/sc1 (hoặc chmod +x )

~/myscript/sc1

-36-
Trường Đại học Công nghiệp TP HCM Quản trị Linux 1
Khoa Công nghệ thông tin Hướng dẫn thực hành

Trang
3737
Vd2 : tạo script2

#!/bin/bash

#vi du về cách xuất thông tin hệ thống date

#cách 1

echo "ngay hom nay la " #cách 2

date

echo "ngay hom nay la : `date` " #cách 3 exit0

Vd3 : tạo script3

#!/bin/bash

#vi du về cách xuất thông tin hệ thống echo "ngay hom

nay la : `date` "

echo "tên máy : `hostname` " echo "tài khoản

login : $USER" echo "shell mặc định :

$SHELL"

echo "số người đang đăng nhập hệ thống : `who |wc -l` " echo "have a lot of fun!!!!"

exit 0

Vd4 : tạo script4

#!/bin/bash

#vi du về dùng lệnh read để tương tác với user khi chạy script echo "bạn tên gi "

read TEN

-37-
Trường Đại học Công nghiệp TP HCM Quản trị Linux 1
Khoa Công nghệ thông tin Hướng dẫn thực hành

Trang
3838
echo "hello bạn " $TEN

exit 0

Vd5 : tạo script5

#!/bin/bash

#ví dụ về sử dụng biến trong script declare -i a

declare -i b

declare -i sum

echo "nhap so thu nhat" read a

echo "nhap so thu hai" read b

sum=$a+$b #có thể sử dụng những cách khác

#để tính giá trị của biểu thức này

#như dùng expr , hay $(( )) .

#Không cần khai báo biến bằng declare khi


#dùng expr hay $(( ))

echo "tổng 2 số là : $sum " exit 0

Vd6 : tạo script6

#!/bin/bash

#ví dụ về sử dụng biến trong script echo "nhap so

thu nhat"

read a #a lưu dữ liệu kiểu chuỗi

-38-
Trường Đại học Công nghiệp TP HCM Quản trị Linux 1
Khoa Công nghệ thông tin Hướng dẫn thực hành

Trang
3939
echo "nhap so thu hai"

read b #b lưu dữ liệu kiểu chuỗi sum=$a+$b

echo "tổng 2 số là : $sum " exit 0

Vd7 : tạo script 7

#!/bin/bash

#ví dụ về sử dụng cấu trúc if declare -i a

declare -i b

echo "nhap so thu nhat" read a

echo "nhap so thu hai" read b

if [ $a -gt $b ] ; then echo "$a

> $b"

else

echo "$a < $b" fi

exit 0

Vd8 : tạo script 8

#!/bin/bash

#ví dụ về sử dụng cấu trúc if

-39-
Trường Đại học Công nghiệp TP HCM Quản trị Linux 1
Khoa Công nghệ thông tin Hướng dẫn thực hành

Trang
4040
declare -i a declare

-i b

echo "nhap so thu nhat"

read a

echo "nhap so thu hai" read b

if [ $a -gt $b ] #buộc phải đặt khoảng trắng trước


#và sau [ ]

then echo "$a > $b" elif [ $a -

lt $b ]

then echo "$a < $b" else

echo "$a = $b" fi

exit 0

Vd 9 : tạo script 9

#!/bin/bash

# dùng lệnh test để tính biểu thức sau if (tương tự [ ] )

if test $USER == "root" # dùng phép so sánh với chuỗi ;

then

echo "ban dang dung tai khoản root" else

echo "ban dang dung tai khoản " $USER

fi

exit 0

-40-
Trường Đại học Công nghiệp TP HCM Quản trị Linux 1
Khoa Công nghệ thông tin Hướng dẫn thực hành

Trang
4141
Vd 10 : tạo script 10

#!/bin/bash

# dùng lệnh test để kiểm tra sự tồn tại của file

#sử dụng các option kiểm tra với file, chẳng hạn: -f if [ -f ~/myscript/vd1 ]

; then

echo "file ~/myscript/vd1 có tồn tại " else

echo "không tồn tại file ~/myscript/vd1 "

fi

exit 0

Vd 11 : tạo script 11

#!/bin/bash

# tên file có thể truyền vào từ dòng lệnh khi gọi chạy script

# và được gọi là tham số vị trí , có tên là $1, $2, $3, …

if [ -f $1 ] ; then

echo "file $1 có tồn tại " else

echo "không tồn tại file $1 " fi

exit 0

Yêu cầu : gọi chạy script này vài lần, mỗi lần gọi chạy với một tham số khác nhau , ví dụ

bash sc11 ~/myscript/vd1

bash sc11 /etc/passwd bash

sc11 ./vd5

-41-
Trường Đại học Công nghiệp TP HCM Quản trị Linux 1
Khoa Công nghệ thông tin Hướng dẫn thực hành

Trang
4242

Vd 12 : tạo script 12

#!/bin/bash

# viết lại script 5 , sử dụng 2 tham số vị trí ($1, $2) để

# truyền vào từ dòng lệnh 2 số a, b declare -i sum

sum=$1+$2

echo "tổng 2 số là : $sum " exit 0

Có thể gọi chạy script 12 bằng lệnh :

bash vd12 10 20

Vd13: tạo script 13

#!/bin/bash

# viết lại script 5 , sử dụng 3 tham số vị trí ($1, $2 , $3) để


#truyền vào từ dòng lệnh 2 số a, b, và phép tinh cần thực hiện declare -i kq

if [ $3 == "+" ] ; then

kq=$1+$2

else

kq=$1-$2

fi

echo "ket qua $1 $3 $2 là : $kq exit 0

-42-
Trường Đại học Công nghiệp TP HCM Quản trị Linux 1
Khoa Công nghệ thông tin Hướng dẫn thực hành

Trang
4343
Có thể gọi chạy script 13 bằng lệnh :

bash vd13 10 20 +

Yêu cầu sinh viên tự mở rộng script 13 để thực hiện được bốn phép tính + - * \

Vd 14 : tạo script 14

#!/bin/bash

# dùng vòng lặp while in ra 5 dòng ký tự

declare -i k k=0

while [ $k -lt 5 ] ; do

echo "hello"

k=$k+1

done

exit 0

Vd 15 : tao script 15

# dùng vòng lặp while tính tổng dãy số nhập vào từ bàn phím declare -i sum

declare -i num k="y"

while [ $k == "y" ] ; do echo "ban

nhap so " read num

sum=$sum+$num

echo "bạn có muốn tiếp tục nhập số không (y/n) "

-43-
Trường Đại học Công nghiệp TP HCM Quản trị Linux 1
Khoa Công nghệ thông tin Hướng dẫn thực hành

Trang
4444
read k

done

echo "tổng các số đã nhập là : " $sum exit 0

Yêu cầu sinh viên mở rộng script 15 , với dãy số được đưa vào dưới dạng tham số vị trí

-44-
Trường Đại học Công nghiệp TP HCM Quản trị Linux 1
Khoa Công nghệ thông tin Hướng dẫn thực hành

Trang
4545

Bài Lab 7
Quản lý tiến trình và dịch vụ
(Giáo trình chương 10 + Bài tập 1 _ Module 7 )

1. Sử dụng lệnh top để xem thông tin về các tiến trình, và thông tin chung của hệ thống
:
top

Thông tin
chung

Thông tin
chi tiết củ
mỗi tiến
trình

2. Sử dụng lệnh ps để xem thông tin về các tiến trình

- Dùng lệnh sau để xem tất cả các process : (dạng cây)

ps -eljH | more

hoặc

pstree

- Xem tiến trình cha (tổ tiên) của lệnh ps vừa thực thi : xem cột PID, PPID

ps -eljH |more

-45-
Trường Đại học Công nghiệp TP HCM Quản trị Linux 1
Khoa Công nghệ thông tin Hướng dẫn thực hành

Trang
4646

- Kiểm tra một số dịch vụ đã chạy chưa ? ( như cron, atd , sshd,…)
ps -e |grep cron

- Xem trạng thái của process (running, sleeping,…) : xem cột S

ps -eljH |more

- Xem các process của user hiện hành

ps

hoặc

ps -l

- Mở một terminal mới (tty2), login vào bằng tài khoản user1. Chạy vi. Mở

một terminal mới (tty3), login vào bằng tài khoản user2. Chạy top.

Trên terminal của root, dùng lệnh:

ps -a //hiển thị các process đang chạy trên các terminal hay

ps -af //hiển thị các process đang chạy trên các terminal và chủ nhân

3. Sử dụng lệnh kill và killall :

- dùng man xem manual về lệnh kill (cú pháp lệnh là gì ? )

- xem danh sách 64 các SIGNAL của lệnh kill

kill -l

- xem ý nghĩa của 4 SIGNAL thường dùng trong slide chương 10 (đọc manual)

- Chạy lệnh

find / -name "cron*"

Lệnh đang thực thi thì nhấn Ctrl_Z để dừng tiến trình.

-46-
Trường Đại học Công nghiệp TP HCM Quản trị Linux 1
Khoa Công nghệ thông tin Hướng dẫn thực hành

Trang
4747
Kiểm tra bằng lệnh ps -l xem lệnh còn hoạt động không ? (tiến trình ứng với lệnh find có PID
? ở trạng thái gì ?)

Chấm dứt hoạt động của tiến trình find , bằng lệnh sau có được không ?

kill -SIGTERM <PID_find>

(kiểm tra lại bằng lệnh ps )

Chấm dứt hoạt động của tiến trình find , bằng lệnh sau có được không ?

kill -SIGINT <PID_find>

(kiểm tra lại bằng lệnh ps )

Chấm dứt hoạt động của tiến trình find , bằng lệnh sau có được không ?

kill -SIGKILL <PID_find>

(kiểm tra lại bằng lệnh ps )

- Dùng kill huỷ terminal hiện tại :

Terminal hiện tại tương ứng với tiến trình bash, vậy nên huỷ terminal hiện tại có nghĩa là hủy
tiến trình bash => kết quả là sẽ kết thúc bash, và quay lại tiến trinh login (thấy xuất hiện dấu
nhắc login )

=>thử viết lệnh hủy tiến trình bash bằng kill ?

- Dùng killall huỷ tất cả các bash shell hiện tại trong 1 terminal :

+ trên terminal tty1 , login vào hệ thống với user1

+ dùng lệnh su, chuyển sang dùng quyền của user2

+ tiếp tục , dùng lệnh su, chuyển sang dùng quyền của user3

+ xem toàn bộ các tiến trình phát sinh sau chuỗi lệnh trên

ps -aljH | grep tty1

=> để kill tất cả các bash shell hiện tại (trong 1 terminal) , dùng lệnh

kill -SIGKILL <PID_của shell gốc trên cùng>

-47-
Trường Đại học Công nghiệp TP HCM Quản trị Linux 1
Khoa Công nghệ thông tin Hướng dẫn thực hành

Trang
4848
-Để kill tất cả các bash shell hiện tại trên tất cả các terminal, dùng

killall -SIGKILL bash

=> kết quả là quay trở về dấu nhắc login vào hệ thống

Lưu ý : chỉ có chủ nhân của tiến trình A , hoặc root mới có quyền dùng lệnh kill để hủy A

4.Tìm hiểu dịch vụ atd để lập lịch chạy chương trình.

Thực hiện một ví dụ để test ( xem slide chương 10 )

5.Tìm hiểu dịch vụ cron :

- Lập lịch để mỗi phút ghi một chuỗi vào file test
Thao tác như sau : dùng quyền của root, mở file /etc/crontab bằng vi
Nhập vào cuối file dòng sau :
* * * * * root echo “hello” >> /test.txt

Kiểm tra bằng cách : chờ vài phút trôi qua, rồi mở file test.txt để xem. Hoặc
chỉnh lại đồng hồ hệ thống , rồi xem lại file.

- Tương tự, sử dụng một tài khoản thông thường (không phải là root), lập lịch và test
kết quả.
Sử dụng lệnh crontab -e

-48-
Trường Đại học Công nghiệp TP HCM Quản trị Linux 1
Khoa Công nghệ thông tin Hướng dẫn thực hành

Trang
4949

Bài Lab 8
Kết nối mạng
(Bài tập module 6 và 7 )

Bài lab này hướng dẫn một số thao tác căn bản để thực hiện kết nối giữa máy ảo Linux và máy
host (Windows XP ) theo mô hình Host-only hay Bridged

1. Thiết lập một mạng ảo (theo mô hình Host-only )

Gồm 4 bước sau :

- Chọn switch : chọn kiểu kết nối, khai báo network address
- Bật NIC ảo tương ứng trên máy host Windows
- Bật NIC trên máy ảo Linux
- Gán IP address cho máy host và máy ảo

(lưu ý : bước 1 và 2 thực hiện khi chưa khởi động máy ảo. Bước 3 và 4 cần thực hiện sau
khi đã khởi động máy ảo Linux)

Thao tác như sau:

Mở tool Visual Network Editor … của VMware. ( Mở tool này bằng menu Start > All
Programs > VMware , hoặc
trong cửa sổ chương trình
VMware, chọn menu
Edit.Visual Network Editor…
)

Trang tab Summary :


hiển thị các Visual Network
đã bật, với thông tin kèm theo
như kiểu kết nối (bridged,
host-only, hay NAT) ,
network address ,

-49-
Trường Đại học Công nghiệp TP HCM Quản trị Linux 1
Khoa Công nghệ thông tin Hướng dẫn thực hành

Trang
5050

Để kết nối Host-only, ta có thể chọn dùng switch VWnet1 với network address là
192.168.79.0/24 đã bật sẵn.

NIC ảo tương ứng trên máy host Windows đã có, ta có thể kiểm tra bằng mở
trang tab Host Visual Adapters.

Như vậy, bước 1 và 2 đã thực hiện xong, mà không cần phải làm bất kỳ thao tác nào.

Thực hiện bước 3 : Bật NIC trên máy ảo Linux

Khởi động máy ảo Linux.

Chọn lệnh VM. Removable Devices. Network


Adapter (custom). Settings…

Chọn mục Custom . VMnet1 (Host-only)

Chọn bật Connected.

-50-
Trường Đại học Công nghiệp TP HCM Quản trị Linux 1
Khoa Công nghệ thông tin Hướng dẫn thực hành

Trang
5151

Trước khi thực hiện bước 4, cần lưu ý 2 điểm sau :

- Địa chỉ network đã gán trên switch VMnet1 có thể thay đổi tùy ý. Bằng cách vào
trang tab Host Visual Network Mapping (trong hộp thoại của tool Visual Network
Editor) để thay đổi.

- Có thể chọn sử dụng một switch khác (ví dụ như VMnet2, VMnet3,…) cho mô hình
dựng nhiều mạng ảo. Bằng cách vào trang tab Host Visual Network Mapping (trong
hộp thoại của tool Visual Network Editor) để thay đổi.

Thực hiện bước 4:

- Thực hiện gán IP address cho máy host Windows


Chọn mở tool Network Connections, chọn mở biểu tượng NIC ảo VMnet1 (thường có
tên là VMWare Virtual Ethernet Adapter VMnet1) => mở hộp thoại
như hình sau để thiết lập IP address (thuộc network đã khai báo ở bước 1)

-51-
Trường Đại học Công nghiệp TP HCM Quản trị Linux 1
Khoa Công nghệ thông tin Hướng dẫn thực hành

Trang
5252

- Thực hiện gán IP address cho máy Linux:


Trong Linux, dùng quyền của root để gán IP address

Kiểm tra cấu hình của network interface hiện có trên máy Linux , bằng lệnh
ifconfig -a

Gán IP address cho network interface hiện có trên máy Linux, bằng lệnh như hình
sau :

Kiểm tra lại cấu hình của network interface trên máy Linux :

Như vậy, một mạng ảo đã được thiết lập sau 4 bước, với những đặc điểm sau :

- Gồm 2 máy, một máy host và một máy ảo nối với nhau theo kiểu Host-only
(qua switch ảo vmnet1) trên một mạng ảo có địa chỉ 192.168.79.0/24

-52-
Trường Đại học Công nghiệp TP HCM Quản trị Linux 1
Khoa Công nghệ thông tin Hướng dẫn thực hành

Trang
5353
- Địa chỉ của máy host là 192.168.79.1 và địa chỉ của máy ảo là
192.168.79.100

Ta có thể kiểm tra kết nối giữa


2 máy có thành công hay
không, bằng sử dụng lệnh ping
thực hiện lần lượt trên cả 2
máy.

2. Remote connect với máy Linux

Sau khi thiết lập kết nối giữa 2 máy theo mô hình trên. Ta sử dụng dịch vụ sshd để thực
hiện kết nối từ xa tới máy Linux.

Mô hình như sau : trên máy Linux chạy dịch vụ sshd (server), trên máy Windows chạy
chương trình PuTTY (client) để kết nối từ xa vào máy Linux.

Thao tác như sau :

- Trên máy Linux, chạy dịch vụ sshd, bằng lệnh :

service sshd start

- Tắt firewall trên máy Linux . Với openSuSE , ta sử dụng lệnh :


SuSEfirewall2 off

- Trên máy Windows, chạy putty.exe (không cần cài đặt ). Từ cửa sổ chương trình
PuTTY: Khai báo IP address của máy cần kết nối tới (là máy Linux), Port để default
là 22 => nhấn Open

-53-
Trường Đại học Công nghiệp TP HCM Quản trị Linux 1
Khoa Công nghệ thông tin Hướng dẫn thực hành

Trang
5454

Nếu kết nối được với SSH server, trên màn hình của PuTTY sẽ xuất hiện hộp thoại
thông báo phát sinh key mã hóa giữa 2 máy => chọn yes => dấu nhắc login xuất hiện
=> thực hiện login từ xa vào tài khoản root của máy Linux như hình sau :

Lúc này, trên máy Windows, ta đã kết nối từ xa vào máy Linux . Có thể thực hiện mọi
thao tác như ta đang ở trước máy Linux. Ví dụ :

- Thử thực hiện một số thao tác : xem thư mục /, tạo một thư mục,...

- Có thể mở một cửa sổ PuTTY khác, để mở một kết nối khác tới máy Linux , ví dụ
login từ xa vào máy Linux bằng tài khoản user1.

-54-
Trường Đại học Công nghiệp TP HCM Quản trị Linux 1
Khoa Công nghệ thông tin Hướng dẫn thực hành

Trang
5555

- Thử gửi message từ root đến một user nào đó đang có kết nối tới máy Linux
(vd, user1) bằng lệnh

write user1 <nhấn ENTER>

<gõ nội dung message>

<nhấn Ctrl-D để kết thúc>

Từ user1, đọc và gửi lại message cho root.

3. Kết nối máy ảo với mạng vật lý bằng mô hình Bridged

Kiểu kết nối Bridged cho phép máy ảo kết nối với mạng vật lý (với switch vật lý) và do vậy
kết nối được với một máy host khác, hoặc đi ra internet.
.10 Linu A .1

10.10.10.0/24 .2
B

Theo mô hinh trên : máy ảo Linux chạy trên máy vật lý A, trên mạng có một máy vật lý thứ hai
B. Giả định 2 máy vật lý A và B đã kết nối được với nhau qua một switch vật lý. Ta thực hiện
thiết lập kết nối giữa máy ảo Linux với máy vật lý B như hình trên.

Thao tác gồm 3 bước như sau :

- Bật NIC trên máy ảo Linux theo mode Bridged


- Gán IP address cho máy ảo Linux
- Gán IP address cho máy vật lý B

-55-
Trường Đại học Công nghiệp TP HCM Quản trị Linux 1
Khoa Công nghệ thông tin Hướng dẫn thực hành

Trang
5656

Bước 1 : Bật NIC trên máy ảo Linux theo


mode Bridged

Để máy ảo kết nối ra ngoài qua card vật lý của


máy host A, cần bật chọn mục VMware Bridge
Protocol trong cấu hình card vật lý của máy host
A.

Bước 2 : Gán IP address cho máy ảo Linux

Sử dụng lệnh ifconfig (như mục 1)

Bước 3 : Gán IP address cho máy vật lý B cùng địa chỉ mạng với máy ảo Linux.

-56-
1

QUẢN TRỊ LINUX 2


HƯỚNG DẪN THỰC HÀNH
Bộ Bài tập nâng cao

Dành cho hệ Trung cấp , Cao đẳng

MODULE 6 - Boot loader and Run level


Bài 1
Mục tiêu : cấu hình Grub bootloader

Câu 2 : hack password của root


B1 : Tại màn hình bootloader, Nhấn e để vào chỉnh sửa menu boot

B2 : trên dòng kernel , gõ thêm init=/bin/bash , nhấn enter, nhấn b để boot

B3 : hệ thống sẽ boot vào shell với tài khoản root mà không cần passwd. Đặt passwd mới cho
root .

Lưu ý : nếu dùng bản KDE, nhập init=/bin/bash vào dòng Boot Options rồi enter để boot

Trường ĐHCN TP.HCM - Khoa CNTT- Môn Quản trị Linux 2 - 11/2012 1
2

Câu 3 : thiết lập password vào chế độ edit Grub menu list.
B1 : mở file /boot/grub/menu.lst và thêm vào dòng password cse

B2 : Khởi động lại , quan sát màn hình Grub cho thấy : muốn edit menu boot cần nhập
password (hình 1) . Nếu nhập password đúng, Grub cho phép edit menu boot
(hình 2).

Trường ĐHCN TP.HCM - Khoa CNTT- Môn Quản trị Linux 2 - 11/2012 2
3

Lưu ý : để password nhập trong file menu.lst là chuỗi đã mã md5, cần vào Grub shell và lấy chuối
mã md5 bằng lệnh md5crypt , sau đó nhập chuỗi mã này vào file menu.lst như đã làm trên.

Trường ĐHCN TP.HCM - Khoa CNTT- Môn Quản trị Linux 2 - 11/2012 3
4

Câu 4 : thiết lập password khởi động cho từng menu

Câu 5 + 6 : thêm menu

Menu
thêm mới
(Copy từ
menu trên.

Menu
thêm mới

Trường ĐHCN TP.HCM - Khoa CNTT- Môn Quản trị Linux 2 - 11/2012 4
5

Bài 4
bài tập 11-2 (trang 652) giáo trình
Bao gồm các lệnh : runlevel, init x , vi /etc/inittab, chkconfig -s , chkconfig -l

Chức năng của các lệnh trên ?

Bài 5 (hướng dẫn câu 1,2,3)

// kiểm tra một dịch vụ

chkconfig -l | grep bluetooth

// kiểm tra dịch vụ sshd

chkconfig -l | grep sshd

chkconfig -s sshd off //off ở tất cả các runlevel

chkconfig -l | grep sshd

// thay đổi default runlevel là 3

vi /etc/inittab

// khởi động lại vào runlevel 3

init 0

// gọi chương trình kcalc từ CLI

kcalc

// chuyển lên runlevel 5

init 5

//// gọi chương trình kcalc bằng nhấn vào icon của chương trình

Trường ĐHCN TP.HCM - Khoa CNTT- Môn Quản trị Linux 2 - 11/2012 5
6

//tắt kcalc từ dòng lệnh

kill -15 <pid_kcalc>

// thiết lập khởi động sshd

chkconfig -l | grep sshd

chkconfig -s sshd on // bật sshd ở runlevel 3 và 5

chkconfig -l | grep sshd

//khởi động lại vào runlevel 3 hoặc 5 , kiểm tra sshd tự động khởi động chưa?

rcsshd status

Hoặc

ps -e |grep sshd

// Gán ip tĩnh : gồm 2 bước

B1: Tạo một script , đặt tên setIPaddress, có thể lưu vào /etc/sysconfig/network. Script thực
hiện hỏi IP address mà user muốn gán cho eth0, sau đó ghi nội dung mới vào file cấu hình ifcfg-
eth0

Có thể viết script theo một trong 2 gợi ý sau:

Trường ĐHCN TP.HCM - Khoa CNTT- Môn Quản trị Linux 2 - 11/2012 6
7

Trường ĐHCN TP.HCM - Khoa CNTT- Môn Quản trị Linux 2 - 11/2012 7
8

B2 : gọi chạy script ở giai đoạn boot, bằng file cấu hình /etc/init.d/boot.local

Trường ĐHCN TP.HCM - Khoa CNTT- Môn Quản trị Linux 2 - 11/2012 8
9

MODULE 7 – configure hardward


Bài 1
Mục tiêu : làm việc với kernel modules

Câu 1 : Bài tập trang 684

//xem các kernel module đã load

lsmod | less

//xem thông tin về module parport

modinfo parport

//tạo file chứa thông tin về sự phụ thuộc giữa các module

depmod

vi /lib/modules/kernel_version/modules.dep

Câu 2,3

less /proc/cpuinfo

lsmod or less /proc/modules

Trường ĐHCN TP.HCM - Khoa CNTT- Môn Quản trị Linux 2 - 11/2012 9
10
10

Câu 4

Unload 2 module này khỏi hệ thống

Load lại, và kiểm tra kết quả :

Câu 5

lsmod | grep ata_generic.ko

Trường ĐHCN TP.HCM - Khoa CNTT- Môn Quản trị Linux 2 - 11/2012 10
11
11

modprobe -r ata_generic.ko

find /lib/modules/kernel_version/kernel -name “*ata_generic*”

insmod /lib/modules/kernel_version/kernel/…/<tenfile_driver> lsmod |

grep ata_generic.ko

Câu 6

//tìm driver

find /lib/modules/kernel_version/kernel -name “*touch*”

//kiểm tra xem module đã nap chưa

lsmod | grep appletouch

//nạp module

modprobe appletouch

//kiem tra kết quả

lsmod | grep appletouch

//unload module

modprobe -r appletouch

//kiểm tra kết quả

lsmod | grep appletouch

Trường ĐHCN TP.HCM - Khoa CNTT- Môn Quản trị Linux 2 - 11/2012 11
12
12

Bài 2
Bài tập 12.2 trang 693 : sử dụng acpitool

Trước khi làm theo hướng dẫn trang 693 , cần cài acpitool

Trường ĐHCN TP.HCM - Khoa CNTT- Môn Quản trị Linux 2 - 11/2012 12
13
13

MODULE 8 – IP configuration and Router


Bài 1- câu 3 + 4
Mục tiêu : Trên máy Linux thực hiện cấu hình IP address 192.168.X.2/24 , khai báo
DNS server 203.113.131.1 và 203.162.4.190, gán default gw là
192.168.X.3/24

Các lệnh :

//////xem cấu hình IP của tất cả interface trên máy linux :

ifconfig -a

/////gán IP address và bật interface eth0 :

ifconfig eth0 192.168.X.2 netmask 255.255.255.0 up

/////xem lại thong tin cấu hình IP trên eth0 :

ifconfig eth0

/////khai báo địa chỉ của DNS server :

vi /etc/resolv.conf nhập 2 dòng

sau nameserver

203.113.131.1 nameserver

203.162.4.190

nhấn ESC, và :wq để lưu và thoát vi

///// xem thông tin bảng định tuyến trước khi gán default gw

route

/////gán default gateway cho máy linux

route add default gw 192.168.X.3

///// xem thông tin bảng định tuyến sau khi gán default gw :

route

// thực hiện gán IP address và default gw bằng file cấu hình


/etc/sysconfig/network/ifcfg-eth0 và /etc/sysconfig/network/routes như sau

///// tắt và bật interface eth0, kiểm tra lại thong tin cấu hình IP và gateway :

Trường ĐHCN TP.HCM - Khoa CNTT- Môn Quản trị Linux 2 - 11/2012 13
14
14

ifdown eth0

ifup eth0

ifconfig -a

route

Cấu hình IP và gateway đã gán ở trên bị mất

///// thực hiện gán lại IP address bằng file cấu hình :

vi /etc/sysconfig/network/ifcfg-eth0

chỉnh sửa

///// thực hiện gán lại default gateway bằng file cấu hình :

vi /etc/sysconfig/network/routes

nhập dòng sau

default 192.168.X.3

///// tắt và bật lại interface eth0 để thiết lập lại cấu hình IP theo cấu hình mới :

ifdown eth0

ifup eth0

///// kiểm tra netcard của Linux và host để cùng nối vào VMnet1, gán IP address của host là
192.168.X.1/24, thử ping giữa host và Linux để kiểm tra kết nối.

Bài 1- câu 5
Mục tiêu : sử dụng file hosts để lưu thông tin phân giải tên. ping bằng tên máy để
thấy kết quả phân giải tên bằng file hosts.

Trường ĐHCN TP.HCM - Khoa CNTT- Môn Quản trị Linux 2 - 11/2012 14
15
15

// mở file /etc/hosts và nhập thong tin phân giải tên các máy : mylocalfileserver
203.113.131.255 và mylocalwebserver 203.113.131.254

vi /etc/hosts

nhập them 2 dòng sau

203.113.131.255 mylocalfileserver

203.113.131.254 mylocalwebserver

// thử ping vào tên máy mylocalfileserver

Bài 2 , bài 3
Mục tiêu : Thực hiện kết nối các máy trên 2 network khác nhau bằng giải pháp thêm
card mạng . Card mạng thêm vào là card vật lý hoặc dùng IP alias.

Mô hình – bước 1:

Sinh viên A dựng mô hình sau trên máy 05 . Máy LinuxA (máy ảo Linux) kết nối
bridge với máy host Windows A.

Sinh viên B làm tương tự ( thiết lập một mạng khác A)

Host A
Windows
Mô hình – 192.168.5.2/24 bước 2:
192.168.5.1/24
Để máy LinuxA Host của sinh
viên A kết nối được với
máy LinuxB của sinh viên
B => thêm một

Trường ĐHCN TP.HCM - Khoa CNTT- Môn Quản trị Linux 2 - 11/2012 15
16
16

card mạng trên máy LinuxB có địa chỉ cùng mạng với Host của A.

Tương tự , để máy Host của sinh viên B kết nối được với máy LinuxA của sinh viên
A => thêm một card mạng trên máy LinuxA có địa chỉ cùng mạng với Host của B.

Host A
Windows
192.168.5.2
192.168.6.3
192.168.5.1
LinuxA
eth0 eth1

192.168.6.1
LinuxB
eth1 eth0 Host B
192.168.5.3 192.168.6.2 Windows

Mô hình – bước 3:

Để Host A kết nối với LinuxB , thay vì thêm một card mạng trên máy LinuxB ta sẽ sử dụng
một card mạng có 2 IP address. Card mạng có sẵn trên máy LinuxB sẽ được gán thêm một IP
address thuộc lớp mạng của Host A.

Sau khi gán IP address thứ nhât cho eth0, ta thực hiện gán IP address thứ hai trên card mạng
này, với tên interface eth0:0 .

Sử dụng một trong 2 cách gán IP alias sau:

(1) ifconfig eth0:0 192.168.5.3 netmask 255.255.255.0


(2) Mở file /etc/sysconfig/network/ifcfg-eth0, nhập thêm 3 dòng sau:
IPADDR_2=’192.168.5.3’
NETMASK_2=’255.255.255.0’
LABEL_2=’0’

Khởi động lại dịch vụ mạng , và kiểm tra kết quả bằng lệnh ifconfig.

192.168.5.3
L
eth0:0 192.168.6.2

Bài 4 inuxB
eth0

Trường ĐHCN TP.HCM - Khoa CNTT- Môn 16

Quản trị Linux 2 - 11/2012


17
17

Mục tiêu : cấu hình router , kết nối 2 máy khác mạng thông qua router.

Mỗi sinh viên thực hiện mô hình mạng như hình vẽ. Kết nối bridge giữa các máy :
host A ( host Windows ), RouterAB ( Linux ) , và host B ( Linux).

Để không trùng IP với các máy của sinh viên khác, cần thay byte đầu là số máy của sinh
viên cho địa chỉ mạng thứ nhất , thay byte đầu là 1 + số máy cho địa chỉ mạng thứ hai.

Các thao tác :

- Gán IP address cho các máy ( như hình vẽ )


- Tại host A và B :
o khai báo default gw
o Kiểm tra bảng routing
- Tại router AB
o Tắt firewall : SuSEfirewall2 off
o Kiểm tra bảng routing
o Bật ip_forward
echo 1 > /proc/sys/net/ipv4/ip_forward
- Test kết nối giữa A và Router, giữa B và router, giữa A và B

Trường ĐHCN TP.HCM - Khoa CNTT- Môn Quản trị Linux 2 - 11/2012 17
18
18

Bài 5
Mục tiêu : cấu hình router , kết nối 2 máy khác mạng thông qua router

Hai sinh viên ngồi cạnh nhau ghép thành một nhóm. và thực hiện nối ghép mạng với nhau
như hình vẽ trên.

Để ghép nối, một trong 2 sinh viên phải đổi lại địa chỉ 1 mạng (địa chỉ của một host, và một
cổng của router) trùng với 1 mạng của sinh viên thứ hai ( xem hình sau) .
LinuxB
Host A Linux A LinuxB Host BB
Host
RouterA RouterB

192.168.5.0/24 192.168.105.0/24
6 192.168.106.0/24 192.168.6.0/24
192.168.106.0/24 192.168.6.0/24
Đổi thành
thành

192.168.105.0/24
192.168.105.0/24

Kết quả của bài 4 được sử dụng cho bài 5, và sinh viên B đã đổi địa chỉ mạng của
LinuxB và một cổng của routerB sang địa chỉ thuộc lớp mạng của sinh viên A (như hình) .
Các thao tác tiếp theo như sau :

Trường ĐHCN TP.HCM - Khoa CNTT- Môn Quản trị Linux 2 - 11/2012 18
19
19

1. Tại LinuxA:
o khai báo default gw ( đã làm rồi)
2. Tại LinuxB :
o khai báo default gw ( đã làm rồi)
3. Tại router A và router B :
o Tắt firewall
o Khai báo default gw ( để chuyển tiếp packet tới mạng thứ 3)
o Bật ip_forward

Trường ĐHCN TP.HCM - Khoa CNTT- Môn Quản trị Linux 2 - 11/2012 19
20
20

MODULE 9 – DHCP service


Bài 1
Mục tiêu : Dựng DHCP server trên một máy Linux . Cấu hình DHCP server để cấp
IP address, DNS server và default gateway cho các máy client là Host
Windows và Linux

x.168.1.0/24

.1

Các thao tác :

1. Dựng 2 máy ảo Linux . Thiết lập để 2 máy ảo Linux và máy host Windows kết nối
cùng mạng ảo ( VMnet1) hoặc bridge.

2. Gán IP address cho máy DHCP server : x.168.1.1/24

Cài đặt dịch vụ DHCP trên máy DHCP server :


- các gói dhcp
dhcp-server
dhcp-tools
3. Cấu hình dịch vụ dhcpd trên máy DHCP server: file /etc/dhcpd.conf
o Khai báo các global options
domain name : cse.hui.edu.vn
domain name server : 203.113.131.1
o Khai báo subnet cung cấp dịch vụ : : x.168.1.0/24
Range từ x.168.1.10 đến x.168.1.20
Subnet mask : 255.255.255.0
Default gw là x.168.1.254

- Cấu hình các cổng mà DHCP server lắng nghe các gói tin DHCP gửi từ clients
Thực hiện trong file /etc/sysconfig/dhcpd
DHCPD_INTERFACES = “ANY”

Trường ĐHCN TP.HCM - Khoa CNTT- Môn Quản trị Linux 2 - 11/2012 20
21
21

4. Khởi động dịch vụ dhcpd trên DHCP server


rcdhcpd status //xem trạng thái hiện hành của dịch vụ
rcdhcpd start // khởi động dịch vụ

5. Từ client Linux xin cấp IP từ DHCP server


o Lệnh xin cấp : dhcpcd eth0
o Kiểm tra cấu hình client :
Thực hiện lệnh ifconfig, để thấy thông số IP address, Subnet mask
Thực hiện lệnh route, để thấy thông số về default gw
Thực hiện xem file /etc/resolv.conf để thấy thông số về domain,
nameserver
o Lệnh release : dhcpcd -k eth0
o Lệnh renew : dhcpcd -n eth0

(dùng man dhcpcd để xem chi tiết cách dùng lệnh dhcpcd )

6. Từ client host Windows , xin cấp IP từ DHCP server


- Lệnh ipconfig /all
- Lệnh ipconfig /release
- Lệnh ipconfig /renew

7. Tại DHCP server, mở file log xem thông tin về client xin cấp IP

tail /var/log/messages

8. Mở file cấu hình dịch vụ dhcpd trên DHCP server, thực hiện chỉnh sửa để Cấp
địa chỉ cố định cho máy client Host Windows là x.168.1.15 ( hoặc client Linux
)
- Đọc MAC address của card mạng trên host Windows
- Mở file cấu hình trên DHCP server : file /etc/dhcpd.conf
Thêm dòng : ( phần khai báo subnet x.168.1.0 )

host client 1 {
hardware ethernet <địa chỉ MAC> ;
fixed-address x.168.1.15 ;
}

- Khởi động lại dịch vụ dhcpd


rcdhcpd restart

- Tại client host Windows, thực hiện lệnh giải phóng IP, và xin cấp lại IP. Kiểm tra kết
quả.

Trường ĐHCN TP.HCM - Khoa CNTT- Môn Quản trị Linux 2 - 11/2012 21
22
22

Bài 4 :
Mục tiêu : Dựng một DHCP server trên subnet A cấp IP cho 2 subnet (A và B). Sử dụng
một DHCP relay agent để làm agent giao tiếp giữa subnet B và DHCP server

Mỗi sinh viên dựng mô hình như sơ đồ trên (hoặc kết hợp 2 sinh viên) .

Mô hình gồm 5 máy Linux, nằm trên 2 subnet 192.168.1.0/24 và 10.10.10.0/24.

Các thao tác :

1. Thiết lập để 5 máy kết nối với nhau qua switch ảo VMnet1 và VMnet2 (như hình ).
Nếu kết hợp 2 sinh viên ,cần dùng kết nối bridge.

2. Cấu hình IP trên 3 máy DHCP server, Router, DHCP relay agent để chúng kết nối
được với nhau (như hình) :

- Gán IP tĩnh cho 3 máy như hình


- Cấu hình định tuyến cho 3 máy :
o Gán default gw trên máy DHCP server, và DHCP relay
o Kiểm tra bảng định tuyến trên 3 máy

Trường ĐHCN TP.HCM - Khoa CNTT- Môn Quản trị Linux 2 - 11/2012 22
23
23

o Bật IP forward trên Router


- Thực hiện ping thông nhau giữa 3 máy

3. Trên 2 client A và client B:


- Đảm bảo 2 client đang sử dụng cấu hình IP cấp phát động (default ). Kiểm tra
IP address .

4. Cài dịch vụ DHCP trên máy DHCP server

5. Cấu hình dịch vụ dhcpd trên máy DHCP server để cấp IP và gán default gw cho 2
subnet

- Trong file /etc/dhcpd.conf :


o Khai báo cho subnet 10.10.10.0/24 :
Range 10.10.10.10 đến 10.10.10.20
Default gw 10.10.10.254
o Khai báo cho subnet 192.168.1.0/24 :
Range 192.168.1.10 đến 192.168.1.20
Default gw 192.168.1.254
- Cấu hình các cổng mà DHCP server lắng nghe các gói tin DHCP gửi từ clients
Thực hiện trong file /etc/sysconfig/dhcpd
DHCPD_INTERFACES ANY

- Khởi động dịch vụ dhcpd

6. Thực hiện test bằng cách xin cấp IP trên client A và client B
- Trên client A :
o Chạy lệnh dhcpcd eth0
o Kiểm tra kết quả bằng lệnh ifconfig, và route
- Trên client B:
o Chạy lệnh dhcpcd eth0
o Kiểm tra kết quả bằng lệnh ifconfig => không có IP address cấp từ
DHCP server => cần thực hiện bước 7

7. Cài đặt và Cấu hình dịch vụ DHCP-relay trên máy DHCP Relay Agent
- Cài đặt gói dhcp-relay trên máy 10.10.10.1
- Cấu hình :
o Mở file /etc/sysconfig/dhcrelay
Khai báo :
DHCRELAY_INTERFACES <tên interface>
DHCRELAY_SERVERS <IP address của DHCPserver>
- Khởi động dịch vụ DHCP relay:
service dhcrelay start

Trường ĐHCN TP.HCM - Khoa CNTT- Môn Quản trị Linux 2 - 11/2012 23
24
24

- Kiểm tra kết quả :


o Trên client B xin cấp IP
o Kiểm tra bằng lệnh ifconfig và route
o Thực hiện ping để kiểm tra kết nối giữa client A và client B

8. Hợp nhất DHCP relay agent vào Router :


- Hủy bỏ máy DHCP relay agent (ngắt kết nối với subnet B)
- Thực hiện lại bước 7 trên máy Router :
o Cài đặt gói dhcp-relay trên máy Router
o Cấu hình :
Mở file /etc/sysconfig/dhcrelay , Khai báo :
DHCRELAY_INTERFACES <tên 2 interface>
DHCRELAY_SERVERS <IP address của DHCPserver>
o Khởi động dịch vụ DHCP relay:
service dhcrelay start

o Kiểm tra kết quả :


Trên client B xin cấp lại IP
Kiểm tra bằng lệnh ifconfig và route
Thực hiện ping để kiểm tra kết nối giữa client A và client B

Trường ĐHCN TP.HCM - Khoa CNTT- Môn Quản trị Linux 2 - 11/2012 24
25
25

MODULE 11 – DNS service


Bài 1
Mục tiêu : cài đặt và cấu hình DNS server , thực hiện phân giải tên (thuận và nghịc )
cho client 1 và client 2

Mỗi sinh viên dựng một máy DNS server (Linux ), hai máy client ( Linux hoặc host
Windows ). Cả ba máy thuộc mạng ảo VMnet1.

Các thao tác :

1. Cấu hình địa chỉ IP cho 3 máy


DNS server 192.168.x.1 (máy SUSE)
Client1 192.168.x.10 (máy SUSE)
Client2 192.168.x.20 (máy SUSE hoặc host Windows)

Lưu ý : gán IP tĩnh trên máy DNS server, trên các client gán IP tĩnh hoặc dùng
DHCP server cấp IP. Tất cả 3 máy có IP address và ping thông nhau.

2. Cài đặt dịch vụ dns server (named daemon) trên máy DNS server
- Cài các gói :
• bind
• bind-chrootenv
• bind-libs
• bind-utils
3. Cấu hình phân giải tên miền cho domain cse.com trên dns server
- Mở file /etc/named.conf
o Thêm 2 zone phân giải thuận và nghịch cho domain cse.com
zone “cse.com” in {
type master;
file “cse.com.zone” ;
};

Trường ĐHCN TP.HCM - Khoa CNTT- Môn Quản trị Linux 2 - 11/2012 25
26
26

zone “x.168.192.in-addr.arpa” in {
type master;
file “x.168.192.zone”;
};

o Active 2 khai báo về : interface lắng nghe và chấp nhận truy vấn tới từ tất cả
các client

- Tạo file /var/lib/named/cse.com.zone (file phân giải thuận) :


Sao chép từ file localhost.zone , sau đó mở ra chỉnh sửa nội dung :

$TTL 1W
@ IN SOA dnsserv.cse.com. root ( giữ nguyên phần này …)

IN NS dnsserv.cse.com. Thông tin về Name server và


dnsserv IN A 192.168.x.1 mail server của domain cse.com
@ IN MX 10 mail.cse.com.
mail IN A 192.168.2.1
xp1 IN A 192.168.x.10 Thông tin về các host trong
xp2 IN A 192.168.x.20 domain
www IN A 192.168.x.10 Alias của một số host
client1 IN CNAME xp1
client2 IN CNAME xp2
- Tạo file /var/lib/named/x.168.192.zone (file phân giải nghịch) :
Sao chép từ file 127.0.0.zone , sau đó mở ra chỉnh sửa nội dung :

$TTL 1W
@ IN SOA dnsserv.cse.com. root (giữ nguyên phần này …)
IN NS dnsserv.cse.com. Thông tin về
Name server .
dnsserv.cse.com. IN A 192.168.x.1
1 IN PTR dnsserv.cse.com. Thông tin phân giải
10 IN PTR xp1.cse.com. ngược.
20 IN PTR xp2.cse.com.

Trường ĐHCN TP.HCM - Khoa CNTT- Môn Quản trị Linux 2 - 11/2012 26
27
27

- Test cú pháp của các file cấu hình :


named-checkconf /etc/named.conf
named-checkzone cse.com /var/lib/named/cse.com.zone
named-checkzone x.168.192.in-addr.arpa /var/lib/named/x.168.192.zone

- Tắt firewall : SuSEfirewall2 off


- Khởi động dịch vụ :
rcapparmor stop (áp dụng với openSuSE 11.2)
rcnamed start

- Test phân giải tên tại máy DNS server :


o Mở file /etc/resolv.conf . nhập thêm dòng :
nameserver 127.0.0.1
o Thực hiện lệnh để test
nslookup xp1.cse.com

4. Trên các client :


- khai báo địa chỉ của DNS server:
Mở file /etc/resolv.conf . nhập thêm dòng :
nameserver 192.168.x.1

- Test kết quả bằng lệnh nslookup ( và lệnh dig ) tại tất cả các máy client
- Test kết quả bằng ping giữa các máy sử dụng tên miền.

5. Chỉnh sửa file cấu hình named.conf và bổ sung các file zone , để DNS server phân
giải nhiều domain ( BÀI 3)

Thao tác : thực hiện lại bước 3 nêu trên


Test tại máy DNS server

Trường ĐHCN TP.HCM - Khoa CNTT- Môn Quản trị Linux 2 - 11/2012 27
28
28

MODULE 12 – Web server


Bài 1
Mục tiêu : cài đặt Apache2; thực hiện truy câp vào Web serser

1. Sử dụng một máy Linux (bản desktop ) làm Web server. Gán IP tĩnh cho Web server
192.168.1.254

2. Cài đặt Apache2 :


- apache2
- apache2-doc
- apache2-example-pages
- apache2-prefork

3. Xem các thông số cấu hình chính của Apache2 Web Server
- ls /etc/apache2
- less /etc/apache2/httpd.conf
- less /etc/apache2/listen.conf

- less /etc/apache2/default-server.conf

- ls /srv/www/htdocs

- less /etc/apache2/httpd.conf

4. Chạy dịch vụ Web server và test :


- Chạy lệnh rcapache2 start
- tại máy Web server, mở trình duyệt , nhập vào URL
http://localhost

Trường ĐHCN TP.HCM - Khoa CNTT- Môn Quản trị Linux 2 - 11/2012 28
29
29
hoặc
http://localhost/index.html
hoặc
http://ip_address_của_webserver

- thiết lập để host và Web server cùng một network, từ host dùng trình duyệt truy
cập vào trang test bằng cách nhập URL
http://ip_address_của_webserver

5. Tạo 2 trang html page1.html và test/page2.html (test là thư mục) trong


/srv/www/htdocs.
Truy cập 2 trang này từ Web server, và từ host Windows.

6. Tạo Alias để truy cập vào tài liệu hướng dẫn của Apache Org.
- Mở file /etc/apache2/default-server.conf
o Đọc chỉ dẫn Alias đã có trong file.
o Nhập thêm dòng
Alias /apache-doc/ “/usr/share/apache2/manual/”
- Truy cập vào tài liệu hướng dẫn của Apache Org.
http://localhost/apache-doc/index.html
hoặc
http://ip-address-webserver/apache-doc/index.html

7. Truy cập Web server bằng tên miền

Web server Host Windows


DNS server

- Dựng một DNS server để phân giải tên www.cse.com về địa chỉ của Web server.
- Tại Web server và Host Windows, khai báo địa chỉ của DNS server,
- Thực hiện truy cập vào các trang web tại Web server bằng nhập URL
http://www.cse.com
http://www.cse.com/page1.html
http://www.cse.com/apache-doc/index.html

Trường ĐHCN TP.HCM - Khoa CNTT- Môn Quản trị Linux 2 - 11/2012 29
30
30

Bài 2
Mục tiêu : Cấu hình vitual host để Web server quản lý 3 web site www.cse.com
www.fit.com www.cse.net

Hai bước căn bản :

- Cấu hình DNS server để phân giải 3 domain name


- Cấu hình các Virtual host. Mỗi Virtual Host quản lý một website , cần có :
o Một file cấu hình , đặt trong /etc/apache2/vhosts.d/<tenfile.conf>
o Các file tài liệu (html,…) đặt trong một thư mục, ví dụ : đặt trong
/srv/www/vhosts/<tenthumuc> . Trong số các file html, có một file là
trang chính, thường đặt tên là index.html.

Thao tác :

1. Cấu hình DNS server để phân giải 3 domain name


- 3 domain name cùng địa chỉ 192.168.1.254 ( địa chỉ của web server)
- Sử dụng nslookup kiểm tra phân giải tên tại DNS server
- Tại Web server (và host Windows), khai báo địa chỉ name server là địa chỉ của
DNS server. Sử dụng nslookup kiểm tra phân giải tên tại máy Web server (và tại
host Windows)

2. Cấu hình các Virtual host dạng named-based


- Vào thư mục /etc/apache2/vhosts.d/
- Copy file vhost.template thành các file csecom.conf, fitcom.conf,
csenet.conf
- Mở từng file và chỉnh sửa nội dung để file có cấu hình cho web site
tương ứng …

- Mở file /etc/apache2/listen.conf , thêm dòng


NameVirtualHost 192.168.1.254:80

3. Tạo các file tài liệu (resource) cho từng web site :
- Vào document root của từng virtual host ( /srv/www/vhosts/<tên thư mục>)
tạo file index.html

4. Sử dụng lệnh kiểm tra cú pháp và xem thông tin các virtual host

Trường ĐHCN TP.HCM - Khoa CNTT- Môn Quản trị Linux 2 - 11/2012 30
31
31

5. Mở trình duyệt tại Web server, và host Windows, truy cập vào các web site bằng
URL
http://www.cse.com
http://www.fit.com
http://www.cse.net

Trường ĐHCN TP.HCM - Khoa CNTT- Môn Quản trị Linux 2 - 11/2012 31
32
32

MODULE 13 – NFS
Bài 1
Mục tiêu : share data giữa các hệ thống Linux

- Mô hình : gồm 2 máy linux _ một máy đóng vai trò NFS server (chứa thư mục
share) và một máy client.
Cấu hình để 2 máy kết nối với nhau trên một subnet , hoặc trên 2 subnet (
có router )

Thao tác :
1. Trên máy NFS server:
- Cài gói nfs-kernel-server
- Tắt firewall
- Mở file /etc/exports để khai báo các thư mục share
Nhập thêm dòng sau , để share thư mục /tmp cho tất cả các máy với quyền
rw
/tmp *(rw,root_squash)

- Khởi động dịch vụ nfsd , bằng lệnh :


service nfsserver start

2. Trên máy client :


- Cài gói nfs-client (đã cài sẵn trên openSuSE)
- Thực hiện mount với thư mục share trên NFS server
mount x.x.x.x:/tmp /mnt
( x.x.x.x là ip_address của NFSserver )

- Sử dụng tài khoản root để tạo một thư mục trên /mnt
- Sử dụng 1 tài khoản thông thường để tạo một file trong /mnt (hoặc sao chép
một file vào /mnt)
- Từ máy NFS server , mở thư mục share để xem kết quả ( dùng lệnh ls -l để thấy
thông tin về owner, và group …)

3. Trên máy NFS server:


- Tạo một group tên laptrinh
groupadd laptrinh
Tạo thư mục /tmp/laptrinh, đổi quyền để group chủ có quyền rw, thay
đổi group chủ của thư mục này là laptrinh.
mkdir /tmp/laptrinh
chmod g=rw /tmp/laptrinh
chown .laptrinh /tmp/laptrinh

Trường ĐHCN TP.HCM - Khoa CNTT- Môn Quản trị Linux 2 - 11/2012 32
33
33

ls -l /tmp |grep laptrinh


- Mở file /etc/exports để khai báo thêm 1 thư mục share.
Thêm dòng sau để chỉ share cho một client với quyền rw :
/tmp/laptrinh x.x.x.x(rw,root_squash)

(x.x.x.x là ip address của client )

- Khởi động lại dịch vụ nfsd


service nfsserver restart

4. Trên máy client :


- Thực hiện mount với thư mục share /tmp/laptrinh trên NFS server
mount x.x.x.x:/tmp/laptrinh /media
( x.x.x.x là ip_address của NFSserver )

- Sử dụng tài khoản root để tạo một thư mục trên /media
- Sử dụng 1 tài khoản thông thường thuộc group laptrinh để tạo một file trong
/media (hoặc sao chép một file vào /media)
- Sử dụng 1 tài khoản thông thường không thuộc group laptrinh để
o tạo một file trong /media (hoặc sao chép một file vào /media)
o xem nội dung thư mục /media
Kết quả như thế nào ?

- Từ máy NFS server , mở thư mục share để xem kết quả ( dùng lệnh ls -l để thấy
thông tin về owner, và group …)

Trường ĐHCN TP.HCM - Khoa CNTT- Môn Quản trị Linux 2 - 11/2012 33
34
34

MODULE 14 – Samba
Bài 1
Mục tiêu : sử dụng samba client
- Kết nối mạng giữa linux và host
Windows
- Trên host Windows, thiết lập share Sharefolder
một thư mục

- Trên linux client :


o Cài đặt 2 gói : libsmbclient
samba-client

o Xem các nguồn tài nguyên chia sẽ trên máy Windows


smbclient -L //ip_address_Windows -U username

(username là user hợp lệ trên host Windows)

o Truy suất nguồn tài nguyên chia sẽ, bằng một trong các cách sau :
(1) smbclient -U username //ip_address_Windows/sharefolder

Nhập lệnh tại dấu nhắc của dịch vụ :


? để xem các lệnh có thể sử dụng
ls để xem các resource có trong thư mục share cd
<tenfolder> để thay đổi thư mục
get <tenfile> để copy file về thư mục hiện hành máy linux put
<tenfile> để copy file từ tm hiện hành lên thư mục share quit
để thoát

(2) mount //server-name/sharefolder mount_point


rồi truy cập vào mount_point

(3) Dùng Konqueror trong KDE (nếu có)

Trường ĐHCN TP.HCM - Khoa CNTT- Môn Quản trị Linux 2 - 11/2012 34
35
35

Bài 2
Mục tiêu : cài đặt và cấu hình samba server trên
linux

- Kết nối mạng giữa Linux và host Windows

- Trên máy Linux server


o cài gói : samba
o Tắt firewall
o Tạo một tài khoản tên cseuser, passwd là
cseuse
Add tài khoản này vào samba server, bằng lệnh
smbpasswd -a cseuser

o Mở file cấu hình của dịch vụ samba : /etc/samba/smb.conf


Thêm vào các dòng sau :
[sharedata_1]
comment = data share
path = /tmp

o Khởi động samba server


service smb start

- Từ windows client :
Vào run , và nhập \\ip_address_samba_server
Nếu kết nối thành công , sẽ xuất hiện cửa sổ hiện thư mục share
Khai báo tài khoản đăng nhập dịch vụ
Mở thư mục share và chép file về máy Windows

- Máy Linux server đã cài các gói phía client (samba-client ) và phía server
(samba) :
o Là samba client ( lấy data share từ máy Windows)
o Là samba server (share data cho
máy Windows )

Yêu cầu : thực hiện test 2 chức năng này

Trường ĐHCN TP.HCM - Khoa CNTT- Môn Quản trị Linux 2 - 11/2012 35
36
36

Bài 3
Mục tiêu : cấu hình samba và phân quyền shared thư mục

Thao tác :

1. Trên Samba server


- Tạo các thư mục
- Gán quyền 777 trên các thư mục này
- Tạo các tài khoản
- Dùng lệnh smbpasswd để các tài khoản này sử dụng được dịch vụ smb
- Khai báo các tài nguyên shared trong file smb.conf
o Sử dụng các khai báo về phân quyền như
Read only
Writeable
Write list
Valid users

(xem man page smb.conf )

- Khởi động dịch vụ smb

2. Trên các client (linux, Windows )


- Test quyền truy cập và sử dụng các thư mục shared

Trường ĐHCN TP.HCM - Khoa CNTT- Môn Quản trị Linux 2 - 11/2012 36
37
37

MODULE 15 – Xinetd
Bài 1
Mục tiêu : sử dụng xinetd, tcp wrappers, sudo

1. Cấu hình IP để 3 máy: WindowsXP , Linux client , Linux server kết nối với nhau.

2. Remote access bằng telnet :

Trên máy Linux server :

- Cài telnet-server
- Mở file /etc/xinetd.d/telnet, sửa dòng disable = yes thành disable = no
- Khởi động dịch vụ xinetd bằng lệnh rcxinetd start
Dùng lệnh : netstat -tupln xem xinetd đã lắng nghe ở cổng 23 chưa . Nếu có
thì làm tiếp bước sau.

Từ máy Windows, sử dụng putty để kết nối từ xa (dùng telnet) với Linux server

- Tương tự, từ máy Linux client , thử kết nối từ xa với Linux server, bằng lệnh
telnet ip_address_Linuxserver

*** Remote access bằng ssh : (sshd là dịch vụ stand-alone, đã được cài đặt) Trên

máy Linux server :

- Khởi động dịch vụ sshd bằng lệnh : rcsshd start


- Dùng lệnh netstat -tupln kiểm tra ssh đã chạy, port 22

Từ máy Windows :

- Sử dụng putty để kết nối từ xa (dùng ssh) với Linux server .


- Tương tự, từ Linux client, thử kết nối từ xa với Linux server bằng lệnh
ssh ip_address_Linuxserver

3. Sử dụng vsftpd (một Anonymous FTP server) : Trên


máy Linux server :
- Cài gói vsftpd để dựng một Anonymous FTP server.
- Sao chép file wincsp.exe (trong đĩa iso) vào thư mục share của FTP
server ( /srv/ftp )
- Khởi động dịch vụ vsftpd

Trường ĐHCN TP.HCM - Khoa CNTT- Môn Quản trị Linux 2 - 11/2012 37
38
38

Trên máy Windows client , thực hiện mở cửa sổ cmd :

- Nhập lệnh : ftp ip_address_Linuxserver


Kết nối bằng tài khoản ftp ( hoặc anonymous ) , passwd bỏ qua
Thực hiện chạy lệnh
ftp> help
ftp> ls
ftp> get <tên file>
ftp> quit

Kiểm tra kết quả đã chép file wincsp.exe về máy Windows client chưa.

- Tương tự, từ một máy Linux client , thực hiện kết nối đến FTP server bằng lệnh :
ftp ip_address_Linuxserver và chép file về

4. Sử dụng lệnh sudo (trên một Linux system ) để cho phép tài khoản cse1 được
phép thay đổi IP address.
- Tạo tài khoản cse1 , thử dùng tài khoản cse1 để chạy lệnh ifconfig ?
- Dùng lệnh whereis ifconfig để biết file thực thi nằm ở đâu
- Khai báo cấu hình trong file /etc/sudoers , bằng lệnh visudo (enter) Nhập
các dòng sau :
User_Alias MYUSER = cse1
Cmnd_Alias MYCMD = /sbin/ifconfig
MYUSER ALL = (root)NOPASSWD: MYCMD

- Các lệnh trên cần thực hiện với quyền của root.
- Để test, cần chuyen sang tài khoản cse1, thực hiện lệnh
sudo /sbin/ifconfig -a sudo
/sbin/ifconfig eth0

- Áp dụng để làm câu 3 của bài 1 (module 15)

5. Sử dụng tcp wrappers để cấm tất cả các máy dùng dịch vụ telnet và vsftp, ngoại
trừ máy 192.168.1.10

Thực hiện B1 và B2 tại máy Linux server. Thực hiện B3 tại máy Linux
client ( hoặc Windows XP)

- B1: Bật khả năng sử dụng tcp wrappers trong file cấu hình của 2 dịch vụ telnet,
vsftp nằm trong /etc/xinetd.d

Trường ĐHCN TP.HCM - Khoa CNTT- Môn Quản trị Linux 2 - 11/2012 38
39
39

Ví dụ, mở file /etc/xinetd.d/telnet ,


flags =REUSE NAMEINARGS //gõ thêm vào server =
/usr/sbin/tcpd //sửa dòng server server_args =
/usr/sbin/in.telnetd //sửa dòng server_args

- B2: Khai báo quyền truy cập 2 dịch vụ trong file /etc/hosts.allow và
/etc/hosts.deny
Trong hosts.allow
in.telnetd : 192.168.1.10
Trong hosts.deny
in.telnetd : ALL

Khởi động xinetd .


Dùng netstat để kiểm tra xem xinetd đã lắng nghe tại cổng của 2 dịch vụ telnet
và vsftp chưa.

- B3 : test
Từ client có địa chỉ 192.168.1.10 thử telnet vào máy server.
Từ client có địa chỉ khác 192.168.1.10 thử telnet vào máy server.
Tương tự, test với dịch vụ vsftp…

Trường ĐHCN TP.HCM - Khoa CNTT- Môn Quản trị Linux 2 - 11/2012 39
40
40

MODULE 16 – Linux security


Sử dụng iptables
Mục tiêu : sử dụng iptables thiết lập network firewalls

Dựng mô hình 3 máy như hình sau. Clients trên 2 mạng có thể là Windows client hoặc
Linux client hoặc cả hai. Đảm bảo các máy đã kết nối với nhau.
Thực hiện các lệnh sau trên máy RF.

1. Làm quen với iptables:


- Bật SuSEfirewall2
SuSEfirewall2 status
SuSEfirewall2 on //nếu chưa on thì chạy lệnh này

- Dùng lệnh iptables để xem các rule trong các table FILTER, NAT,
MANGLE
iptables -t filter -L // hoặc iptables -L
iptables -t nat -L
iptables -t mangle -L

- Tắt SuSEfirewall2
Thực hiện thiết lập filrewall bằng iptables command theo hướng dẫn sau:

2. Làm quen INPUT , OUTPUT , FORWARD chain trong bảng FILTER

- Xem nội dung bảng filter tại thời điểm hiện tại :
iptables -L

Cho phép tất cả packets di


chuyen INPUT, OUTPUT
hoặc
FORWARD

Trường ĐHCN TP.HCM - Khoa CNTT- Môn Quản trị Linux 2 - 11/2012 40
41
41

- Cài đặt rules để không cho phép máy client x.168.27.2/24 ping tới máy
RF

iptables -A INPUT -j DROP -p icmp –s x.168.27.2

iptables –L

Kiểm tra tác dụng của rule :


Ping từ máy x.168.27.2 tới máy RF (kết quả ? tại sao ?) Ping
từ máy RF tới x.168.27.2 (kết quả ? tại sao ?)
Ping từ máy x.168.27.2 tới máy x.168.28.2 (kết quả ? tại sao ?)

- Cài đặt rules để không cho phép máy client x.168.27.2/24 ping tới máy
RF
//xoá rule cũ
iptables -D INPUT -j DROP -p icmp –s x.168.27.2
hoặc
iptable –D INPUT 1
//tạo một rule mới
iptables -A OUTPUT -j DROP -p icmp –d x.168.27.2
iptables –L

Kiểm tra tác dụng của rule :


Ping từ máy x.168.27.2 tới máy RF (kết quả ? tại sao ?) Ping
từ máy RF tới x.168.27.2 (kết quả ? tại sao ?)
Ping từ máy x.168.27.2 tới máy x.168.28.2 (kết quả ? tại sao ?)

- Cài đặt rules để không cho phép 2 máy client ping thấy nhau .
//xoá rule cũ
iptables -D OUTPUT 1
//thêm rule mới
iptables -A FORWARD -j DROP -p icmp -s x.168.27.2
-d x.168.28.2

Kiểm tra tác dụng của rule …

- Để chuyen sang phần kế tiếp : xoá tất cả các rule trong filter table :
iptables -F

3. Thiết lập chính sách (policy) :


- Có thể xây dựng filewall từ 2 kiểu chính sách :
o ACCEPT policy : chấp nhận tất cả, sau đó thêm các rule DROP
một số trường hợp

Trường ĐHCN TP.HCM - Khoa CNTT- Môn Quản trị Linux 2 - 11/2012 41
42
42

o DROP policy : huỷ tất cả, sau đó thêm các rule ACCEPT một số trường
hợp
- Ví dụ
Cài đặt rules để không cho phép máy client x.168.27.2/24 ping tới máy
RF
Cách 1 : dùng ACCEPT policy
Thêm rule sau
iptables -A INPUT -j DROP -p icmp –s x.168.27.2

Cách 2 : dùng DROP policy trên INPUT chain

// Thiết lập chính sách mới


iptable –P INPUT DROP
iptable -L

// thêm các rule (*)


iptables -A INPUT -j DROP -p icmp –s x.168.27.2 iptables -
A INPUT -j ACCEPT -p icmp –s x.168.27.0/24 iptables –L

// test kết quả …

Cách 3 : dùng DROP policy trên INPUT chain và OUTPUT chain

// Thiết lập chính sách mới


iptables –P INPUT DROP

Trường ĐHCN TP.HCM - Khoa CNTT- Môn Quản trị Linux 2 - 11/2012 42
43
43

iptables –P OUTPUT DROP


iptables –L

// thêm các rule (* )

iptables -A INPUT -j DROP -p icmp –s x.168.27.2 iptables -A


INPUT -j ACCEPT -p icmp –s x.168.27.0/24 iptables -A
OUTPUT -j ACCEPT -p icmp –d x.168.27.0/24 iptables –L

//test kết quả …

(*)Chú ý : trật tự các rule là quan trọng , vì “một gói tin sẽ được xử lý bởi
rule đầu tiên mà đúng với nó”.

4. Các tham số trong lệnh iptables


- man iptables

Trường ĐHCN TP.HCM - Khoa CNTT- Môn Quản trị Linux 2 - 11/2012 43
44
44

Bài 1
Mục tiêu : sử dụng iptables thiết lập network firewalls

Điều kiện : tắt SuSEfirewall2 trên cả 2 máy destination và source. Đảm bảo policy trên 3
chain là ACCEPT

// thử test với dịch vụ khác (telnet ) -> ok

// thử test với ip source khác -> ok

//thử ssh từ firewall tới máy 192.168.1.10 ( output chain ACCEPT ) -> ok

// chú ý ???: các bản clone cần đặt hostname khác nhau : client1_tênsv,
router_tensv, client2_tensv

Lỗi kết nối (xh rất lâu ) – xem log ở đâu ???

Thay bằng để cấm một chiều (INPUT)

Cấm ping một chiều :

Cấm tất cả trừ một PC (sẽ cấm luôn cả chiều ngược lại )

Không cho phép ping từ PC1 đến PC2 qua router ( cho phép chiều ngược lại)
iptables -A FORWARD -p icmp --icmp-type echo-request -s 192.168.1.1 -j
DROP

Trường ĐHCN TP.HCM - Khoa CNTT- Môn Quản trị Linux 2 - 11/2012 44

You might also like