bài tập 1: cài đặt linux - vocongminh's blogº¿t thông tin chi tiết về tập tin...

20
Bài tập thực hành Linux – Hệ Đại học 1 Bài tập 1: Cài đặt Linux 1. Cài Linux trên máy ảo VMWare từ file ISO sử dụng Easy Install 2. Cài Linux trên máy ảo VMWare từ file ISO không sử dụng Easy Install Chọn định dạng phân vùng là ext4 (với Ubuntu hoặc CentOS 6.6 trở xuống) hoặc xfs (với CentOS 7 trở lên) Cấu hình cho thư mục /home là một phân vùng riêng Cấu hình không gian hoán chuyển (swap) Cấu hình các gói phần mềm sẽ được cài vào hệ thống 3. Tiến hành đăng nhập và đăng xuất ở chế độ đồ họa (GUI) và chế độ dòng lệnh (text mode). 4. Sử dụng các lệnh tắt máy và khởi động máy bằng nhiều cách khác nhau. 5. Đọc hiểu về các mức của runlevel rồi dùng lệnh init thực hiện các runlevel. 6. Thực hành về hoàn thiện lệnh (gõ thiếu tên lệnh rồi dùng phím Tab 2 lần) và cách sử dụng lệnh sử (dùng phím mũi tên lên xuống để chọn lại lệnh cũ). 7. Thực hiện một số lệnh đơn giản như ls, cd, cal, date 8. Sử dụng lệnh man để gọi màn hình trợ giúp lệnh (cách sử dụng các phím để điều khiển thoát màn hình man) Bài tập 2: Managing Users and Groups 1. Tạo user sv 2. Đặt password cho user sv là 123456 3. Cho biết user sv thuộc group nào (đọc trong file /etc/group) 4. Cho biết home directory của user sv (đọc trong file /etc/passwd) 5. Tạo group hocvien 6. Sửa thông tin cho user sv thuộc group root (group chính) và group hocvien (group phụ) 7. Sửa ghi chú cho user sv là “Nguyen Van A” 8. Login bằng user sv (sử dụng lệnh logout để thoát khỏi user hiện tại) 9. Sử dụng quyền root, lock account sv

Upload: phamtruc

Post on 25-May-2018

234 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Bài tập 1: Cài đặt Linux - VoCongMinh's BLOGº¿t thông tin chi tiết về tập tin và thư mục vừa tạo, có đúng các quyền (permission) thư mục và tập

Bài tập thực hành Linux – Hệ Đại học 1

Bài tập 1: Cài đặt Linux

1. Cài Linux trên máy ảo VMWare từ file ISO sử dụng Easy Install

2. Cài Linux trên máy ảo VMWare từ file ISO không sử dụng Easy Install

Chọn định dạng phân vùng là ext4 (với Ubuntu hoặc CentOS 6.6 trở xuống)

hoặc xfs (với CentOS 7 trở lên)

Cấu hình cho thư mục /home là một phân vùng riêng

Cấu hình không gian hoán chuyển (swap)

Cấu hình các gói phần mềm sẽ được cài vào hệ thống

3. Tiến hành đăng nhập và đăng xuất ở chế độ đồ họa (GUI) và chế độ dòng

lệnh (text mode).

4. Sử dụng các lệnh tắt máy và khởi động máy bằng nhiều cách khác nhau.

5. Đọc hiểu về các mức của runlevel rồi dùng lệnh init thực hiện các runlevel.

6. Thực hành về hoàn thiện lệnh (gõ thiếu tên lệnh rồi dùng phím Tab 2 lần) và

cách sử dụng lệnh sử (dùng phím mũi tên lên xuống để chọn lại lệnh cũ).

7. Thực hiện một số lệnh đơn giản như ls, cd, cal, date

8. Sử dụng lệnh man để gọi màn hình trợ giúp lệnh (cách sử dụng các phím để

điều khiển và thoát màn hình man)

Bài tập 2: Managing Users and Groups

1. Tạo user sv

2. Đặt password cho user sv là 123456

3. Cho biết user sv thuộc group nào (đọc trong file /etc/group)

4. Cho biết home directory của user sv (đọc trong file /etc/passwd)

5. Tạo group hocvien

6. Sửa thông tin cho user sv thuộc group root (group chính) và group hocvien

(group phụ)

7. Sửa ghi chú cho user sv là “Nguyen Van A”

8. Login bằng user sv (sử dụng lệnh logout để thoát khỏi user hiện tại)

9. Sử dụng quyền root, lock account sv

Page 2: Bài tập 1: Cài đặt Linux - VoCongMinh's BLOGº¿t thông tin chi tiết về tập tin và thư mục vừa tạo, có đúng các quyền (permission) thư mục và tập

