Báo cáo thực tập quản trị mạng
Trang 1TRƯỜ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
Trang 2CHƯƠNG I: GIỚI THIỆU VỀ HỆ ĐIỀU HÀNH LINUX UBUNTU1.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 Đạihọ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êncứ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 đặctí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ếtquả 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ểnbở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 chophé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 Linuxcũng giả các thiết bị đầu cuối cũng như điều khiển quá trình
Trang 3- 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
- Hệ thống quản lí bộ nhớ trang yêu cầu Một trang sẽ không được nạp chừngnà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úngthậ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ùngchú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ườidù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ớiphầ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ớilệ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ìnhbà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ấpmộ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ệnhthể 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ếuxuất hiện thông báo "Command not found" thì shell đó là Bourne-shell
Trang 4Lệ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 trongtà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
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ônngữ 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ímENTER để 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, đanhiệ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ơnmộ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 đó:
Trang 5Tê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 Linuxhay 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ủacác dấu [, <, >, ] được giải thích ở phần quy tắc viết lệnh
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 ứngvớ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 Trongmộ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ườidù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ímENTER (" ") 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 Linuxchúng ta thấy phổ biến là:
-Các tên lệnh là chữ thường,
Trang 6-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ôitrườ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ôngthườ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đượ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ệnhadduser 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ácthì mọi người dùng đều được phép (ví dụ như lệnh passwd thay đổi mật khẩu ngườidù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áchbở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ạngnà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ântí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ượclạ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ắcshell 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 khingườ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ựchiệ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ự dochạ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ảncủa giấy phép GNU GPL Ubuntu được tài trợ bởi Canonical Ltd (chủ sở hữu là một
Trang 7người Nam PhiMark Shuttleworth) Thay vì bán Ubuntu, Canonical tạo ra doanh thubằ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ácthà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 Ubuntukhác: Kubuntu và Xubuntu, vốn sử dụng KDE và Xfce như là môi trường desktop thaycho 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à;
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 LTSBình minh của Ubuntu (Dawn of Ubuntu) ứng với năm phát hành, và MM tương ứngvớ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áthà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ớihoà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ộtlầ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
Trang 8Có 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ồncủ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ủaUbuntu Đ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ểmtra 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 trongngà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ờ đượccông bố
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 đảmcho 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àmviệ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ộtcộ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étphầ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 đĩacứ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ừ
Trang 9256 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 Windowsbằ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à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ườidù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 khicà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 đặtlê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ự đơngiả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 địnhcủ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ôngthườ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ọncho 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ềuhà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)
Trang 10- 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)
- 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ữngtrườ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ònglệ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ệnhtar với cú pháp tar -xvf <tên_file>
Trang 11Để 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à UNIXPrinting 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 đợibằ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ươngtiệ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
- 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ụnglệnh mount (mount /dev/source /mnt/ ổ_đĩa_mới), trong đó /dev/source là thiết bị (tứcphâ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
Trang 12- 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 trungbì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ánnhanh 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ácnhau 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ếtlậ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) giaodiệ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ỉnhmộ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 tacũ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ộtdòng, cú pháp có thể là: mkdir thư_mục_1 ; mkdir thư_mục_2 ; mkdir thư_mục_3
Trang 13Mộ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ệnhthông qua lệnh khác Ví dụ: man mkdir | tail sẽ đưa ra thông tin các dòng cuối cùngtrong 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" admincủ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
Trang 14CHƯƠ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”
Đổ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 adminsang nhóm kinh doanh
Trang 15B Xóa User
Cú pháp: #userdel [option] <username>
Vídụ: #userdel –r vana
Khóa/Mở khóa người dùng
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
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
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
Trang 16Trong Linux có 3 dạng đối tượng :
Owner (người sở hữu)
Group owner (nhóm sở hữu)
Other users (những người khác)
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
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 5337Jan 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
Trang 172.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ụchome 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ùngcù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ụngtrong useradd:
• -p password: Đặt password cho user Ngoài ra, ta có thể sử dụng lệnh sudopasswd 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âncủ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ệnhadduser Một lưu ý là mọi thông tin khi nhập phải được đặt trong dấu “…”
• -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 đặtnhư 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ùngnà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 truycập là 01/08/2013 Ta viết câu lệnh như sau:
Trang 18Sudo 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ạophả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, homedirectory… 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:
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ôngtin
Trang 19 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ểnthị 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ốngnhư 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>
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ườidù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 đổinộ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ườidù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ảomậ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
Trang 202.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ộidung 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ậptin trong thư mục Như vậy, quyền ghi của thư mục sẽ vô hiệu hóa các quyềntruy 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áchnhậ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ượngbằng cách tính tổng giá trị các quyền
Trang 222.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
Trang 23Gá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
Trang 24trong 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àinguyê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
Thao 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
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)
Trang 25 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áctài khỏan owner
Bây giờ ta sẽ phân quyền để Owner (chủ sởhữu không đọc được file)
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