Tải bản đầy đủ (.docx) (47 trang)

Báo cáo thực tập quản trị mạng

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (986.95 KB, 47 trang )

TRƯỜNG ĐẠI HỌC ĐIỆN LỰC
KHOA CÔNG NGHỆ THÔNG TIN

BÁO CÁO MÔN HỌC
THỰC TẬP QUẢN TRỊ MẠNG
ĐỀ TÀI: XÂY DỰNG VÀ QUẢN TRỊ HỆ THỐNG WEB SERVER
TRÊN LINUX TÍCH HỢP NGINX & HAPROXY
Giảng viên hướng dẫn :Th.S NGUYỄN KHÁNH TÙNG
Sinh viên thực hiện

:DƯƠNG PHƯƠNG NAM

Lớp

: D11QTANM

Hà Nội, tháng 6 năm 2020
CHƯƠNG I: GIỚI THIỆU VỀ HỆ ĐIỀU HÀNH LINUX UBUNTU
1.1 Giới thiệu về Unix và Linux
1.1.1 Lịch sử ra đời của Linux
Vào năm 1991 tại Phần Lan, Linus B. Torvalds lúc đó là sinh viên ở trường Đại
học tổng hợp Hensinki đã dùng một máy tính cá nhân có trang bị bộ xử lí 386 để nghiên


cứu cách làm việc của nó. Do hệ điều hành MS-DOS không khai thác đầy đủ các đặc
tính của bộ xử lí 386, Linus đã sử dụng một hệ điều hành thương mại khác là Minix.Hệ
điều hành Minix là hệ điều hành Unix cỡ nhỏ.
Do đối mặt với các hạn chế của hệ điều hành này, Linus bắt đầu viết lại một số
của phần mềm để thêm chức năng và các điểm đặc trưng. Sau đó, ông thông báo kết
quả của mình miễn phí bằng Internet dưới tên gọi Linux - chữ viết tắt của Linus và
Unix. Phiên bản đầu tiên của Linux là 0.01 được tung ra vào tháng 8/1991 .


Các phiên bản đầu tiên có rất nhiều hạn chế. Tuy nhiên, sự kiện các mã nguồn
được truyền bá rộng rãi đã giúp phát triển hệ điều hành rất nhanh. Nhiều năm qua ,số
lượng các công ty khai thác đã không ngừng tăng lên. Ngày nay, Linux được phát triển
bởi nhiều người rải rác khắp nơi trên thế giới .
1.1.2 Chức năng của Linux
Hệ điều hành Linux có rất nhiều chức năng và chúng khai thác khả năng của các
hệ Unix hiện đại theo các cách sau:
- Đa xử lí, các bộ đa xử lí: có thể thực hiện nhiều chương trình đồng thời bất kể sử dụng

một hay nhiều bộ xử lí.
- Đa nền.
- Cho phép nhiều người sử dụng: giống như tất cả các hệ Unix, Linux cho phép nhiều người

sử dụng cùng làm việc trên một máy ở cùng thời điểm.
- Hỗ trợ truyền thông giao xử lí(Pipes, IPC, Sockets).
- Quản lí các thông điệp điều khiển khác nhau.
- Hệ thống quản lí thiết bị đầu cuối tuân thủ theo tiêu chuẩn POSIX. Linux cũng giả các

thiết bị đầu cuối cũng như điều khiển quá trình .
- Hỗ trợ một dải rộng các thiết bị ngoại vi, chẳng hạn như các cạc âm thanh, giao diện đồ

hoạ, mạng, giao diện hệ máy tính nhỏ....
- Buffer cache : vùng bộ nhớ được dành để làm vùng đệm cho các đầu vào và đầu ra từ các

quá trình khác nhau.

2


- Hệ thống quản lí bộ nhớ trang yêu cầu. Một trang sẽ không được nạp chừng nào nó không


thực sự cần thiết ở bộ nhớ.
- Các thư viện động và dùng chung: Các thư viện động chỉ được tải khi chúng thật sự cần

thiết và mã của chúng được dùng chung nếu nhiều ứng dụng đang dùng chúng
Tóm lại, Linux là mộ thệ Unix đầy đủ và mạnh. Nó có thể được ứng dụng dễ dàng.
Ngoài ra sự sử dụng công cộng rộng rãi đang trợ giúp nó phát triển một cách nhanh chóng.
1.1.3 Giới thiệu chung về Linux


Sơ bộ về nhân (Kernel)
Nhân (còn được gọi là hệ lõi) của Linux, là một bộ các module chương trình có

vai trò điều khiển các thành phần của máy tính, phân phối các tài nguyên cho người
dùng (các quá trình người dùng). Nhân chính là cầu nối giữa chương trình ứng dụng với
phần cứng. Người dùng sử dụng bàn phím gõ nội dung yêu cầu của mình và yêu cầu đó
được nhân gửi tới shell: Shell phân tích lệnh và gọi các chương trình tương ứng với
lệnh để thực hiện.


Sơ bộ về Shell
Một số nội dung chi tiết về shell (còn được gọi là hệ vỏ) trong Linux được trình

bày trong chương "Lập trình trên shell". Những nội dung trình bày dưới đây cung cấp
một cách nhìn sơ bộ về shell và vai trò của nó trong hoạt động chung của hệ điều hành.
Người dùng mong muốn máy tính thực hiện một công việc nào đó thì cần gõ lệnh
thể hiện yêu cầu của mình để hệ thống đáp ứng yêu cầu đó. Shell là bộ dịch lệnh và
hoạt động như một kết nối trung gian giữa nhân với người dùng:
Nếu một danh sách xuất hiện thì shell đang sử dụng là C-shell; ngược lại, nếu
xuất hiện thông báo "Command not found" thì shell đó là Bourne-shell.

Lệnh được chia thành 3 loại lệnh:
Lệnh thường trực (có sẵn của Linux). Tuyệt đại đa số lệnh được giới thiệu trong
tài liệu này là lệnh thường trực. Chúng bao gồm các lệnh được chứa sẵn trong shell và
các lệnh thường trực khác.

3