Bài tập thực hành Linux – Hệ Đại học 2

10. Login bằng user sv, cho biết kết quả

11. Unlock account sv, login thử bằng user này

12. Yêu cầu user sv phải thay đổi password trong 7 ngày tới

13. Set thời gian hết hạn cho account sv là ngày 30/09/2008

14. Sửa lại giờ hệ thống: date –s “1 Oct 2008”, login bằng user sv và cho biết kết

quả.

Bài tập 3: File permission

1. Tạo 2 user là user1 và user2 không có password thuộc cùng nhóm có

tên là normal. Đăng nhập vào hệ thống bằng user1. Lưu ý: phải tạo nhóm

normal trước khi tạo các user

a. Dùng lệnh umask cho biết mặt nạ của user1?

b. Thay đổi mặt nạ của user1 sao cho khi tạo thư mục có quyền ngầm định

như sau: Owner: rwx; Group: rw_; Other: r_ _.

c. Với mặt nạ trên, khi tạo ra tập tin sẽ có quyền ngầm định là gì?

d. Hãy tạo tập tin baitap.txt và thư mục Mydir. Dùng lệnh ls –l để cho

biết thông tin chi tiết về tập tin và thư mục vừa tạo, có đúng các

quyền (permission) thư mục và tập tin như quy định của mặt nạ không?

2. Thực hiện tiếp theo của câu 1. Đứng từ user1 chuyển tạm sang user2 rồi

thực hiện các việc sau trong thư mục Mydir của user1. Chú ý: user2 cùng

nhóm normal với user1.

a. Tạo tập tin.

b. Copy tập tin từ thư mục khác vào Mydir.

c. Copy tập tin từ Mydir ra thư mục khác.

d. Xóa tập tin trong Mydir.

e. Tạo thư mục con trong Mydir.

f. Hỏi kết quả như thế nào? Có được hay không? Dùng kiến thức ở Table 8-1

trong sách “Fundamentals of Linux” để giải thích.

g. Chuyển trở về user1.

Page 3: Bài tập 1: Cài đặt Linux - VoCongMinh's BLOGº¿t thông tin chi tiết về tập tin và thư mục vừa tạo, có đúng các quyền (permission) thư mục và tập

Bài tập thực hành Linux – Hệ Đại học 3

3. Tiếp theo câu 1 và câu 2. Tạo thêm user3 thuộc nhóm normal2. Đăng nhập

vào hệ thống bằng user3 hoặc chuyển tạm sang user3 (chuyển tạm khi user

hiện hành khác user3), rồi thực hiện các việc sau trong thư mục Mydir của

user1. Chú ý: user3 không cùng nhóm với user1.

a. Tạo tập tin.

b. Copy tập tin từ thư mục khác vào Mydir.

c. Copy tập tin từ Mydir ra thư mục khác.

d. Xóa tập tin trong Mydir.

e. Tạo thư mục con trong Mydir.

f. Hỏi kết quả như thế nào? Có được hay không?

4. Tiếp theo câu 1 và câu 2. Đứng từ user1 chuyển tạm sang root rồi thực hiện

các việc sau trong thư mục Mydir. Chú ý: user root không cùng nhóm

với user1, nhưng root có quyền quản trị hệ thống.

a. Tạo tập tin.

b. Copy tập tin từ thư mục khác vào Mydir.

c. Copy tập tin từ Mydir ra thư mục khác.

d. Xóa tập tin trong Mydir.

e. Tạo thư mục con trong Mydir.

f. Hỏi kết quả như thế nào? Có được hay không?

g. Chuyển trở về user1.

5. Đăng nhập vào hệ thống bằng user root. Hãy cho biết mặt nạ của user root

bằng lệnh umask không có option và có option là S.

a. Tạo tập tin fileroot1.txt, fileroot2.txt và thư mục Dirroot trong /root. Cho

biết permission của chúng. Dùng lệnh ls liệt kê các permission của chúng

ra giấy.

b. Chuyển chủ sở hữu và nhóm sở hữu của fileroot.txt và Dirroot sang user1

và nhóm normal (sử dụng lệnh chown và chgrp). Cho biết

permission của chúng và so sánh với các quyền đã ghi ra giấy ở câu trên.

c. Chuyển tạm từ user root sang user1. Dùng lệnh chmod theo chế độ

Symbolicic Mode thực hiện các việc sau:

Page 4: Bài tập 1: Cài đặt Linux - VoCongMinh's BLOGº¿t thông tin chi tiết về tập tin và thư mục vừa tạo, có đúng các quyền (permission) thư mục và tập

Bài tập thực hành Linux – Hệ Đại học 4

Thêm quyền đọc cho nhóm normal đối với tập tin fileroot1.txt.

Cấm quyền đọc cho các user không thuộc nhóm normal.

