- 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 - Cáchệ thống file có thể
Trang 1LỜI CAM ĐOAN
Tôi xin cam đoan:
1 Những nội dung trong đồ án này là do tôi thực hiện dưới sự hướng dẫn trực tiếp của TS Nguyễn Thị Hiền
2 Mọi tham khảo trong đồ án đều được trích dẫn rõ ràng tên tác giả, nơi lấy tài liệu tham khảo và lời cảm ơn
3 Mọi sao chép không hợp lệ, vi phạm quy chế đào tạo hay gian trá tôi xin chịu hoàn toàn trách nhiệm
Trang 3MỤC LỤC
LỜI CAM ĐOAN 1
MỤC LỤC 3
DANH MỤC HÌNH ẢNH 6
LỜI NÓI ĐẦU 7
CHƯƠNG 1: TÌM HIỂU VỀ HỆ ĐIỀU HÀNH LINUX UBUNTU 8
1.1 Giới thiệu về Unix và Linux 8
1.1.1 Lịch sử ra đời của Linux 8
1.1.2 Chức năng của Linux 9
1.1.3 Giới thiệu chung về Linux 10
1.1.4 Sử dụng lệnh trong Linux 12
1.2 Tìm hiểu Ubuntu 15
1.2.1 Lịch sử phát triển 15
1.2.2 Các phiên bản của Ubuntu 16
1.2.3 Đặc điểm, cách cài đặt ứng dụng Linux trên Ubuntu 17
1.3 Tìm hiểu về các lệnh cơ bản thường dùng trong Linux 20
1.4 Tổng kết chương 24
CHƯƠNG 2: QUẢN LÝ NGƯỜI DÙNG TRÊN HỆ THỐNG 25
2.1 Thông tin và quản trị người dùng 25
2.1.1 User 25
2.1.2 Group 25
2.1.3 Tập lệnh quản lý User và Group 25
2.1.4 Những file lien quan đến User và Group 26
2.1.5 Quyền hạn và các lênh liên quan đến quyền hạn 26
2.2 Tạo người dùng bằng chế độ dòng lệnh 27
2.2.1 Useradd 27
2.2.2 Adduser 28
2.3 Phân quền truy cập tài nguyên trong Ubuntu 30
2.3.1 Quyền truy cập trên file system 30
2.3.2 Gán quyền truy cập trên Ubuntu Linux 32
Trang 42.3.4 Lệnh chown 35
2.3.5 Lệnh chgrp 36
2.4 Tổng kết chương 36
CHƯƠNG 3: QUẢN LÝ CÁC GÓI CÀI ĐẶT TRÊN HỆ THỐNG 37
3.1 Cài phần mềm từ source trên linux 37
3.2 Cài đặt phần mềm trên Redhat – Centos 40
3.3 Cài đặt phần mềm trên Ubuntu – Debian 42
3.4 RPM Build 45
3.5 Tổng kết chương 48
CHƯƠNG 4: XÂY DỰNG VÀ CÀI ĐẶT HỆ THỐNG WEB SERVER TRÊN LINUX 49
4.1Tổng quan về Web Server 49
4.2Cài đặt Apache 50
4.2.1Giới thiệu về Apache 50
4.2.2Cài đặt Apache 51
4.2.3Cấu trúc thư mục cấu hình Apache trên Ubuntu 52
4.2.4Thư mục gốc chứa dữ liệu website của Apache trên Ubuntu 53
4.2.5Thêm VirtualHost (thêm domain) vào Apache trên Ubuntu 53
4.3Cài đặt PHP 55
4.3.1Giới thiệu về PHP 55
4.3.2Cài đặt PHP 56
4.3.3Các module cho PHP 57
4.4Cài đặt MySQL Server 57
4.4.1Giới thiệu về MySQL và phpMyAdmin 57
4.4.2Cài đặt MySQL 58
4.4.3Cài đặt phpMyAdmin 59
4.4.4Phân quyền thư mục/tập tin cho Apache và PHP 60
4.5Chương trình ứng dụng 60
4.5.1Cài đặt các gói phần mềm 60
4.5.2 Quản lý User và phân quyền cho thư mục 61
4.5.3Thêm website và domain 62
Trang 54.5.4 Quản lý cơ sở dữ liệu 64
4.5.5 Demo website cài đặt thành công và chạy trên VirtualHost 65
4.6 Tổng kết chương 66
KẾT LUẬN 67
TÀI LIỆU THAM KHẢO 68
PHỤ LỤC 69
NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN 72
Trang 6DANH MỤC HÌNH ẢNH
Hình 4.2.2a: Cài đặt apache 51
Hình 4.2.2b: Cài đặt apache 52
Hình 4.3.1 Cách hoạt động của PHP 56
Hình 4.4.2: Cài đặt MySQL 58
Hình 4.4.3a: Cài đặt phpMyAdmin 59
Hình 4.4.3b: Cài đặt phpMyAdmin 59
Hình 4.5.1a: Cài đặt apache thành công 60
Hình 4.5.1b: Giao diện cài đặt PHP thành công 61
Hình 4.5.2a: Thêm người dùng sử dụng dòng lênh trên Ubuntu 61
Hình 4.5.2b: Phân quyền cho thư mục 62
Hình 4.5.3a: Thêm thư mục chưa website 62
Hình 4.5.3b: Tạo file config cho website 63
Hình 4.5.3c: Tạo đường dẫn đến thư mục chứa website 63
Hình 4.5.4a: Giao diện trang phpMyadmin 64
Hình 4.5.4b: Giao diện thêm CSDL cho website 64
Hình 4.5.5a: Demo website 1 65
Hình 4.5.5b: Demo website 2 65
Hình 4.5.5c: Demo website 3 66
Trang 7LỜI NÓI ĐẦU
Ngành công nghệ thông tin là một ngành khoa học đang trên đà phát triển mạnh và ứng dụng rộng rãi trên nhiều lĩnh vực Cùng với xu hướng phát triển của các phương tiện truyền thông như Báo, Radio… thì việc sử dụng internet ngày càng phổ biến Truy cập internet chúng ta có được một kho thông tin khổng lồ phục vụ mọi nhu cầu, mục đích của chúng ta chỉ bằng một cái nhấp chuột
Nhận thức được nhu cầu tìm hiểu thông tin, giải trí của xã hội, là sự ra đời của hàng loạt website cho các mục đích thương mại, giải trí tin tức… Để đáp ứng với việc cập nhật thông tin hàng ngày, tình hình xã hội, chính trị, thời sự, sức khỏe… thì website là một thứ tất yếu
Do đó em đã vận dụng những hiểu biết của em về Linux, Apache, PHP, MySQL, để xây dựng và quản lý một web server website
Sau thời gian học tập tại trường, được sự chỉ bảo hướng dẫn nhiệt tình của thầy cô giáo trong ngành Công nghệ kỹ thuật máy tính trường Đại học Công nghệ Thông tin và Truyền thông, em đã kết thúc khoá học và đã tích luỹ được vốn kiến thức nhất định Được sự đồng ý của nhà trường và thầy cô giáo trong khoa em được giao đề tài tốt nghiệp: “Xây dựng và quản trị hệ thống web server trên Linux”
Đồ án tốt nghiệp của em gồm ba chương:
Chương 1: Tìm hiểu về HĐH Linux Ubuntu
Chương 2: Quản lý người dùng trên hệ thống
Chương 3: Quản lý các gói cài đặt trên hệ thống
Chương 4: Xây dựng và cài đặt hệ thống web server trên Linux
Trang 8CHƯƠNG 1: TÌM HIỂ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
World Wide Web đóng một vai trò quan trọng do nó hỗ trợ mở rộng nhanh hệ điều hành Thực tế chúng ta có thể tưởng tượng rằng một nhà khai thác cài đặt Linux trên máy của mình, anh ta phát hiện lỗi,sữa chữa nó và gởi file nguồn đến Linus Một vài ngày sau đó (đôi khi chỉ vài phút sau) phần chính yếu được cải tiến có thể sẽ được truyền trên mạng
Mặc dù năm phiên bản đầu tiên của Linux tương đối không ổn định, nhưng phiên bản đầu tiên được tuyên bố là ổn định (1.0 ) đã được công bố vào khoảng tháng 3/1994.Số phiên bản đi kèmvới kernel có một ý nghĩa đặc trưng bởi vì nó liên quan đến chu kì phát triển Thực tế, quá trình phát triển Linux diễn ra theo một chuỗi hai giai đoạn:
Giai đoạn phát triển: ở đây kernel không có độ tin cậy cao và tiến trình là bổ sung chức năng cho nó, tối ưu hóa nó và thử nghiệm các ý tưởng mới Giai đoạn này đem lại sự gia tăng số lượng các phiên bản đánh số lẻ, chẳng hạn như 1.1, 1.3, vv Đây là thời điểm mà lượng công việc tối đa được thực hiện trên kernel
Trang 9Giai đoạn ổn định: ở giai đoạn này, mục đích là tạo ra một kernel càng ổn định càng tốt Trong trường hợp này, chỉ cho phép thực hiện các hiệu chỉnh, sửa đổi nhỏ Số phiên bản của các kernel được gọi là ổn định là các số chẵn, chẳng hạn 1.0 , 1.2 và mới nhất là 2.2
Ngày nay, Linux hoàn toàn là một hệ điều hành Unix Nó ổn định và liên tục phát triển Nó không chỉ có khả năng phát triển trên các thiết bị ngoại vi mới nhất trên thị trường (bộ nhớ flash quang, đĩa quang ) mà hiệu năngcủa nó còn có thể so sánh với một số hệ điều hành Unix thương mại và thậm chí còn có một số điểm ưu việt hơn Sau cùng, mặc dù Linux đã có một khoảng thời gian bị giới hạn trong môi trường các trường đại học, bây giờ nó đang được tiếp nhận ở các hãng công nghiệp
Do công suất và độ linh hoạt của hệ điều hành này và tính miễn phí của nó mà hiện nay nó đang thu hút một số lượng các công ty ngày càng gia tăng
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
- 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ớ
Trang 10- 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
- Cáchệ thống file có thể quản lí tốt và đồng đều các phân hoạch file Linux được sử dụng bởi filesystem làm các phân hoạch có các định dạng khác(MS-DOS, ISO9660, vv )
- Thiết bị của TCP/IP và các giao thức mạng khác
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
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
Một trong những chức năng quan trọng nhất của nhân là giải quyết bài toán lập lịch, tức là hệ thống cần phân chia CPU cho nhiều quá trình hiện thời cùng tồn tại Đối với Linux, số lượng quá trình có thể lên tới con số hàng nghìn Với số lượng quá trình đồng thời nhiều như vậy, các thuật toán lập lịch cần phải đủ hiệu quả: Linux thường lập lịch theo chế độ Round Robin (RR) thực hiện việc luân chuyển CPU theo lượng tử thời gian
Thành phần quan trọng thứ hai trong nhân là hệ thống các module chương trình (được gọi là lời gọi hệ thống) làm việc với hệ thống file Linux có hai cách thức làm việc với các file: làm việc theo byte (kí tự) và làm việc theo khối Một đặc điểm đáng chú ý là file trong Linux có thể được nhiều người cùng truy nhập tới nên các lời gọi hệ thống làm việc với file cần đảm bảo việc file được truy nhập theo quyền và được chia xẻ cho người dùng
Trang 11* 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: Shell nhận dòng lệnh do người dùng đưa vào, và từ dòng lệnh nói trên, nhân tách ra các bộ phận
để nhận được một hay một số lệnh tương ứng với các đoạn văn bản có trong dòng lệnh Một lệnh bao gồm tên lệnh và tham số: từ đầu tiên là tên lệnh, các từ tiếp theo (nếu có) là các tham số Tiếp theo, shell sử dụng nhân để khởi sinh một quá trình mới (khởi tạo quá trình) và sau đó, shell chờ đợi quá trình con này tiến hành, hoàn thiện và kết thúc Khi shell sẵn sàng tiếp nhận dòng lệnh của người dùng, một dấu nhắc shell (còn gọi là dấu nhắc nhập lệnh) xuất hiện trên màn hình
Linux có hai loại shell phổ biến là: C-shell (dấu nhắc %), Bourne-shell (dấu nhắc $) và một số shell phát triển từ các shell nói trên (chẳng hạn, TCshell - tcsh với dấu nhắc ngầm định > phát triển từ C-shell và GNU Bourne - bash với dấu nhắc bash # phát triển từ Bourne-shell) Dấu mời phân biệt shell nói trên không phải hoàn toàn rõ ràng do Linux cho phép người dùng thay đổi lại dấu nhắc shell nhờ việc thay giá trị các biến môi trường PS1 và PS2 Trong tài liệu này, chúng ta sử dụng kí hiệu
"hàng rào #" để biểu thị dấu nhắc shell
C-shell có tên gọi như vậy là do cách viết lệnh và chương trình lệnh Linux tựa như ngôn ngữ C Bourne-shell mang tên tác giả của nó là Steven Bourne Một số lệnh trong Cshell (chẳng hạn lệnh alias) không còn có trong Bourne-shell và vì vậy
để nhận biết hệ thống đang làm việc với shell nào, chúng ta gõ lệnh:
Trang 12Lệ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
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 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
Trang 13Cá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
Các tham số được phân ra thành hai loại: tham số khóa (sau đây thường dùng
là "tùy chọn") và tham số vị trí Tham số vị trí thường là tên file, thư mục và thường
là các đối tượng chịusự tác động của lệnh Khi gõ lệnh, tham số vị trí được thay bằng những đối tượng mà người dùng cần hướng tác động tới Tham số khóa chính
là những tham số điều khiển hoạt động của lệnh theo các trường hợp riêng Trong Linux, tham số khóa thường bắt đầu bởi dấu trừ"-" hoặc hai dấu trừ liên tiếp " " Khi gõ lệnh, cũng giống như tên lệnh, tham số khóa phải được viết chính xác như trình bày trong mô tả lệnh Một lệnh có thể có một số hoặc rất nhiều tham số khóa Phụ thuộc vào yêu cầu cụ thể của mình, người dùng có thể chọn một hoặc một số các tham số khóa khi gõ lệnh Trong mô tả lệnh, thường xuất hiện thuật ngữtùy-chọn Tùy chọn lệnh (thực chất là tham số khóa) cho phép điều chỉnh hoạt động của lệnh trong Linux, làm cho lệnh có tính phổ dụng cao Tuỳ chọn lệnh cho phép lệnh
có thểđáp ứng ý muốn của người dùng đối với hầu hết (tuy không phải lúc nào cũng vậy) các tình huống đặt ra cho thao tác ứng với 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:
Trang 14Trong 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 đượ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
Trang 15như 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
Trước khi đi vào nội dung chi tiết các lệnh thông dụng, chúng ta xem xét về một số quy định dùng trong mô tả lệnh được trình bày trong tài liệu này
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à; 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 Lịch sử phát triển
Bản phát hành đầu tiên của Ubuntu là vào 20 tháng 10 năm 2004, bắt đầu bằng việc tạo ra một nhánh tạm thời của dự án Debian Linux Việc này đã được thực hiện để một phiên bản mới của Ubuntu có thể được phát hành mỗi 6 tháng, tạo ra một hệ điều hành được cập nhật thường xuyên hơn Bản phát hành Ubuntu luôn gồm bản GNOME mới nhất, và được lên lịch phát hành khoảng 1 tháng sau GNOME Khác với các nhánh có mục đích chung trước của Debian – như MEPIS, Xandros, Linspire, Progeny và Libranet, phần nhiều trong số chúng dựa vào các phần mềm bổ sung có mã đóng mô hình của một doanh nghiệp Ubuntu lại giống với triết lý của Debian hơn và dùng các phần mềm miễn phí (libre) vào mọi thời điểm
Các gói của Ubuntu nói chung dựa trên các gói từ nhánh không ổn định của Debian: cả 2 bản phân phối đều dùng gói có định dạng deb của Debian và
Trang 16cả thay đổi đến Debian, chứ không chỉ tuyên bố chúng lúc phát hành, mặc dù các gói của Debian và Ubuntu không cần thiết “tương thích nhị phân” với nhau Nhiều nhà phát triển Ubuntu cũng là người duy trì các gói khoá (gói chủ chốt) của chính Debian Dù sao, Ian Murdock, nhà sáng lập của Debian, đã chỉ trích Ubuntu vì sự không tương thích giữa các gói của Ubuntu và Debian, ông nói rằng Ubuntu đã làm sai lệch quá xa so với Debian Sarge, do đó không còn giữ được sự tương thích
Hiện tại, Logo của Ubuntu vẫn giữ nguyên như bản đầu tiên, Ubuntu 4.10 (Warty Warthog)
1.2.2 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
Trang 17xuấ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ố
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.3 Đặ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
Trang 18Ubuntu 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ườ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
Quá trình cài đặt Ubuntu sử dụng giao diện đồ họa, tốc độ cài đặt nhanh hay chậm sẽ tuỳ thuộc vào cấu hình máy tính, trung bình là từ 20 – 30 phút
*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 Compiz-Fusion, để tạo sự bóng bẩy trong quá trình sử dụng
Cho đến tháng 4, 2005, Ubuntu có một gói tùy chọn được gọi là Ubuntu - calendar, gói này tải về một hình nền mới vào mỗi tháng, phù hợp với chủ đề màu nâu của giao diện Các hình nền này thể hiện những người mẫu bán khỏa thân và nó
bị chỉ trích như “risqué (khiêu gợi không thích hợp, thiếu tế nhị)” Điều này dẫn đến việc tạo ra những tên giễu như “Linuxxx”
Hơn thế nữa, Ubuntu hướng đến khả năng sử dụng cho người dùng khuyết tật
và hỗ trợ nhiều ngôn ngữ, trong đó có tiếng Việt, với mục đích có càng nhiều người dùng càng tốt Ngay từ phiên bản 5.04, Unicode là bảng mã mặc định Tuy nhiên, ở phiên bản 11.04 (Natty Narwhal) được phát hành vào 28/4/2011, Ubuntu sẽ thay thế GNOME bằng Unity – dự án nguồn mở mới tập trung vào giao diện đơn giản và hiển thị 3 chiều
*Ứng dụng
Mặc định, Ubuntu được thiết kế để ngay sau khi cài đặt là có thể sử dụng được ngay Đó là bộ ứng dụng văn phòng LibreOffice(Từ phiên bản Ubuntu 10.04), trình duyệt Internet Firefox, trình quản lý thư điện tử Evolution, trình gửi tin nhắn tức thời (IM) Empathy, trình tải file torrent Tranmission và trình biên tập đồ họa GIMP Về truyền thông đa phương tiện, Ubuntu tích hợp trình phát, rip CD Sound
Trang 19Juicer, trình quản lí thư viện nhạc Rhythmbox, trình xem phim Totem Movie Player
và trình ghi âm Sound Recorder Một số ứng dụng nhỏ như chụp màn hình, máy tính toán, các trò chơi bài và trò chơi giải đố cũng có sẵn
Việc cài đặt ứng dụng trong Ubuntu có nhiều phương tiện, phổ biến nhất là dùng Sofware Center, Add/Remove Application và Synaptic Package Manager Trong đó, Add/Remove Application cho phép người dùng tìm toàn bộ các ứng dụng miễn phí Ubuntu khuyên dùng và cài đặt về máy, còn Synaptic Package Manager là công cụ nâng cao, giúp người dùng cài đặt từng gói con của ứng dụng Ngoài ra còn một số công cụ sử dụng dòng lệnh, như apt-get, aptitude…
Luôn luôn có hơn 17.000 ứng dụng khác nhau luôn có sẵn trên mạng để tải về
và cài đặt Hơn nữa chúng hoàn toàn miễn phí
• Sự phân loại và hỗ trợ các gói
Đĩa Ubuntu 6.06 LTS
Ubuntu phân chia tất cả phần mềm thành 4 phần, được gọi là các thành phần,
để thể hiện sự khác nhau trong bản quyền và mức độ được hỗ trợ
Các gói được quy về các thành phần như sau:
• Phần mềm tự do Phần mềm không tự do
• Được hỗ trợ Main Restricted
• Không được hỗ trợ Universe Multiverse
Phần mềm “tự do” ở đây chỉ bao gồm những phần mềm thoả yêu cầu giấy phép của Ubuntu, nói chung, tương ứng với chính sách phần mềm tự do của Debian (Dù sao, cũng có một ngoại lệ cho Main; nó “cũng có thể bao gồm các firmware nhị phân, các phông chữ (các phần được dùng bởi các thành phần của Main) không được phép sửa đổi nếu không có sự cho phép của tác giả” khi việc phân phối lại chúng không bị gây trở ngại.”) Phần mềm không tự do thường không được hỗ trợ (Multiverse), nhưng cũng có ngoại lệ (Restricted) cho một số phần mềm không tự do quan trọng, như driver của các thiết bị, không có chúng, người dùng không thể sử dụng Ubuntu trên hệ thống của họ, đặc biệt là các driver card
đồ hoạ nhị phân Mức độ hỗ trợ bị giới hạn hơn main, vì các nhà phát triển không thể truy cập vào mã nguồn
Trang 20Thường thì Main và Restricted chứa tất cả phần mềm cho một hệ thống Linux thông thường Các phần mềm khác có cùng chức năng và các phần mềm chuyên dụng được liệt kê trongUniversevà Multiverse Ngoài các kho chính thức ra còn có Ubuntu Backports, một dự án được công nhận chính thức, liệt kê các phiên bản mới hơn của một vài phần mềm nào đó chỉ có trong phiên bản không ổn định của Ubuntu Các kho không thể bao gồm tất cả nhưng nó chứa hầu hết các gói được người dùng yêu cầu, các gói này được liệt kê chỉ khi chúng đáp ứng được các yêu cầu về chất lượng
*Các phần mềm độc quyền
Ubuntu có một hệ thống chứng nhận cho phần mềm của bên thứ ba Ubuntu chứng nhận phần mềm độc quyền sẽ làm việc tốt trong Ubuntu Dù sao, vẫn có nhiều chương trình quen thuộc với người dùng trên các hệ điều hành không tự do, như Microsoft Windows, không tương thích và chưa được Ubuntu chứng nhận Một vài phần mềm độc quyền không giới hạn bản phân phối được đưa vào thành phần multiverse của Ubuntu Vài ví dụ về phần mềm không được phân phối bởi Ubuntu gồm có:
- Phần mềm cho phép chơi các tập tin video DVD đã bị khóa mã vùng, bởi vì tình trạng có vấn đề về luật pháp của thư viện giải mã DVD mã nguồn mở DeCSS tại nhiều khu vực trên thế giới
- Thư viện mã hóa và giải mã cho nhiều định dạng độc quyền (hình ảnh/âm thanh) như Windows Media
- Một số phần mở rộng được ưa chuộng cho các trình duyệt web, như Adobe’s (trước là Macromedia’s) Shockwave (không có phiên bản cho Linux) và Flash (một cách khắc phục cho sự ngăn cấm việc phân phối lại đã được quy định trong thỏa thuận bản quyền cho người dùng cuối là gói multiverse “flashplugin-nonfree” (flashplugin-không tự do), gói này sẽ tự động tải Linux Flash plugin trực tiếp từ trang web của Adobe và sau đó cài đặt nó
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)
Trang 21Chú ý 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)
- 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>
Trang 22Để 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
- 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
- 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
Trang 23-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 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
Trang 24Nế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
1.4 Tổng kết chương
Qua tìm hiểu ở chương 1 em đã hiểu thêm tổng quan cơ bản về Linux và HĐH Ubuntu hiểu được một phần về cách hoạt động và ứng dụng rộng rãi của nó Đây là một HĐH mã nguồn mở nên nó rất phù hợp với tất cả mọi người ai cũng có thể chính sửa theo ý mình Hơn nữa Linux còn là một HĐH với độ bảo mật tương đối cao, với mô hình cung cấp tài nguyên theo hướng người dùng vì vậy nó rất phù hợp cho những công ty tổ chức riêng
Trang 25CHƯƠ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.3 Tập lệnh quản lý User và Group
*Tạo User:
Cú pháp: #useradd [option] <username>
-c “Thông tin người dùng”
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
*Xóa người dùng
Cúpháp: #userdel [option] <username>
Vídụ: #userdel –r vana
Trang 26passwd –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
*Trong 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
Trang 27Ví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
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:
Trang 28• -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 “…”
• -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>
Trang 29Ví 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ô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:
Trang 30Nhượ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>
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:
Tương tự với các chức năng khác cũng vậy
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
Trang 31-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 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
Trang 322.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
Trang 33Ví 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 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
Trang 34Để 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
- 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
Tài khỏan supper user của tôi mặc định 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)
Trang 35Tài khoản Fithou và root đều là owner do đó mình sẽ ngắt quyền với quyền cho các tài khỏan owner
Bây giờ tôi sẽ phân quyền để Owner (chủ sởhữu không đọc được file)
Vậy tôi 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ụ: mình 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, mình 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
Trang 362.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
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
Sự dụng và làm quen với giao diện dòng lệnh của Linux Phân quyền truy cập tài nguyên cho từng người dùng và nhóm người dùng bằng giao diện dòng lệnh và giao diện đồ họa