File chương trình ngôn ngữ máy: chẳng hạn, người dùng viết trình trên ngôn ngữ
C qua bộ dịch gcc (bao gồm cả trình kết nối link) để tạo ra một chương trình trên ngôn
ngữ máy.
File chương trình shell (Shell Scrip). Khi kết thúc một dòng lệnh cần gõ phím
ENTER để shell phân tích và thực hiện lệnh.
1.1.4 Sử dụng lệnh trong Linux
Như đã giới thiệu ở phần trên, Linux là một hệ điều hành đa người dùng, đa
nhiệm, được phát triển bởi hàng nghìn chuyên gia Tin học trên toàn thế giới nên hệ
thống lệnh cũng ngày càng phong phú; đến thời điểm hiện nay Linux có khoảng hơn
một nghìn lệnh.
Tuy nhiên chỉ có khoảng vài chục lệnh là thông dụng nhất đối với người dùng.
Tài liệu này cũng hạn chế giới thiệu khoảng vài chục lệnh đó. Chúng ta đừng e ngại về
số lượnglệnh được giới thiệu chỉ chiếm một phần nhỏ trong tập hợp lệnh bởi vì đây là
những lệnh thông dụng nhất và chúng cung cấp một phạm vi ứng dụng rộng lớn, đủ
thỏa mãn yêu cầu của chúng ta.
Cũng như đã nói ở trên, người dùng làm việc với máy tính thông qua việc sử
dụng trạm cuối: người dùng đưa yêu cầu của mình bằng cách gõ "lệnh" từ bàn phím và
giao cho hệđiều hành xử lý.
Khi cài đặt Linux lên máy tính cá nhân thì máy tính cá nhân vừa đóng vai trò
trạm cuối, vừa đóng vai trò máy tính xử lý.
Dạng tổng quát của lệnh Linux có thể được viết như sau:
# <Tên lệnh>[<các tùy chọn>] [<các tham số>] Trong đó:

Tên lệnh là một dãy ký tự, không có dấu cách, biểu thị cho một lệnh của Linux
hay một chương trình. Người dùng cần hệ điều hành đáp ứng yêu cầu gì của mình thì
phải chọn đúng tên lệnh. Tên lệnh là bắt buộc phải có khi gõ lệnh.
Các tham số có thể có hoặc không có, được viết theo quy định của lệnh mà chúng
ta sử dụng, nhằm cung cấp thông tin về các đối tượng mà lệnh tác động tới. Ý nghĩa của
các dấu [, <, >, ] được giải thích ở phần quy tắc viết lệnh.

4


Ký hiệu " " biểu thị việc gõ phím hết dòng <Enter>. Để kết thúc một yêu cầu,
người dùng nhất thiết phải gõ phím " ".
Ví dụ, khi người dùng gõ lệnh xem thông tin về các file:
# ls -l g

trong lệnh này:

ls là tên lệnh thực hiện việc đưa danh sách các tên file/ thư mục con trong
một thư mục,
-l là tham số khóa, cho biết yêu cầu xem đầy đủ thông tin về các đối tượng hiện
ra. Chú ý, trong tham số khóa chữ cái (chữ "l") phải đi ngay sau dấu trừ "-". Tương ứng
với lệnh ls còn có các tham số khóa -a, -L, ... và chúng cũng là các tùy chọn lệnh. Trong
một số tham số khóa có nhiều chữ cái thay cho một dấu "-" là hai dấu "--" ở đầu tham
số. Ví dụ, như trường hợp tham số --file của lệnh date. g* là tham số vị trí chỉ rõ người
dùng cần xem thông tin về các file có tên gọi bắt đầu là chữ cái "g".
Trong tài liệu này, quy ước rằng khi viết một lệnh (trong mô tả lệnh và gõ lệnh)
thì không cần phải viết dấu " " ở cuối dòng lệnh đó, song luôn ghi nhớ rằng phím
ENTER (" ") là bắt buộc khi gõ lệnh.
Lưu ý:
Linux (và UNIX nói chung) được xây dựng trên ngôn ngữ lập trình C, vì vậy khi

gõ lệnh phải phân biệt chữ thường với chữ hoa. Ngoại trừ một số ngoại lệ, trong Linux
chúng ta thấy phổ biến là:
-

Các tên lệnh là chữ thường,
Một số tham số có thể là chữ thường hoặc chữ hoa (ví dụ, trong lệnh date về thời
gian hệ thống thì hai tham số -r và -R có ý nghĩa hoàn toàn khác nhau). Tên các
biến môi trường cũng thường dùng chữ hoa.
Trong tài liệu này, tại những dòng văn bản diễn giải, sử dụng cách viết tên lệnh,

các tham số khóa bằng kiểu chữ không chân, đậm như date, -R, -r ...
Linux phân biệt siêu người dùng (tiếng Anh là superuser hoặc root, còn được gọi
là người quản trị hay người dùng tối cao hoặc siêu người dùng) với người dùng thông
thường. Trong tập hợp lệnh của Linux, có một số lệnh mà chỉ siêu người dùng mới
5


được phép sử dụng còn người dùng thông thường thì không được phép (ví dụ như lệnh
adduser thực hiện việc bổ sung thêm người dùng). Mặt khác trong một số lệnh, với một
số tham số khóa thì chỉ siêu người dùng được phép dùng, còn với một số tham số khác
thì mọi người dùng đều được phép (ví dụ như lệnh passwd thay đổi mật khẩu người
dùng).
Một dòng lệnh có thể có nhiều hơn một lệnh, trong đó lệnh sau được ngăn cách
bởi với lệnh đi ngay trước bằng dấu ";" hoặc dấu "|". Ví dụ về một số dòng lệnh dạng
này:
# ls -l; date
# head Filetext | sort >temp
Sau khi người dùng gõ xong dòng lệnh, shell tiếp nhận dòng lệnh này và phân
tích nội dung văn bản của lệnh. Nếu lệnh được gõ đúng thì nó được thực hiện; ngược
lại, trong trường hợp có sai sót khi gõ lệnh thì shell thông báo về sai sót và dấu nhắc