Thêm quyền thực thi cho user1, thêm quyền đọc cho nhóm normal và

các user không thuộc nhóm normal.

Gán quyền đọc và viết cho mọi người.

d. Dùng lệnh chmod theo chế độ Octal Mode thực hiện các công việc

như trên đối với tập tin fileroot2.txt.

e. Chuyển trở về user root.

6. Tạo user sv1, cho vào group hocvien

a. User sv tạo thư mục /tmp/sv

b. Tạo tap tin /tmp/sv/sv.txt, phân quyên 774 cho tập tin này. Giải

thích ý nghĩa quyền 774.

c. Phân quyền g=r cho thư mục /tmp/sv, hỏi user sv1 có ls nội dung thư mục

này được không? Có cd vào thư mục /tmp/sv được không?

d. Phân quyền g=rx cho thư mục /tmp/sv, user sv1 có ls nội dung thư mục

này được không?

e. User sv1 có tạo được tin sv1.txt trong thư mục /tmp/sv được không?

f. User sv1 có đọc nội dung của file /tmp/sv/sv.txt được không?

g. User sv1 có ghi đè dữ liệu vào file này được không?

h. User sv1 có xóa file này được không?

i. chmod g=rwx (thêm quyên w) cho thư mục /tmp/sv

j. User sv1 có xóa file /tmp/sv/sv.txt được hay không?

k. User sv1 có tạo tập tin /tmp/sv/sv1.txt được không?

l. Chuyển quyền sở hữu toàn thư mục /tmp/sv cho user sv1.

m. User sv tạo tập tin /tmp/test.txt, phân quyền 777 cho tập tin này. User

sv1có xóa tập tin này được hay không?

n. Ghi chú về các nhận xét đã rút ra được về file/dir permission.

Bài tập 4: Hệ thống tập tin và quản trị hệ thống tập tin

1. Cơ bản về quản trị hệ thống tập tin

Page 5: Bài tập 1: Cài đặt Linux - VoCongMinh's BLOGº¿t thông tin chi tiết về tập tin và thư mục vừa tạo, có đúng các quyền (permission) thư mục và tập

Bài tập thực hành Linux – Hệ Đại học 5

Mục đích: Không sử dụng giao diện đồ họa, sử dụng command line để thực hiện các

lệnh cơ bản về file-folder.

a. Login vào hệ thống. Sử dụng lệnh để cho biết user hiện tại là gì.

b. Mở terminal.

c. Login vào Linux dưới quyền root sử dụng lệnh su.

d. Cho biết thư mục hiện hành.

e. Liệt kê danh sách file, folder trong thư mục hiện hành

f. Tạo cấu trúc cây thư mục như sau:

g. Tạo file vi.txt folder tc1 có nội dung bài thơ “Hương Thầm”.

h. Delete folder ncd2

i. Copy 3 file bất kỳ trong folder /etc vào folder ncd1

j. Copy toàn bộ folder ncd1 vào cb

k. Di chuyển file vi.txt (yêu cầu g) vào thư mục cd

l. Chuyển vị trí thư mục hiện hành về cd

m. Chuyển vị trí thư mục hiện hành về /root

n. Hiển thị nội dung file vi.txt sử dụng lệnh more, less, cat

o. Tạo file log_time rỗng trong thư mục cd

p. Hiển thị ngày giờ tạo file log_time nói trên.

q. Đổi tên file log_time thành log_time.txt và chứa trong tc2

Page 6: Bài tập 1: Cài đặt Linux - VoCongMinh's BLOGº¿t thông tin chi tiết về tập tin và thư mục vừa tạo, có đúng các quyền (permission) thư mục và tập

Bài tập thực hành Linux – Hệ Đại học 6

r. Tạo file my_friend.txt trong thư mục tc1 chứa danh sách tên 2 sinh

viên ngồi cạnh trong lớp. (sử dụng lệnh cat tên_file, bấm Ctrl+D ñể kết

thúc )

s. Log out. Bấm <Ctrl-D> để thoát.

2. Quản trị hệ thống tập tin (tiếp theo)

a. Chuyển vào thư mục /etc/init.d

b. So sánh và giải thích kết quả của lệnh pwd và pwd -P

c. So sánh và giải thích kết quả khi thực hiện các nhóm lệnh sau:

cd / && pwd && cd -P /etc/init.d && pwd && cd

cd / && pwd && cd -L /etc/init.d && pwd && cd ~

d. Chuyển vào thư mục /etc

e. So sánh và giải thích kết quả của các lệnh ls, ls -i, ls -l, ls -a, ls -ila

f. Thực hiện hiển thị kết xuất từng lệnh trên theo từng trang màn hình

g. Các tập tin có mầu white, blue, green, cyan, orange có kiểu gì?

h. Giải thích kết quả khi thực hiện các lệnh

mkdir /a/b/c/d/e/f/g/h

mkdir /a /a/b /a/b/c

mkdir -p /a/b/c/d/e/f

3. Bài tập về soft link (symbolic link)

a. Tạo đường dẫn và tập tin như sau: /grandfather/father/son/rootfile.txt.

Phải nhập nội dung cho rootfile.txt

b. Xây dựng đường dẫn /grandmother/mother/daughter/softfile.txt (trong

đó softfile là symbolic link đến rootfile.txt). Kiểm tra xem nội dung của

softfile.txt có giống rootfile.txt không?

c. Dùng lệnh tee –a để nhập thêm nội dung cho softfile.txt. Kiểm tra

xem rootfile.txt có thay đổi nội dung không?

d. Dùng lệnh tee –a để nhập thêm nội dung cho rootfile.txt. Kiểm tra

xem softfile.txt có thay đổi nội dung không?

Page 7: Bài tập 1: Cài đặt Linux - VoCongMinh's BLOGº¿t thông tin chi tiết về tập tin và thư mục vừa tạo, có đúng các quyền (permission) thư mục và tập

Bài tập thực hành Linux – Hệ Đại học 7

e. Dùng lệnh ls với option thích hợp để kiểm tra tập tin rootfile.txt và

softfile.txt có bao nhiêu link, có những permission gì và thuộc quyền sở

hữu của user nào.

f. Dùng lệnh diff để so sánh hai tập tin rootfile.txt và softfile.txt, cho nhận xét.

g. Trong thư mục daughter, tạo thêm một file softfile2.txt là soft link đến

rootfile.txt. Tiến hành xóa file softfile.txt. Sau đó kiểm tra sự tồn tại

và nội dung của rootfile.txt, softfile.txt, softfile2.txt. Cho nhận xét.

h. Tiến hành xóa file rootfile.txt. Sau đó kiểm tra sự tồn tại và nội

dung của rootfile.txt, softfile.txt, softfile2.txt. Cho nhận xét.

i. Trong linux có bao nhiêu lệnh cho tạo symbolic link?

4. Bài tập về hard link (physical link)

a. Trong thư mục /abc tạo tập tin rootdoc.txt có nhập nội dung. Trong thư

mục /def tạo tập tin harddoc.txt là hard link tới rootdoc.txt. Trong thư mục

/ghi tạo tập tin harddoc2.txt là hard link đến rootdoc.txt.

b. Thực hiện các công việc tương tự như bài 8 ở trên. Cho nhận xét từng

phần như câu 1.

5. Bài tập về wc và sort

a. Hiển thị số lượng từ trong một file text.

b. Hiển thị số dòng trong một file text.

c. Hiển thị số ký tự trong một file text.

d. Hiển thị danh sách các file trong thư mục /usr/bin và sắp sếp kết quả trả

lại theo thứ tự giảm dần / tăng dần.

e. Hiển thị số lượng các file trong một thư mục cụ thể nào đó (ví dụ : /etc).

Gợi ý : sử dụng cơ chế ống lệnh (pipe)

6. Bài tập về lệnh head, tail

a. Dùng lệnh cat xem /etc/passwd rồi copy tập tin passwd sang

/mydir/mypasswords.txt

b. Dùng lệnh head cho biết thông tin về 3 user đầu trong mypasswords.txt

c. Dùng lệnh tail cho biết thông tin về 3 user cuối trong mypasswords.txt

d. Lệnh nào trong ba lệnh trên cho ta biết thông tin từ user thứ 4 cho đến hết.

e. Cho biết thông tin của user thứ 4 đến user thứ 15.

Page 8: Bài tập 1: Cài đặt Linux - VoCongMinh's BLOGº¿t thông tin chi tiết về tập tin và thư mục vừa tạo, có đúng các quyền (permission) thư mục và tập

Bài tập thực hành Linux – Hệ Đại học 8

f. Sử dụng lệnh wc cho thích hợp để cho biết tổng số user trong

mypassword.txt

Bài tập 5: Phân quyền trên hệ thống tập tin và phân quyền

bằng tập tin sudoers

1. Phân quyền trên hệ thống tập tin

a. Tạo thư mục tmp dưới thư mục UX và cho nó quyền truy nhập rwxr-x---

b. Tạo một tệp rỗng có tên wordday dưới tmp (bằng lệnh touch). Cho nó

quyền truy nhập rw-r----- và thử đọc nội dung của nó.

c. Bỏ quyền đọc (r) của user và thử đọc lại wordday

d. Bỏ quyền ghi (w) của user của thư mục tmp và thử xoá tệp wordday