shell lại hiện ra để chờ lệnh tiếp theo của người dùng. Về phổ biến, nếu như sau khi
người dùng gõ lệnh, không thấy thông báo sai sót hiện ra thì có nghĩa lệnh đã được thực
hiện một cách bình thường.
1.2 Tìm hiểu Ubuntu
Ubuntu là phần mềm mã nguồn mở tự do, có nghĩa là người dùng được tự do
chạy, sao chép, phân phối, nghiên cứu, thay đổi và cải tiến phần mềm theo điều khoản
của giấy phép GNU GPL. Ubuntu được tài trợ bởi Canonical Ltd (chủ sở hữu là một
người Nam PhiMark Shuttleworth). Thay vì bán Ubuntu, Canonical tạo ra doanh thu
bằng cách bán hỗ trợ kĩ thuật. Bằng việc để cho Ubuntu tự do và mở mã nguồn,
Canonical có thể tận dụng tài năng của những nhà phát triển ở bên ngoài trong các
thành phần cấu tạo của Ubuntu mà không cần phải tự mình phát triển.
Canonical ủng hộ và cung cấp hỗ trợ cho bốn bản phân phối dựa trên Ubuntu
khác: Kubuntu và Xubuntu, vốn sử dụng KDE và Xfce như là môi trường desktop thay
cho hệ thống GNOME mặc định được sử dụng bởi Ubuntu; Edubuntu, một dự án con
và là phần bổ sung cho Ubuntu, được thiết kế cho môi trường học tập và sử dụng ở nhà;

6


và Ubuntu JeOS (phát âm “ju:s”), một phiên bản khác của Ubuntu, thiết kế cho các máy
ảo.
1.2.1 Các phiên bản của Ubuntu
*Phiên bản thông thường
Ubuntu 6.06 LTS Bình minh của Ubuntu (Dawn of Ubuntu) Ubuntu 6.06 LTS
Bình minh của Ubuntu (Dawn of Ubuntu) ứng với năm phát hành, và MM tương ứng
với tháng phát hành. Tên trong ngoặc là tên hiệu được đặt cho phiên bản trước khi phát
hành chính thức. Trong tháng 10 năm 2004, Ubuntu phát hành phiên bản đầu tiên,
Ubuntu 4.10. Mỗi phiên bản Ubuntu thông thường được hỗ trợ trong vòng 18 tháng,
chúng cũng được phát hành định kỳ 6 tháng 1 lần và việc nâng cấp lên phiên bản mới
hoàn toàn miễn phí. Người dùng được khuyến khích nâng cấp lên phiên bản mới để có

thể sử dụng các tính năng mới nhất mà ứng dụng cung cấp.
Phiên bản Ubuntu chính thức mới nhất hiện tại là Ubuntu 12.00 (Oneiric Ocelot).
*Phiên bản hỗ trợ lâu dài
Ubuntu cũng có những phiên bản hỗ trợ dài hạn “Long Term Support”, hỗ trợ
trong vòng 3 năm đối với máy tính để bàn và 5 năm đối với máy chủ. Ubuntu 10.04
(Lucid Lynx), ra mắt vào ngày 29, tháng 4 năm 2010, là phiên bản Long Term Support
hỗ trợ đến hiện tại. Canonical sẽ ra mắt phiên bản Long Term Support mỗi 2 năm một
lần, và dự kiến sẽ ra mắt bản Long Term Support tiếptheo vào năm 2012.
*Các dự án khác
Có những kế hoạch cho một nhánh tên mã là Grumpy Groundhog. Nó luôn là
nhánh phát triển và kiểm tra các bản không ổn định, kết thúc việc kiểm duyệt mã nguồn
của nhiều phần mềm và ứng dụng để sau đó chúng được phân phối như một phần của
Ubuntu. Điều này cho phép những người dùng có khả năng và các nhà phát triển kiểm
tra các phiên bản mới nhất của từng phần mềm riêng lẻ khi chúng vừa xuất hiện trong
ngày, mà không cần phải tự tạo các gói; việc này giúp đưa ra những cảnh báo sớm về
lỗi đóng gói trên một số kiến trúc nền. Bản Grumpy Groundhog chưa bao giờ được
công bố.
7


Hiện tại, Ubuntu được tài trợ bởi công ty Canonical. vào ngày 8 tháng 7 năm
2005, Mark Shuttleworth và công ty Canonical đã công bố việc thành lập Quỹ Ubuntu
và cung cấp nguồn quỹ ban đầu là 10 triệu dola Mỹ. Mục đích của tổ chức là bảo đảm
cho việc hỗ trợ và phát triển của tất cả phiên bản Ubuntu trong tương lai, bao gồm cả
việc gửi đĩa cài đặt Ubuntu cho mọi yêu cầu cho toàn thế giới.
1.2.2 Đặc điểm, cách cài đặt ứng dụng Linux trên Ubuntu
* Đặc điểm
Ubuntu 9.04 chạy dưới chế độ LiveCD
Ubuntu kết hợp những đặc điểm nổi bật chung của hệ điều hành nhân Linux, như
tính bảo mật trước mọi virus và malware, khả năng tùy biến cao, tốc độ, hiệu suất làm

việc, và những đặc điểm riêng tiêu biểu của Ubuntu như giao diện bắt mắt, bóng bẩy,
cài đặt ứng dụng đơn giản, sự dễ dàng trong việc sao lưu dữ liệu và sự hỗ trợ của một
cộng đồng người dùng khổng lồ.
*Cài đặt
Mỗi phiên bản phát hành có một đĩa chạy trực tiếp, cho phép người dùng xem xét
phần cứng của họ có tương thích với hệ điều hành hay không trước khi cài đặt lên đĩa
cứng bằng phần mềm Ubiquity. Tập tin ảnh đĩa có thể được tải về từ trang chủ Ubuntu,
và các đĩa cài đặt có thể được cung cấp bởi bên thứ ba. Trong phiên bản Ubuntu 12.10,
tập tin ảnh đĩa chỉ có thể được ghi lên đĩa DVD, USB, hoặc đĩa cứng, vì dung lượng của
nó đã vượt quá giới hạn tối đa của đĩa CD. Đĩa cài đặt Ubuntu yêu cầu máy tính có từ
256 MB RAM trở lên. Quá trình cài đặt Ubuntu sử dụng giao diện đồ họa, tốc độ cài
đặt phụ thuộc vào cấu hình máy tính, trung bình là từ 20 - 30 phút.
Ngoài ra, người dùng có thể cài đặt Ubuntu lên một đĩa ảo bên trong Windows
bằng bộ cài đặt Wubi. Mặc dù tốc độ xử lý có thể bị giảm sút so với cài đặt đầy đủ,
nhưng bù lại, cài đặt bên trong Windows không yêu cầu người dùng phải phân vùng lại
đĩa cứng và có thể được gỡ bỏ dễ dàng từ ngay trong Windows.
Ubuntu cung cấp một tập hợp đầy đủ các tính năng có thể hoạt động ngay lập tức
từ bản cài đặt chuẩn, nhưng lại vừa vặn trong 1 đĩa CD. Có một đĩa chạy trực tiếp và
8