e. Bỏ quyền đọc (r) của user của thư mục tmp và thử hiển thị nội dung của nó

f. Bỏ quyền chạy (x) của user của thư mục tmp và thử đi vào thư mục này

g. Trả lại quyền rwx cho user của thư mục tmp

h. Thử cho bạn quyền ghi (w) vào thư mục chủ của một thành viên của nhóm

của bạn

i. Xoá nội dung và bản thân thư mục tmp

2. Phân quyền bằng sudo

a. Thực hiện một số lệnh có kèm lệnh sudo theo cú pháp cơ bản: sudo <lệnh

cần thực hiện>. Tạo user1 và thực hiện lại các lệnh trên cũng với lệnh sudo. Nhận xét.

b. Dùng lệnh visudo, thực hiện các yêu cầu sau:

Cho phép user1 quyền tắt máy của mình

Cho phép người dùng user1 khởi động server apache trên máy hiện tại

và trên máy linux01

Cho phép user subadmin được quyền tắt máy mà không cần cung cấp

mật khẩu

Cho phép user subadmin được thực hiện bất kỳ lệnh nào trong

/usr/bin ở máy linux01

Page 9: Bài tập 1: Cài đặt Linux - VoCongMinh's BLOGº¿t thông tin chi tiết về tập tin và thư mục vừa tạo, có đúng các quyền (permission) thư mục và tập

Bài tập thực hành Linux – Hệ Đại học 9

Bài tập 6: Quản lý tiến trình và dịch vụ

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

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

a. Xem tất cả các process : (dạng cây)

ps -eljH | more

pstree

b. 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

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

ps -e |grep cron

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

ps -eljH |more

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

ps

hoặc

ps -l

f. 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

a. Xem danh sách các SIGNAL của lệnh kill

kill -l

b. Xem ý nghĩa của 4 SIGNAL thường dùng (đọc manual)

c. Chạy lệnh sau và thực hiện theo yêu cầu

Page 10: Bài tập 1: Cài đặt Linux - VoCongMinh's BLOGº¿t thông tin chi tiết về tập tin và thư mục vừa tạo, có đúng các quyền (permission) thư mục và tập

Bài tập thực hành Linux – Hệ Đại học 10

find / -name "cron*"

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

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 nào? Ở 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. 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)

Hãy viết lệnh hủy tiến trình bash bằng lệnh kill?

e. 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>

Để 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

4. Tìm hiểu dịch vụ lập lịch cron:

Page 11: Bài tập 1: Cài đặt Linux - VoCongMinh's BLOGº¿t thông tin chi tiết về tập tin và thư mục vừa tạo, có đúng các quyền (permission) thư mục và tập

Bài tập thực hành Linux – Hệ Đại học 11

a. 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 hoặc nano

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.

b. 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

Bài tập 7: Boot loader và Run level

1. Bootloader

a. Liệt kê boot menu của GRUB

b. Hack password của root

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

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

Hệ thống sẽ boot vào shell với tài khoản root mà không cần password. Đặt

password mới cho root

c. Thiết lập password vào chế độ edit Grub menu list.

Mở file /boot/grub/menu.lst và thêm vào dòng password abc

Khởi động lại , quan sát và thao tác trên màn hình Grub để kiểm tra

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.

d. Thiết lập khởi động ở single mode

e. Thiết lập password khởi động cho từng menu

f. Thêm menu

2. Runlevel

a. Thực hiện và tìm hiểu chức năng, cách sử dụng của các lệnh runlevel, init x

, nano /etc/inittab, chkconfig -s , chkconfig –l

b. Liệt kê các dịch vụ được khởi động ở runlevel 3 và 5

Page 12: Bài tập 1: Cài đặt Linux - VoCongMinh's BLOGº¿t thông tin chi tiết về tập tin và thư mục vừa tạo, có đúng các quyền (permission) thư mục và tập

Bài tập thực hành Linux – Hệ Đại học 12

c. Tắt dịch vụ DNS Client ở runlevel 2. Kiểm tra.

d. Liệt kê các dịch vụ được khởi động qua INET

e. Khởi động lại Linux, từ màn hình bootloader chuyển sang runlevel 3. Kiểm

tra xem các dịch vụ bluetooth, irda, ip6tables chạy ở những runlevel nào.

Tắt các dịch vụ này ở tất cả runlevel

// 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

f. Thiết lập để Linux khởi động mặc định ở runlevel 3. Chạy lệnh system-

config-printer để xem có chạy được không. Chuyển sang runlevel 5. Chạy

lại lệnh system-config-printer. Tắt tiến trình system-config-printer từ

dòng lệnh.

Dưới đây là 1 ví dụ tương tự:

// 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

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

kill -15 <pid_kcalc>

g. Cài đặt dịch vụ sshd. Thiết lập để sshd chạy ở tất cả runlevel. Kiểm tra.

Page 13: Bài tập 1: Cài đặt Linux - VoCongMinh's BLOGº¿t thông tin chi tiết về tập tin và thư mục vừa tạo, có đúng các quyền (permission) thư mục và tập

Bài tập thực hành Linux – Hệ Đại học 13

Bài tập 8: Quản trị gói phần mềm

1. Tìm hiểu và nắm vững cách hoạt động của các lệnh aptitude, dpkg, apt-get

2. Cài đặt x-unikey/ibus-unikey

a. Chuẩn bị

Chép gói x-unikey vào đĩa usb

Gắn usb vào PC & Mount đĩa usb

mount –t vfat <mô tả> </mnt/usb>

Chép gói x-unikey vào home’s user

b. Cài đặt gói X-Unikey

Dùng cmd dpkg –i <tên gói uni-key>

3. Khởi động Unikey

a. Chuẩn bị

Tạo local US.UTF-8 HAY VN.UTF-8

mkdir /usr/share/locale/en_US.UTF8

localedef -v -ci en_US -f UTF8 /usr/share/locale/en_US.UTF8

Sửa đổi biến XMODIFIERS (khai báo phương thức input của X-Window)

XMODIFIERS="@im=unikey“

Sửa đổi biến LANG để dùng font unicode

export LANG=vi_VN.UTF-8

b. Khởi động

$unikey

4. Cài đặt webmin từ source

5. Remove webmin

6. Cài đặt webmin từ file .deb

7. Xem danh sách các gói phần mềm đang được cài trên máy

8. Kiểm tra xem gói sshd có đang được cài trên máy không. Nếu không, tiến

hành cài sshd

9. Với các SV dùng các hệ điều hành theo hướng của Red Hat, vd CentOS, cần

tìm hiểu thêm và thực hành về các lệnh rpm, yum

Page 14: Bài tập 1: Cài đặt Linux - VoCongMinh's BLOGº¿t thông tin chi tiết về tập tin và thư mục vừa tạo, có đúng các quyền (permission) thư mục và tập

Bài tập thực hành Linux – Hệ Đại học 14

Bài tập 9: Mạng căn bản

1. Login với user root

2. Xem cấu hình mạng hiện tại

3. Dùng GUI để đổi địa chỉ IP của máy thành 172.28.250.x (với x là số máy),

subnet mask 255.255.255.0, DNS thành 172.28.250.250, gateway thành

172.28.250.254

4. Dùng text mode để khôi phục lại cấu hình IP ban đầu

5. Các câu tiếp theo SV có thể kết hợp giữa máy thực với máy ảo, hoặc giữa các

máy Linux trên cùng 1 cụm máy để hoàn thành.

a. Sử dụng và tìm hiểu các tham số của lệnh ping

b. Sử dụng và tìm hiểu các tham số của lệnh ifconfig

c. Sử dụng và tìm hiểu các tham số của lệnh netstat

d. Sử dụng và tìm hiểu các tham số của lệnh host và dig

e. Sử dụng và tìm hiểu các tham số của lệnh route

f. Sử dụng và tìm hiểu các tham số của lệnh nmap

g. Sử dụng và tìm hiểu các tham số của lệnh traceroute

h. Sử dụng và tìm hiểu các tham số của lệnh ip

6. Cấu hình các file sau:

a. /etc/hosts

b. /etc/resolv.conf

c. /etc/nsswitch.conf

d. /etc/sysconfig/network

e. /etc/sysconfig/network-scripts/ifcfg-eth[n] hoặc

/etc/network/interfaces

Bài tập 10: Biểu thức chính quy (Regular Expression)

Mục tiêu của bài này:

Sử dụng biểu thức chính quy

Các lệnh quan trọng trong bài này và một số bài tập sau: grep, awk và sed. Các

lệnh khác cũng cần nắm rõ: find, less, head, tail, sort, cut, wc

Page 15: Bài tập 1: Cài đặt Linux - VoCongMinh's BLOGº¿t thông tin chi tiết về tập tin và thư mục vừa tạo, có đúng các quyền (permission) thư mục và tập

Bài tập thực hành Linux – Hệ Đại học 15

1. Hãy tạo tập tin dictionary trong thư mục HOME của bạn. Nhập vào đây 1 số

từ tiếng Anh. Liệt kê tất cả những từ trong file này có từ 2 hoặc 3 nguyên âm

nằm sát nhau.

2. Để chống spam, một người quản trị mailserver administrator muốn reject

mail đến từ các máy có hostname dạng như sau: ip.domain. Chẳng hạn

111.110-136-217.adsl.skynet.be

ip-195-95-93-123.dsl.scarlet.be