một đĩa cài đặt truyền thống cho mỗi lần phát hành. CD chạy trực tiếp cho phép người
dùng xem xét phần cứng của họ có tương thích với hệ điều hành hay không trước khi
cài đặt lên đĩa cứng. Đĩa Ubuntu, Edubuntu được gửi miễn phí cho bất cứ ai yêu cầu, và
tập tin ảnh đĩa cũng có sẵn để tải về. Ubuntu khi chạy cần 256 MB RAM, và khi cài đặt
lên đĩa cứng, chiếm 3GB dung lượng đĩa trống.
*Giao diện
Ubuntu sử dụng giao diện đồ họa thân thiện GNOME, qua đó hướng đến sự đơn
giản hóa trong quá trình sử dụng. Đặc điểm có thể nhận thấy rõ ở giao diện mặc định
của Ubuntu là các màu chuyển giữa nâu và cam. Ubuntu đi kèm với CompizFusion, để

tạo sự bóng bẩy trong quá trình sử dụng.
1.3 Tìm hiểu về các lệnh cơ bản thường dùng trong Linux
Khi mở một shell, chúng ta cần đến tài khoản kích hoạt vào thư mục chủ (thông
thường nằm trong /home/tên_người_dùng).
Chú ý rằng mỗi lệnh đều có nhiều tùy chọn riêng của mình. Để xem các tùy chọn
cho một lệnh cụ thể, đơn giản chúng ta chỉ cần gõ "man <command>" (trong đó: man là
từ khóa; command là tên lệnh). Một điểm quan trọng cần chú ý là trong các hệ điều
hành Linux, câu lệnh có phân biệt chữ hoa, chữ thường. “A” sẽ được hệ điều hành hiểu
là khác so với “a”.
Để vào hệ thống file, dùng:
-

pwd: đưa ra ngoài màn hình thư mục đang hoạt động (ví dụ: /etc/ssh).

-

cd: thay đổi thư mục (ví dụ: cd .. – ra một cấp thư mục hiện tại; cd vidu – vào thư
mục /vidu).

-

ls: đưa ra danh sách nội dung thư mục.

-

mkdir: tạo thư mục mới (mkdir tên_thumuc).

-

touch: tạo file mới (touch ten_file).


-

rmdir: bỏ một thư mục (rmdir ten_thumuc).

-

cp: copy file hoặc thư mục (cp file_nguồn file_đích).
9


-

mv: di chuyển file hoặc thư mục; cũng được dùng để đặt lại tên file hoặc thư mục
(mv vị_trí_cũ vị_trí_mới hoặc mv tên_cũ tên_mới).

-

rm: loại bỏ file (rm tên_file).

Để tìm kiếm file, chúng ta có thể dùng:
-

find <tiêu chuẩn tìm kiếm>: dùng cho các tên file.

-

grep < tiêu chuẩn tìm kiếm>: để tìm nội dung trong file.

Để xem một file, chúng ta có thể dùng:

-

more <tên file>: hiển thị file theo từng trang.

-

cat < tên file>: hiển thị tất cả file.

-

head < tên file>: hiển thị các dòng đầu tiên.

-

tail < tên file>: hiển thị các dòng cuối cùng (có thể hữu ích trong những trường hợp
như khi chúng ta muốn xem thông tin cuối cùng của một file hệ thống).
Để chính sửa file, chúng ta phải sử dụng trình soạn thảo tích hợp sẵn trên dòng

lệnh. Thông thường, đây là vi và được dùng với cú pháp: vi <tên file>.
Để giải nén một lưu trữ (thông thường có đuôi tar.gz), chúng ta phải dùng lệnh
tar với cú pháp tar -xvf <tên_file>.
Để in một file, dùng lệnh lpr <tên_file>. Chú ý là chúng ta phải có một số
daemon hoạt động để quản lý máy in. Thông thường đây là các cup (chủ yếu là UNIX
Printing System) có thể sử dụng cho tất cả các phân phối chính.
Để loại bỏ file khỏi hàng đợi ở máy in (chúng ta có thể lên danh sách hàng đợi
bằng lệnh lpq), sử dụng câu lệnh lprm <tên_file>.
Để lắp hoặc gỡ bỏ thiết bị (thêm vào hệ thống file với vai trò như một phương
tiện được phép sử dụng), dùng:
-


mount /mnt/floppy: lắp thêm ổ mềm.

-

umount /mnt/floppy: gỡ bỏ ổ mềm.

-

mount /mnt/cdrom: lắp ổ CD-ROM.
10


-

mount /mnt/cdrom: gỡ ổ DC-ROM.
Các thiết bị này thường được cài và cho phép sử dụng một cách tự động. Nhưng

có thể một ngày đẹp trời nào đó chúng ta lại phải tự mình thực hiện công việc này khi
có lỗi xảy ra. Đừng lo lắng!
Để tạo một phân vùng
Đầu tiên, tạo một thư mục trong /mnt (mkdir /mnt/ổ_đĩa_mới). Sau đó sử dụng
lệnh mount (mount /dev/source /mnt/ ổ_đĩa_mới), trong đó /dev/source là thiết bị (tức
phân vùng) chúng ta muốn lắp thêm vào hệ thống file.
Nếu muốn kết nối tới một host từ xa, sử dụng lệnh ssh. Cú pháp là ssh
<tên_host>.
Quản lý hệ thống:
-