83-134-130-40.Leuven.GoPlus.FastDSL.tiscali.be

Hãy tạo 1 regex khớp với các tên máy theo dạng trên. Kiểm tra bằng cách

dùng 1 file log hoặc tự tạo ra file dành cho việc kiểm tra

3. Tạo 1 log file có nội dung là tên và phiên bản trình duyệt được sử dụng để

truy xuất vào 1 web server. Giả sử:

Firefox/2.0.0.1

Firefox/2.0.0.4

Firefox/2.0.0.6

IE/11.0.0.1234

Chrome/42.1.2342

Firefox/2.0.0.4

Firefox/3.0.0.4

Các bạn có thể thêm các dòng khác nữa để file phong phú hơn. Sau đó, hãy

dùng regexp để liệt kê tất cả phiên bản firefox 2.0.0.x được dùng để kết nối

đến web server này

4. Đếm số từ trong file dictionary bắt đầu bằng ‘ver’ và kết thúc bằng ‘en’

5. Liệt kê những từ trong file dictionary có chứa 1 số lẻ phụ âm

6. Tạo regular expression để khớp với tất cả những từ trong file dictionary có

10 ký tự không trùng lắp. Hướng dẫn: đầu tiên, tìm các từ có 10 ký tự, sau

đó, kiểm tra xem các ký tự đó có duy nhất không bằng cách dùng

backreference

Page 16: Bài tập 1: Cài đặt Linux - VoCongMinh's BLOGº¿t thông tin chi tiết về tập tin và thư mục vừa tạo, có đúng các quyền (permission) thư mục và tập

Bài tập thực hành Linux – Hệ Đại học 16

Bài tập 11: I/O Redirection và Pipe

1. Xác định xem điều gì xảy ra sau mỗi lệnh sau. File foo chứa gì sau chuỗi lệnh

này?

[user@localhost ]$ cd ; rm -rf lab11.1 ; mkdir lab11.1 ; cd lab11.1

[user@localhost lab11.1]$ date > foo

[user@localhost lab11.1]$ cat foo foo foo

[user@localhost lab11.1]$ cat foo foo foo >foo

2. Xác định xem điều gì xảy ra sau mỗi lệnh sau. File bar chứa gì sau chuỗi lệnh

này?

[user@localhost lab11.1]$ date > foo

[user@localhost lab11.1]$ cat foo

[user@localhost lab11.1]$ cp foo bar >foo

3. Xác định xem điều gì xảy ra sau mỗi lệnh sau. File out chứa gì sau chuỗi lệnh

này?

[user@localhost ]$ cd ; rm -rf lab11.2 ; mkdir lab11.2 ; cd lab11.2

[user@localhost lab11.2]$ date >foo

[user@localhost lab11.2]$ cat foo

[user@localhost lab11.2]$ cp foo bar

[user@localhost lab11.2]$ cp foo bar >out

4. Xác định xem điều gì xảy ra sau mỗi lệnh sau. File a, b,c chứa gì sau chuỗi

lệnh này?

[user@localhost ]$ cd ; rm -rf lab11.3 ; mkdir lab11.3 ; cd lab11.3

[user@localhost lab11.3]$ date >a

[user@localhost lab11.3]$ cat a

[user@localhost lab11.3]$ date >a >b >c

5. Xác định xem điều gì xảy ra sau mỗi lệnh sau. File out, both chứa gì sau chuỗi

lệnh này?

[user@localhost ]$ cd ; rm -rf lab11.4 ; mkdir lab11.4 ; cd lab11.4

[user@localhost lab11.4]$ date >foo

Page 17: Bài tập 1: Cài đặt Linux - VoCongMinh's BLOGº¿t thông tin chi tiết về tập tin và thư mục vừa tạo, có đúng các quyền (permission) thư mục và tập

Bài tập thực hành Linux – Hệ Đại học 17

[user@localhost lab11.4]$ cat foo nofile

[user@localhost lab11.4]$ cat foo nofile >out

[user@localhost lab11.4]$ cat out

[user@localhost lab11.4]$ cat foo nofile >both 2>&1

[user@localhost lab11.4]$ cat both

6. Xác định xem điều gì xảy ra sau mỗi lệnh sau. File bar chứa gì sau chuỗi lệnh

này?

[user@localhost ]$ cd ; rm -rf lab11.5 ; mkdir lab11.5 ; cd lab11.5

[user@localhost lab11.5]$ date > bar

[user@localhost lab11.5]$ date >> bar

[user@localhost lab11.5]$ date > bar

[user@localhost lab11.5]$ date >> bar

[user@localhost lab11.5]$ date >> bar

7. Xác định xem điều gì xảy ra sau mỗi lệnh sau. Mục tiêu của việc dùng đường

dẫn /dev/null là gì?