ps: hiển thị các chương trình hiện thời đang chạy (rất hữu ích: ps là cái nhìn toàn bộ
về tất cả các chương trình).

Trong danh sách đưa ra khi thực hiện lệnh ps, chúng ta sẽ thấy có số PID

(Process identification - nhân dạng tiến trình).
Con số này sẽ được hỏi đến khi muốn ngừng một dịch vụ hay ứng dụng, dùng
lệnh kill <PID>.
-

top: hoạt động khá giống như Task Manager trong Windows. Nó đưa ra thông tin về
tất cả tài nguyên hệ thống, các tiến trình đang chạy, tốc độ load trung bình… Lệnh
top
-d <delay> thiết lập khoảng thời gian làm tươi lại hệ thống. Chúng ta có thể đặt

bất kỳ giá trị nào, từ .1 (tức 10 mili giây) tới 100 (tức 100 giây) hoặc thậm chí lớn hơn.
- uptime: thể hiện thời gian của hệ thống và tốc độ load trung bình trong khoảng thời gian

đó, trước đây là 5 phút và 15 phút.
Thông thường tốc độ load trung bình được tính toán theo phần trăm tài nguyên
hệ thống (vi xử lý, RAM, ổ cứng vào/ra, tốc độ load mạng) được dùng tại một thời
điểm. Nếu tốc độ được tính toán là 0.37, tức có 37% tài nguyên được sử dụng. Giá trị
lớn hơn như 2.35 nghĩa là hệ thống phải đợi một số dữ liệu, khi đó nó sẽ tính toán
11


nhanh hơn 235% mà không gặp phải vấn đề gì. Nhưng giữa các phân phối có thể khác
nhau một chút.
- free: hiển thị thông tin trên bộ nhớ hệ thống.
- ifconfig <tên_giao_diện>: để xem thông tin chi tiết về các giao diện mạng; thông thường

giao diện mạng ethernet có tên là eth(). Chúng ta có thể cài đặt các thiết lập mạng như
địa chỉ IP hoặc bằng cách dùng lệnh này (xem man ifconfig). Nếu có điều gì đó chưa

chính xác, chúng ta có thể stop hoặc start (tức ngừng hoặc khởi_động) giao diện bằng
cách dùng lệnh ifconfig <tên_giao_diện> up/down.
- passwd: cho phép chúng ta thay đổi mật khẩu (passwd người dùng sở hữu mật khẩu hoặc

tên người dùng khác nếu chúng ta đăng nhập hệ thống với vai trò root).
- useradd: cho phép chúng ta thêm người dùng mới (xem man useradd).

Dù ở phân phối nào, chúng ta cũng có thể dùng phím TAB để tự động hoàn chỉnh
một lệnh hoặc tên file. Điều này rất hữu ích khi chúng ta quen với các lệnh. Chúng ta
cũng có thể sử dụng các phím lên, xuống để cuộn xem các lệnh đã nhập. Chúng ta có
thể dùng lệnh đa dòng trên một dòng. Ví dụ như, nếu muốn tạo ba thư mục chỉ trên một
dòng, cú pháp có thể là: mkdir thư_mục_1 ; mkdir thư_mục_2 ; mkdir thư_mục_3.
Một điều thú vị khác nữa là các lệnh dạng pipe. Chúng ta có thể xuất một lệnh
thông qua lệnh khác. Ví dụ: man mkdir | tail sẽ đưa ra thông tin các dòng cuối cùng
trong trang xem "thủ công" của lệnh mkdir.
Nếu lúc nào đó được yêu cầu phải đăng nhập với tài khoản gốc (tức "siêu" admin
của hệ thống), chúng ta có thể đăng nhập tạm thời bằng cách dùng lệnh su. Tham số -1
(su-1) dùng để thay đổi thư mục chủ và cho các lệnh đã hoặc đang dùng.
Chú ý là chúng ta cũng sẽ được nhắc một mật khẩu.
Để thoát hay đóng shell, gõ exit hoặc logout.

12


CHƯƠNG 2: QUẢN LÝ NGƯỜI DÙNG TRÊN HỆ THỐNG
2.1 Thông tin và quản trị người dùng
2.1.1 User
User là người có thể truy cập đến hệ thống.
User có username và password.
Có hai loại user: super user và regular user.

Mỗi user còn có một định danh riêng gọi là UID.
Định danh của người dùng bình thường sử dụng giá trị bắt đầu từ 500.

-

2.1.2 Group
-

Group là tập hợp nhiều user lại.
Mỗi user luôn là thành viên của một group.
Khi tạo một user thì mặc định một group được tạo ra.
Mỗi group còn có một định danh riêng gọi là GID.
Định danh của group thường sử dụng giá trị bắt đầu từ 500.

2.1.2 Tập lệnh quản lý User và Group
A. Tạo User:
Cú pháp: #useradd [option] <username>






-c “Thông tin người dùng”
-d <Thư mục cá nhân>
-m : Tạo thư mục cá nhân nếu chưa tồn tại
-g <nhóm của người dùng>
Ví dụ: #useradd –c “Nguyen Van A – Server Admin” –g serveradmin vana
Thay


Đổi thông tin user:




Cú pháp: #usermod [option] <username>
Những option tương tự Useradd
Ví dụ: #usermod –g kinhdoanh vana //chuyển vana từ nhóm server admin
sang nhóm kinh doanh.

B. Xóa User




Cú pháp: #userdel [option] <username>
Vídụ: #userdel –r vana
Khóa/Mở khóa người dùng

13




passwd –l <username> / passwd –u <username> usermod –L <username> /
usermod –U <username>

Trong /etc/shadow có thể khóa tài khoản bằng cách thay từ khóa x bằng từ khóa
*.
C. Tạo Group




Cú pháp: #groupadd <groupname>
Ví dụ: #groupadd serveradmin

D. Xóa Group