[user@localhost lab11.5]$ date >foo

[user@localhost lab11.5]$ cat foo nofile

[user@localhost lab11.5]$ cat foo nofile 2>/dev/null

[user@localhost lab11.5]$ find /etc >out

[user@localhost lab11.5]$ find /etc >out 2>/dev/null

[user@localhost lab11.5]$ find /etc >/dev/null 2>out

8. Xác định xem điều gì xảy ra sau mỗi lệnh sau.

[user@localhost ]$ cd ; rm -rf lab11.6 ; mkdir lab11.6 ; cd lab11.6

[user@localhost lab11.6]$ ls -l /bin

[user@localhost lab11.6]$ ls -l /bin | less

[user @localhost lab11.6]$ grep 'the' /etc/fstab

[user @localhost lab11.6]$ grep 'none' /etc/fstab

Page 18: Bài tập 1: Cài đặt Linux - VoCongMinh's BLOGº¿t thông tin chi tiết về tập tin và thư mục vừa tạo, có đúng các quyền (permission) thư mục và tập

Bài tập thực hành Linux – Hệ Đại học 18

[user @localhost lab11.6]$ grep 'the' /etc/fstab | grep 'none'

[user@localhost lab11.6]$ nl /etc/passwd

[user@localhost lab11.6]$ nl /etc/passwd | head -n 5

[user@localhost lab11.6]$ nl /etc/passwd | head -n 5 | tail -n 1

9. Lý giải vì sao trong 4 lệnh cuối trong nhóm lệnh dưới đây, từ hi không xuất

hiện trên màn hình

[user@localhost lab11.6]$ date >foo

[user@localhost lab11.6]$ cat foo

[user@localhost lab11.6]$ echo hi | cat

[user@localhost lab11.6]$ echo hi | cat foo

[user@localhost lab11.6]$ echo hi | cat <foo

[user@localhost lab11.6]$ echo hi | ls

[user@localhost lab11.6]$ echo hi | pwd

10. Lý giải vì sao kết xuất của lệnh dưới đây lại là 0 0 0

[user@localhost lab11.6]$ date >foo | wc

11. Giải thích chức năng của lệnh tr trong ví dụ dưới đây

[user@localhost lab11.6]$ echo 'hello world'

[user@localhost lab11.6]$ echo 'hello world' | tr 'a-z' 'A-Z'

Bài tập 12: DHCP, DNS

1. Xây dựng mạng với sơ đồ sau

Page 19: Bài tập 1: Cài đặt Linux - VoCongMinh's BLOGº¿t thông tin chi tiết về tập tin và thư mục vừa tạo, có đúng các quyền (permission) thư mục và tập

Bài tập thực hành Linux – Hệ Đại học 19

2. Cấu hình để Server 1 cấp địa chỉ IP động cho cả 2 mạng LAN trên (x là số

máy SV ngồi)

3. Cấu hình để Server 1 cấp địa chỉ IP tĩnh cho PC2, trong khi vẫn cấp địa chỉ IP

động cho các máy khác trong LAN1 và LAN2

4. Chỉnh sửa sơ đồ mạng trên để triển khai DHCP Relay Agent

5. Cấu hình DNS server trên Server1 để phân giải tên miền it.edu

6. Xây dựng thêm 1 DNS server phân giải tên miền sv.edu. Cấu hình để 2 DNS

server hiện có có thể truy vấn lẫn nhau

7. Cấu hình các thông số khác: phân giải thuận, phân giải nghịch. Làm quen các

loại record DNS.

Bài tập 13: Web, Mail, FTP

1. Xây dựng mạng với sơ đồ sau

2. Cài đặt và cấu hình web server Apache trên Server1 để cung cấp dịch vụ

WWW cho PC1 và PC2

3. Cài đặt 1 ứng dụng web cụ thể, vd Joomla, Wordpress hỗ trợ Apache, MySQL

và PHP.

Page 20: Bài tập 1: Cài đặt Linux - VoCongMinh's BLOGº¿t thông tin chi tiết về tập tin và thư mục vừa tạo, có đúng các quyền (permission) thư mục và tập

Bài tập thực hành Linux – Hệ Đại học 20

4. Cấu hình HTTPS. Cài Webmin để test giao thức HTTPS.

5. Cài đặt postfix và dovecot để hỗ trợ dịch vụ mail. Dùng Thunderbird để test

POP3 và IMAP

6. Cài roundcube để hỗ trợ Web mail cho mailserver này

7. Cài vsftpd để hỗ trợ FTP trên mạng này. Sử dụng người dùng local của Linux

để sử dụng dịch vụ

8. Cấu hình cho phép và không cho phép người dùng anonymous

9. Nâng cao: người dùng ảo, quota, SSL