Cú pháp: #groupdel <groupname>
Ví dụ: #groupdel <serveradmin>

Xem thông tin về User và Group





Cú pháp: #id <option><username>
Ví dụ: #id -g vana //xem GroupID của user vana
Cú pháp: #groups <username>
Ví dụ: #groups vana //xem tên nhóm của user vana

2.1.4 Những file lien quan đến User và Group
•#/etc/passwd
•Mỗi

dòng trong tập tin gồm có 7 trường, được phân cách bởi dấu hai chấm.
•#/etc/group

•Mỗi dòng trong tập tin gồm có 4 trường, được phân cách bởi dấu hai chấm.
•#/etc/shadow
•Lưu mật khẩu đã được mã hóa và chỉ có user root mới được quyền đọc.
2.1.5 Quyền hạn và các lênh liên quan đến quyền hạn
Trong Linux có 3 dạng đối tượng :
•Owner

(người sở hữu).
owner (nhóm sở hữu).
•Other users (những người khác).
•Group

Các quyền hạn :
•Read

– r – 4 : cho phép đọc nội dung.
•Write – w – 2 : dùng để tạo, thay đổi hay xóa.
•Execute – x – 1 : thực thi chương trình.
14


Ví dụ : Với lệnh ls –l ta thấy : [root@task ~]# ls -l total 32
•-rw-------.

1 root root 1416 Jan 10 14:06 anaconda-ks.cfg
•-rw-r--r--. 1 root root 15522 Jan 10 14:06 install.log -rw-r--r--. 1 root root 5337 Jan
10 14:06 install.log.syslog drwxr-xr-x 6 root root 4096 Feb 9 10:02 softs
•Ngoài ra, chúng ta có thể dùng số.
•Ví dụ : quyền r, w, x : 4+2+1 = 7
•Tổ hợp 3 quyền trên có giá trị từ 0 đến 7.

Các lệnh liên quan đến quyền hạn
•Lệnh

Chmod : dùng để cấp quyền hạn.
•Cú pháp : #chmod <specification><file>
o Ví dụ: #chmod 644 baitap.txt
//cấp quyền cho owner có thể ghi các
nhóm các chỉ có quyền đọc với file taptin.txt
•Lệnh Chown : dùng thay đổi người sở hữu.
•Cú pháp : #chown <owner><filename>
•Lệnh Chgrp : dùng thay đổi nhóm sở hữu.
•Cú pháp : #chgrp <group><filename>
2.2 Tạo người dùng bằng chế độ dòng lệnh
Có hai phương pháp sử dụng câu lệnh trong Terminal để tạo người dùng là
useradd và adduser.
2.2.1 Useradd
Với useradd sẽ tự động tạo các file của người dùng trên hệ thống, tạo thư mục
home cho người dùng và một số cấu hình khác phụ thuộc vào các chức năng được sử
dụng. Khi một tài khoản người dùng được tạo ra thì một tài khoản nhóm người dùng
cùng tên với người dùng cũng sẽ được tạo ra trên hệ thống (UID = GROUP ID). Cú
pháp: sudo useradd [Chức năng] <tên người dùng> Một sốchức năng chính sửdụng
trong useradd:
•-p password: Đặt password cho user. Ngoài ra, ta có thể sử dụng lệnh sudo passwd

ten_nguoi_dung, sau đó hệ thống sẽ cho ta nhập mật khẩu mới cho tài khoản.
•-c “comment”: Chức năng cho phép người tạo có thể thêm thông tin cá nhân của người

dùng lên hệ thống. Chức năng này tương tự việc nhập thông tin trong lệnh adduser. Một
lưu ý là mọi thông tin khi nhập phải được đặt trong dấu “…”.
15



•-d /home/directory: Tạo thư mục home cho người dùng. Ta thường đặt thư mục home

trùng với tên người dùng. Nếu không sử dụng, hệ thống cũng tự động đặt như vậy.
•-e yyyy-mm-dd: Ngày vô hiệu hoá truy cập. Chức năng này xác định ngày mà tài khoản

đó bị vô hiệu hoá trên hệthống.
•-f yyyy-mm-dd: Số ngày password sẽ vô hiệu hoá khi tài khoản hết hạn.
•-g group: Xác định tài khoản người dùng thuộc nhóm người dùng nào trên hệ thống.
•-G group: Xác định tài khoản người dùng thuộc những nhóm người dùng nào trên hệ

thống vì một người dùng có thể thuộc nhiều nhóm khác nhau.
•-s shell: Xác định shell mặc định cho người dùng khi đăng nhập hệthống.

Ví dụ shell của root là /bin/bash.
•-u uid: Xác định sốUID của người dùng.

Ví dụ: Để tạo tài khoản người dùng tên student1, thư mục home là student1,
thuộc nhóm người dùng user1 và số UID của người dùng là 555 và ngày hết quyền truy
cập là 01/08/2013. Ta viết câu lệnh như sau:
Sudo useradd –d /home/student1 –g user 1 –u 555 –e 2016-10-15 Dùng lệnh cat để
kiểm tra, ta được:
Student1:x:555:1001::/home/student1:/bin/sh
2.2.2 Adduser
Sử dụng adduser sẽ đơn giản hơn useradd vì hệ thống không yêu cầu người tạo
phải thêm vào các tham số. Hơn nữa, nó sẽ hiển thị các tuỳ chọn thông tin cá nhân để
người tạo có thể nhập. Tuy nhiên, các tham số như group, group id, uid, home
directory… sẽ được hệ thống tạo mặc định.
Cú pháp: sudo adduser <tên người dùng>

•Ví

dụ: Ta thêm tài khoản có tên caotu: sudo adduser caotu kết quả lệnh:

16


•Sau

đó hệ thống yêu cầu nhập password:

•Tiếp

theo, cập nhật thông tin cá nhân của user caotu rồi yêu cầu xác nhận thông tin.

•Nếu

chưa đúng, ta chọn n, hệ thống sẽ cho người tạo nhập lại từ đầu và có hiển thị

những thông tin đã nhập ở trước để đối chiếu:

•Dùng

lệnh cat để kiểm tra, ta được:

•Nhược

điểm của lệnh adduser là muốn cài đặt các chức năng theo ý muốn giống

như useradd, ta phải sử dụng đến lệnh thay đổi thông tin người dùng usermod:

Cú pháp: sudo usermod [Chức năng] <tên người dùng>
17


•Ví

dụ: Ở trên, mặc định hệ thống cho UID của user caotu là 1003.

Ta viết lệnh như sau đểthay đổi UID:
•Sudo

usermod –u 1616 caotu
•Dùng lệnh cat để kiểm tra, ta được:

2.3 Phân quền truy cập tài nguyên trong Ubuntu
Ubuntu là hệ điều hảnh mở dựa trên Linux. Ubuntu tạo ra môi trường nhiều người
dùng chung tài nguyên. Chính vì vậy việc bảo mật các tài nguyên này rất quan trọng.
Người quản trị cần phải thiết lập quyền hạn cho tập tin, thư mục sao cho không bị thay đổi
nội dung, không bị xóa. Để nắm rõ vấn đề này, chúng ta cần tìm hiểu quyền hạn của người
dùng trên FileSystem.
Đây cũng là một trong số những ly do người sử dụng đánh giá rất cao khả năng bảo
mật, an toàn. Ngoài ra việc phân quyền tốt sẽ tránh việc hệ thống file system của Ubuntu
bị phá hỏng nhờ đó hệ thống vận hành một cách ổn định hơn.
2.3.1 Quyền truy cập trên file system
Trong Linux mọi đối tượng đều có dạng là tập tin. Tất cả tập tin đều có người sở
hữu và quyền truy cập.
Linux cho phép người dùng xác định các quyền đọc (read), ghi (write) và thực thi
(execute) cho từng đối tượng. Có ba loại đối tượng:
Người sở hữu (owner) : 3 ký tự đầu tiên (rw-)
• Nhóm sở hữu (group): 3 ký tự tiếp theo (r--)

• Người khác (others) : 3 ký tựcuối cùng (r--)
Quyền đọc: cho phép chúng ta đọc nội dung của tập tin. Đối với thư mực,




quyền đọc cho phép chúng ta di chuyển vào thư mục bằng lệnh cd và xem nội


dung của thư mục.
Quyền ghi: cho phép chúng ta thay đổi nội dung hay xóa tập tin. Đối với thư
mục, quyền ghi cho phép chúng ta tạo ra, xóa hay thay đổi tên các tập tin, thư
mục con trong thư mục cha, nhưng không phụ thuộc vào quyền cụ thể của tập

18


tin trong thư mục. Như vậy, quyền ghi của thư mục sẽ vô hiệu hóa các quyền


truy cập của tập tin trong thư mục.
Quyền thực thi: cho phép chúng ta gọi chương trình lên bộ nhớ cách cách
nhập tên tập tin từ bàn phím hay bằng chuột. Đối với thư mục, chúng ta chỉ
có thể chuyển vào (cd) thư mục nếu chúng ta có quyền thực thi với thư mục.

Theo cách tính số nhị phân, ta có thể xác định số quyền hạn của một đối tượng
bằng cách tính tổng giá trị các quyền.

19



2.3.2 Gán quyền truy cập trên Ubuntu Linux
* Sử dụng giao diện đồ họa
Click chuột phải vào thư mục, chọn Porperties

Gán quyền cho thư mục:


Mục Owner: chúng ta có thể thay đổi người sở hữu và gán quyền truy cập thư mục



(Folder access), gán quyền truy cập cho tập tin (File access).
Mục Group: chúng ta có thể thay đổi nhóm sở hữu và gán quyền truy cập thư mục



(Folder access), gán quyền truy cập cho tập tin cho nhóm (File access).
Mục Other: chúng ta có thể gán quyền truy cập thư mục (Folder access), gán



quyền truy cập cho tập tin cho nhóm (File access).
Mục Execute: chúng ta gán quyền thực thi cho tập tin.

Nhấn Close để gán quyền.

20



Gán quyền cho file

Ví dụ: Mình có thư mục test và cấp quyền như sau. Mình đã tạo sẵn 1 user tên là
tucao để test. Tucao thuộc nhóm Desktop user do mình tạo.
Sau khi phân quyền như cửa sổ trên, để thử nghiệm, mình sử dụng terminal để
test, và đây là kết quả.

Máy báo lỗi, tucao không có quyền tạo thư mục.
2.3.3 Lệnh chmod
Cấp quyền hạn cho tập tin/thư mục. Chỉcó chủ sở hữu và superuser (thường là root)
mới có quyền thực hiện lệnh này. Đây là một lệnh cực kỳ quan trọng, chính vì vậy
21


trong báo cáo này của nhóm, nhóm xin trình bày kỹ hơn về các thao tác cũng như sử
dụng, quản lý với lệnh chmod.
Để sử dụng lệnh, chúng ta phải bật Terminal, tất cả các thao tác chúng ta quản lý tài
nguyên thực chất đều chạy qua terminal. Ubuntu/Linux hỗ trợ một số giao diện ảo
(console ảo) và trong đó có một số giao diện là CLI (Command-line interface).
Để bật Terminal click vào Applications →Accessories →Terminal Cú pháp :
#chmod [nhóm người dùng] [thao tác] [quyền hạn] [tập tin/thư mục] Trong đó :
•Nhóm

người dùng : u là user ; g là group ; o là others ; a là all.
tác : + là thêm quyền ; - là xóa quyền ; = là gán quyền bằng
•Quyền : r là read ; w là write ; x là execute
•Thao

Như đã lưu ý ở trên, muốn sử dụng lệnh chmod thì ta cẩn sử dụng supperuser (root)
là tài khỏan có quyền hạn cao nhất để thực hiện lệnh.

Chúng ta có thể gõ:
•sudo

bash sudo su

Ví dụ: Có một file tên tu.txt được đặt trong thư mục var/www của File System.
Và tôi muốn phân quyền cho file này.
Tài khoản supper user mặc định phải là root.
Để thực hiện lệnh chomd chúng ta có thể chmod khi chúng ta ở thư mục khác,
chúng ta sẽ thêm đường dẫn vào câu lệnh, để đơn giản và dễ nhìn. Tôi sẽ dùng lệnh cd để
chuyển tới thư mục chứa tệp tin “tu.txt”.
•Đăng

nhập vào supperuser (root)
•Kiểm tra thuộc tính của file trong thư mục, sử dụng lệnh : ls -l
•Hoặc tên file: ls -l tu.txt
•Kiểm tra thuộc tính của FILE
•Trong đó -rw-r—r-- là phân quyền của file.
•Owner: Có quyền Read, Write (4 + 2 = 6)
•Group: Có quyền Read (4)
•Orther: Có quyền Read (4)
•Tương đương với : 644 (mặc định file do linux tạo ra là 644 và 755 với thư mục)
•Tài khoản Fithou và root đều là owner do đó ta sẽ ngắt quyền với quyền cho các tài
khỏan owner
giờ ta sẽ phân quyền để Owner (chủ sởhữu không đọc được file).

•Bây

22



•Vậy

ta sẽ gõ chmod 044 tu.txt
•Để kiểm tra đọc file, ta gõ lệnh “cat tu.txt”
•Khi ta dùng lệnh "cat tu.txt” hệ thống sẽ báo Permisssion denied.
•Tiếp theo ta sẽ cấp quyền cho fithou có quyền Read file tu.txt
•Gõ: chmod 444 tu.txt
•Gõ: cat tu.txt đểkiểm tra
•Như vậy nội dung file đã đựợc đọc và hiển thị ra màn hình.
Ngoài ra thay vì việc sử dụng các con số như 777, 646, 101, 404 như trên thì ta có
thể sử dụng việc gán theo nhóm theo đã đề cập ở trên
Gán thêm quyền ghi cho group
•#chmod

g+w tu.txt hoặc #chmod 775 tu.txt

Xóa quyền read trên group và others
•#chmod

go-r tu.txt hoặc #chmod 700 tu.txt

2.3.4 Lệnh chown
Thay đổi người sở hữu, nhóm sở hữu cho tập tin/thưmục.
•Cú

pháp : #chown [tên người sở hữu : nhóm sở hữu] [tập tin/thư mục]
•#chown -R [tên người sở hữu : nhóm sở hữu] [tập tin/thư mục]
•-R (recursive) cho phép thay đổi người sở hữu, nhóm sở hữu của thư mục và tất cả
thư mục con bên trong.

Ví dụ: ta có thư mục “test” và user tucao trước đó đã không được cấp quyền đểcó
thểtạo và sửa file trong thưmục test. Và giờmình muốn thay đổi quyền từ fithou cho tucao.






Tại root hoặc fithou mình sẽgõ #chown tucao test
Tiếp theo đểkiểm tra, ta cần login lại vào tài khoản tucao.
Gõ tiếp: login tucao sau đó nhập pass.
Tiếp đến sử dụng lệnh cd để di chuyển tới thư mục www chứa thư mục test.
User tucao có thể thực hiện được việc tạo thư mục có tên tucao.

2.3.5 Lệnh chgrp
Thay đổi nhóm sở hữu cho tập tin/thư mục.



Cú pháp : #chgrp [nhóm sở hữu] [tập tin/thư mục]
Ví dụ: tiếp tục với thư mục test #chgrp tucao test

23


Khi thực hiện lệnh này, giống như lệnh chown thay vì chuyển quyền của user, nó
sẽ thay đổi quyền cho nhóm.


Nhập lệnh trên terminal.




Hoặc có thể kiểm tra bằng lệnh : ls -l test

24


CHƯƠNG 3: QUẢN LÝ CÁC GÓI CÀI ĐẶT TRÊN HỆ THỐNG
Có nhiều cách khác nhau để cài đặt phần mềm, ứng dụng trên Linux. Một vài trong
số đó thì khá phức tạp (…), một vài cách thì đơn giản như cài đặt từ các file .EXE trên
Windows.
Hầu hết các HĐH Linux cũng có công cụ quản lý, cài đặt, gỡ bỏ phần mềm như
Add or Remove Programs trong Windows. Ví dụ, trongUbuntu, nếu server của có nối
mạng thì chúng ta có thể download và cài đặt ứng dụng tự động thông qua công cụ
Synaptic Package Manager (giao diện GUI) hoặc sử dụng dòng lệnh apt-get trong
Terminal… File cài đặt cho ứng dụng trên Linux thường có phần mở rộng như .deb,
.rpm, .bin, .tar, tar.gz, INSTALL,.sh …. Mỗi loại file cài đặt này có 1 cách thức thực thi
cài đặt riêng.
3.1 Cài phần mềm từ source trên linux
3.1.1 Căn bản của việc cài đặt
Điều đầu tiên khi chúng ta tiến hành cài đặt là chúng ta phải có mã nguồn của gói
đó trước. Hãy lên mạng search bất kì gói nào chúng ta thích như thư viện Gtk+ hoặc
Gnome… Sau khi tải về, thông thường có dạng là .gz hoặc .bz2, đây đều là 2 chuẩn nén
khác nhau, sau khi giải nén bằng gunzip cho gz hoặc bunzip2 cho bz2 thì các gói sẽ có
dạng mới là tar, cũng là một chuẩn nén khác, chúng ta có thể giải nén bằng lệnh, tar
-xvf… Thế nhưng đế dễ dàng và tiết kiệm dung lượng ổ đĩa thì chúng ta có thể gộp các
câu lệnh đó thành 1 như sau:




Đối với gói .gz: # tar -zxvf tengoi.gz
Đối với gói .bz2: # tar -jxvf tengoi.bz2

Sau khi giải nén xong và tìm tập tin INSTALL để đọc cụ thể cho phần hướng dẫn
cài đặt. Thế nhưng hầu như các gói đều tuân theo các thao tác tuần tự sau:




# ./configure
# make
# make install

Chỉ có vài gói đặc biệt sẽ có riêng cách cài đặt nhưng khi chúng ta đã nắm vững
nguyên tắc chung thì dù là cách thức nào chúng ta cũng có thể xoay xở được. Chúng ta
25


×