TỔNG QUAN VỀ HỆ ĐIỀU HÀNH LINUX
Lịch sử phát triển Unix và Linux
Mục tiêu: Giới thiệu cho người học về hệ điều hành mã nguồn mở - Linux, nguyên nhân phát triển hệ điều hành này
Linux, một hệ điều hành mã nguồn mở, đã phát triển mạnh mẽ và hiện có thể cạnh tranh với các hệ điều hành thương mại như MS Windows và Sun Solaris Được ra đời từ một dự án vào đầu những năm 1990, Linux nhằm mục đích tạo ra một hệ điều hành kiểu UNIX có khả năng cài đặt trên máy tính cá nhân tương thích với dòng máy IBM-PC.
Hệ điều hành Linux, được phát triển bởi Linus Torvalds vào năm 1991, ra đời với mục tiêu cải tiến hệ điều hành UNIX Mặc dù ý tưởng của anh bị các nhà thiết kế UNIX từ chối, nhưng nó đã dẫn đến việc tạo ra một hệ điều hành cho phép người dùng tự do sửa đổi và phát triển, trở thành mã nguồn mở cho đến ngày nay.
Ngày nay, Linux có thể được cài đặt trên nhiều loại máy tính khác nhau và được phát triển bởi hàng nghìn lập trình viên trên toàn thế giới thông qua Internet Mục tiêu của Linux là tạo ra một hệ điều hành không phụ thuộc vào thương phẩm, cho phép mọi người dễ dàng sử dụng Ý tưởng về Linux được khởi xướng bởi Linus Torvalds, một sinh viên tại Đại học Helsinki, Phần Lan.
Linux, được xây dựng dựa trên nền tảng UNIX, mang lại nhiều lợi ích nổi bật từ hệ điều hành này Với khả năng đa nhiệm vượt trội, Linux cho phép nhiều chương trình hoạt động đồng thời, đồng thời hỗ trợ nhiều người dùng đăng nhập và sử dụng hệ thống cùng lúc Mặc dù tính năng này có thể không được phát huy tối đa trên máy tính cá nhân tại nhà, nhưng trong môi trường doanh nghiệp hoặc giáo dục, nó giúp tối ưu hóa việc chia sẻ tài nguyên, từ đó giảm thiểu chi phí đầu tư vào thiết bị.
Linux không chỉ là một hệ điều hành thông thường mà còn được phát triển để tạo ra trải nghiệm tham gia vào một dự án mới cho người dùng Thực tế cho thấy, Linux hoạt động với độ ổn định tương đối cao, mang lại sự tin cậy cho người sử dụng.
1.2 Tại sao Linux phát triển?
Linux là một hệ điều hành miễn phí, nổi bật với khả năng đa nhiệm, cho phép nhiều người dùng sử dụng đồng thời trên các máy tính tương thích với PC.
Linux là một hệ điều hành thương phẩm ít phải nâng cấp và miễn phí, cùng với nhiều phần mềm ứng dụng đi kèm Bên cạnh đó, Linux và các ứng dụng của nó đều có mã nguồn mở, cho phép người dùng tùy chỉnh và mở rộng chức năng theo nhu cầu riêng.
Linux là một sự thay thế hiệu quả cho các hệ điều hành UNIX đắt tiền, cho phép người dùng có trải nghiệm tương tự tại nhà với chi phí thấp hơn Hệ điều hành này hỗ trợ người dùng dễ dàng truy cập Internet, lướt web và gửi nhận thông tin một cách thuận tiện.
Một trong những lý do khiến Linux trở nên dễ tiếp cận với người dùng là vì nó cung cấp mã nguồn mở, cho phép tổ chức, cá nhân và quốc gia đầu tư vào hệ điều hành này để mở rộng sự lựa chọn bên cạnh các phần mềm đóng kín Điều này giúp Linux hoạt động độc lập và không phụ thuộc vào Microsoft Windows.
Tại Việt Nam, nghiên cứu phát triển hệ điều hành dựa trên kernel Linux đã đạt được một số thành công, tiêu biểu như Vietkey Linux và CMC RedHat Linux, phiên bản tiếng Việt của RedHat Linux 6.2.
Gần đây, các công ty nổi tiếng như IBM, Sun, Intel, Oracle cũng bắt đầu nghiên cứu Linux và xây dựng các phần mềm ứng dụng cho nó.
Các dòng sản phẩm
Mục tiêu: Trình bày một số dòng sản phẩm nguồn mở thông dụng
Nhiều người đã quen thuộc với các nhà sản xuất phần mềm như RedHat, ManDrake, SuSE, Corel và Caldera, cũng như các phiên bản Linux nổi tiếng như Slackware, Debian, TurboLinux và VA Linux Linux được phát hành bởi nhiều nhà sản xuất khác nhau, với mỗi bản phát hành là một bộ chương trình chạy trên nhóm tệp lõi (kernel) do Linus Torvalds phát triển Mỗi phiên bản Linux đều dựa trên một kernel cụ thể; ví dụ, RedHat Linux 6.2 sử dụng kernel phiên bản 2.2.4.
Hãng RedHat phát triển chương trình quản lý đóng gói RPM (RedHat Package Manager), một công cụ miễn phí cho phép người dùng tự đóng gói và phát hành phiên bản Linux của riêng mình Ví dụ, bản OpenLinux của Caldera cũng được tạo ra nhờ vào công cụ này.
Linux mang đến một môi trường học lập trình vượt trội, không có hệ điều hành nào hiện nay có thể so sánh Với Linux, người dùng được truy cập đầy đủ mã nguồn, trong khi các sản phẩm thương mại thường không công khai mã nguồn của họ.
Sự ra đời của bộ vi xử lý đầu tiên vào năm 1971 và máy tính cá nhân vào năm 1975 đã đánh dấu một bước ngoặt lớn trong công nghệ Ban đầu, đây là thời điểm cho các hacker đam mê vi tính thể hiện khả năng của mình.
Các hacker có khả năng tự chế tạo máy tính cá nhân và hệ điều hành đơn giản, nhưng hiệu năng của chúng còn hạn chế Qua thời gian, nhiều hacker đã chuyển mình thành doanh nhân, góp phần vào sự phát triển và tích hợp vi mạch, giúp máy tính cá nhân trở nên phổ biến hơn.
Tính khả chuyển của một hệ điều hành giúp ta chuyển nó từ một nền này sang nền khác mà vẫn hoạt động tốt
UNIX và Linux hiện nay có thể hoạt động trên nhiều nền tảng khác nhau, từ máy xách tay đến máy tính lớn Nhờ vào tính khả chuyển vượt trội, các hệ thống chạy UNIX và Linux có khả năng giao tiếp chính xác và hiệu quả với nhau.
Linux cung cấp hàng ngàn ứng dụng đa dạng, bao gồm các chương trình bảng tính, quản trị cơ sở dữ liệu, xử lý văn bản và phát triển phần mềm cho nhiều ngôn ngữ Ngoài ra, còn có nhiều phần mềm viễn thông trọn gói hỗ trợ người dùng.
Ưu khuyết điểm
Mục tiêu: Trình bày các ưu và khuyết điểm chính của hệ điều hành Linux
3.1 Linux cộng sinh với Windows
Tất cả phần mềm chạy trên DOS hoặc Windows không thể hoạt động trực tiếp trên Linux, tuy nhiên, ba hệ điều hành này có thể đồng thời tồn tại trên cùng một máy.
PC chỉ có thể chạy một hệ điều hành tại một thời điểm Tuy nhiên, người dùng có thể cài đặt phần mềm "VMWARE" để mô phỏng nhiều hệ điều hành khác nhau hoạt động đồng thời trên cùng một máy tính, với điều kiện máy có cấu hình đủ mạnh và thích hợp.
Linux vẫn chưa hoàn toàn khắc phục được tất cả các bất tiện và lỗi sai Tuy nhiên, ngày càng nhiều công ty mới đầu tư vào Linux và cung cấp các giải pháp thương mại với giá cả phải chăng, điển hình như RedHat và Caldera.
Cả hai công ty cung cấp hỗ trợ kỹ thuật qua email, fax và trực tuyến cho khách hàng đã mua các phiên bản Linux và sản phẩm của họ, không áp dụng cho những người sử dụng các bản sao miễn phí.
Linux được ưa chuộng trong nhiều doanh nghiệp nhờ tính kinh tế, thường được sử dụng trên mạng nội bộ để cung cấp các dịch vụ như Web, DNS, định tuyến và tường lửa Ngoài ra, nhiều nhà cung cấp dịch vụ Internet (ISP) cũng chọn Linux làm hệ điều hành chính của họ.
Kiến trúc của Linux
Mục tiêu: Trình bày các thành phần chính cấu thành hệ điều hành Linux và chức năng chính của mỗi thành phần trong cấu trúc
Linux gồm 3 thành phần chính: kernel, shell và cấu trúc tệp
Kernel là chương trình nhân, chạy các chương trình và quản lý các thiết bị phần cứng như đĩa và máy in
Shell là một giao diện người dùng hoạt động như một bộ biên dịch, nhận lệnh từ người sử dụng và truyền đạt chúng đến nhân thực hiện Trên hệ điều hành Linux, có nhiều loại shell được phát triển, bao gồm môi trường desktop, trình quản lý cửa sổ và môi trường dòng lệnh Hiện tại, ba shell chính được sử dụng là Bourne, Korn và C shell Bourne shell được phát triển tại phòng thí nghiệm Bell, C shell dành cho phiên bản BSD của UNIX, trong khi Korn shell là phiên bản cải tiến của Bourne shell Các phiên bản hiện nay của Unix, bao gồm cả Linux, đều tích hợp cả ba loại shell này.
Cấu trúc tệp trong hệ thống lưu trữ quy định cách tổ chức và lưu trữ các tệp trên đĩa, với các tệp được nhóm trong các thư mục Mỗi thư mục có khả năng chứa tệp và các thư mục con khác, cho phép người dùng tạo và di chuyển tệp giữa các thư mục Đặc biệt, trong môi trường Linux, người dùng có thể thiết lập quyền truy cập cho tệp và thư mục, cho phép hoặc hạn chế quyền truy cập của người dùng hoặc nhóm cụ thể Hệ thống thư mục trong Linux được tổ chức theo cấu trúc cây, bắt đầu từ thư mục gốc (root), với các thư mục khác phân nhánh từ thư mục này.
Kernel, shell và cấu trúc tệp là ba thành phần chính cấu thành hệ điều hành Những thành phần này cho phép người dùng thực hiện các tác vụ như chạy chương trình, quản lý tệp và tương tác hiệu quả với hệ thống.
Các đặc tính cơ bản
Linux nổi bật với những đặc điểm chính so với các hệ điều hành khác, giúp người dùng dễ dàng định hướng và lựa chọn sử dụng Những đặc điểm này không chỉ thể hiện sự linh hoạt và tính mở của hệ thống, mà còn mang lại sự ổn định và bảo mật cao, đáp ứng nhu cầu đa dạng của người dùng.
Một số đặc điểm cơ bản của Linux:
Đặc tính cho phép người dùng thực hiện nhiều tiến trình đồng thời là một yếu tố quan trọng trong công nghệ máy tính Mặc dù chỉ sử dụng một CPU, máy tính vẫn có khả năng xử lý nhiều tiến trình cùng lúc, mang lại hiệu suất làm việc cao hơn và trải nghiệm người dùng mượt mà hơn.
Hệ điều hành Linux nổi bật với tốc độ xử lý nhanh chóng nhờ vào khả năng quản lý hiệu quả tài nguyên như bộ nhớ và đĩa.
Khi hệ thống Linux gặp tình trạng thiếu bộ nhớ chính (RAM) do sử dụng quá nhiều chương trình lớn, nó sẽ sử dụng partition swap để lưu trữ tạm thời Các chương trình hoặc dữ liệu không được truy xuất sẽ được chuyển xuống vùng swap, và khi cần thiết, hệ thống sẽ chuyển chúng trở lại bộ nhớ chính.
5.4 Sử dụng chung thư viện
Hệ thống Linux sở hữu nhiều thư viện chung cho nhiều ứng dụng, giúp tiết kiệm tài nguyên và thời gian xử lý hiệu quả.
5.5 Sử dụng các chương trình xử lý văn bản
Chương trình xử lý văn bản là công cụ thiết yếu cho người sử dụng, và hệ điều hành Linux cung cấp nhiều lựa chọn như vi, emacs, và nroff để người dùng thao tác với văn bản một cách hiệu quả.
5.6 Sử dụng giao diện cửa sổ
Hệ thống X Window, hay còn gọi tắt là X, có giao diện tương tự như hệ điều hành Windows, mang lại sự thuận tiện cho người dùng khi làm việc Được phát triển tại Viện Công nghệ Massachusetts (MIT), X được thiết kế để tạo ra môi trường làm việc độc lập với phần cứng Hệ thống này hoạt động theo mô hình client-server và bao gồm hai thành phần chính.
- Phần server còn gọi là X server
- Phần client được gọi là X Window manager hay desktop environment
X server sử dụng trong hầu hết các bản phân phối của Linux là Xfree86 Client sử dụng thường là KDE (K Desktop Environment) và GNOME (GNU Network Object Model Environment)
Dịch vụ NIS (Network Information Service) cho phép chia sẻ tập tin mật khẩu và nhóm trên mạng, hoạt động theo mô hình client-server Hệ thống này lưu trữ thông tin người dùng và thực hiện chứng thực người dùng NIS được phát triển bởi hãng Sun Microsystems và ban đầu được gọi là Yellow Pages.
5.8 Lập lịch hoạt động chương trình, ứng dụng
Chương trình lập lịch trong Linux xác định các ứng dụng, script thực thi theo một sự sắp xếp của người dùng như: at, cron, batch
5.9 Các tiện ích sao lưu dữ liệu
Linux offers utilities such as tar, cpio, and dd for data backup and restoration Additionally, RedHat Linux includes the Backup and Restore System Unix (BRU), which enables automated scheduled backups of data.
5.10 Hỗ trợ nhiều ngôn ngữ lập trình
Linux cung cấp một môi trường lập trình Unix toàn diện với các thư viện chuẩn, công cụ lập trình, trình biên dịch và chương trình debug Ngôn ngữ chính được sử dụng trong hệ điều hành Unix là C và C++, với trình biên dịch gcc mạnh mẽ hỗ trợ nhiều tính năng Ngoài C và C++, Linux còn cung cấp trình biên dịch và thông dịch cho các ngôn ngữ khác như Pascal, Fortran và Java.
1 Linux là gì? Nêu các đặc điểm của hệ điều hành Linux
2 So sánh các ưu khuyết điểm của hệ điều hành Linux so với hệ điều hành Windows
3 Trình bày kiến trúc và chức năng các thành phần chính của Linux
Những trọng tâm cần chú ý trong bài
- Trình bày được lịch sử phát triển của Linux;
- Nắm được các đặc tính cơ bản của hệ điều hành;
Bài mở rộng và nâng cao
Tim hiểu các nội dung sau:
Hệ điều hành Ubuntu (Wikipedia)
Giới thiệu về Debian GNU/Linux (Wikipedia)
Ubuntu thay đổi trở về giao diện Gnome
Yêu cầu về đánh giá kết quả học tập
+ Về kiến thức: Trình bày được lịch sử phát triển của Linux; Nắm được các đặc tính cơ bản của hệ điều hành;
Kỹ năng sử dụng thành thạo các trình duyệt và ứng dụng là rất quan trọng để tìm kiếm thông tin hiệu quả Người dùng cần biết cách rút trích các thông tin cần thiết và phù hợp với yêu cầu của mình.
+ Năng lực tự chủ và trách nhiệm: Tỉ mỉ, cẩn thận, chính xác, ngăn nắp trong công việc
+ Về kiến thức: Được đánh giá bằng hình thức kiểm tra viết, trắc nghiệm, vấn đáp
+ Về kỹ năng: Đánh giá kỹ năng thực hành tìm kiếm thông tin và rút trích được những thông tin cần thiết, đúng yêu cầu
+ Năng lực tự chủ và trách nhiệm: Tỉ mỉ, cẩn thận, chính xác, ngăn nắp trong công việc
CÀI ĐẶT HỆ ĐIỀU HÀNH LINUX
Yêu cầu đối với hệ thống
Linux yêu cầu cấu hình hệ thống tối thiểu thấp hơn so với các hệ điều hành khác, giúp người dùng dễ dàng cài đặt và sử dụng Để đảm bảo Linux hoạt động hiệu quả, cần lưu ý đến các yêu cầu cấu hình tối thiểu, nhưng thực tế, hệ thống có cấu hình cao sẽ mang lại hiệu suất tốt hơn.
Linux không yêu cầu cấu hình máy tính mạnh, nhưng nếu phần cứng quá yếu, có thể không chạy được X Window và các ứng dụng khác Do đó, cấu hình tối thiểu được khuyến nghị nên được sử dụng.
- CPU: Pentium MMX trở lên
- RAM: 64 MB trở lên cho Text mode, 192MB cho mode Graphics
- Đĩa cứng: Dung lượng đĩa còn phụ thuộc vào loại cài đặt
- 2M cho card màn hình nếu muốn sử dụng mode đồ họa.
Quá trình cài đặt
Mục tiêu của bài viết này là hướng dẫn chi tiết quy trình cài đặt hệ thống trên hệ điều hành Linux, giúp người học thực hiện việc cài đặt một cách dễ dàng và hiệu quả.
2.1 Chọn phương thức cài đặt
- CD-Rom: Có thể khởi động từ CD-ROM hoặc khởi động bằng đĩa mềm boot
- Đĩa cứng: Cần sử dụng đĩa mềm boot (dùng lệnh dd hoặc mkbootdisk để tạo đĩa mềm boot)
- FS image: Sử dụng đĩa khởi động mạng Kết nối tới NFS sever
- FTP: Sử dụng đĩa khởi động mạng Cài trực tiếp qua kết nối FTP
- HTTP: Sử dụng đĩa khởi động mạng Cài trực tiếp qua kết nối HTTP
2.2 Chọn chế độ cài đặt
Chúng ta có thể chọn các chế độ:
- Linux text: chế độ text (Text mode)
- [Enter]: chế độ đồ họa (Graphical mode)
2.3 Chọn ngôn ngữ hiển thị trong quá trình cài đặt
Chọn ngôn ngữ “English” rồi chọn Next
Chọn loại bàn phím của mình, chọn Next
Chọn loại Mouse phù hợp với mouse của mình Khi chọn lưu ý cổng gắn mouse là serial hay PS/2, chọn Next
2.6 Lựa chọn loại màn hình
Hệ điều hành thường tự động nhận diện loại màn hình hiển thị, nhưng nếu không, bạn cần cấu hình lại màn hình trong hộp thoại bên phải và chọn "Next".
2.7 Lựa chọn loại cài đặt
Một số loại cài đặt thông dụng:
- Workstation: Cài đặt hệ điều hành phục vụ cho công việc của một máy trạm
- Server: Cài đặt hệ điều hành phục vụ cho máy chủ
- Custom: có thể tích hợp các tùy chọn trên một cách tùy ý
Hệ thống tự động phân vùng ổ đĩa một cách hợp lý để cài đặt hệ điều hành, thường tạo ra hai phân vùng chính là /boot và /, cùng với phân vùng swap.
- Manually partition with Disk Druid: Chia partition bằng tiện ích Disk Druid Đây là cách chia partition dưới dạng đồ họa dễ dùng
- Nếu ta là người mới học cách cài đặt thì nên lựa chọn Automatically partition
- Remove all Linux partitions on this system: loại bỏ tất cả các Linux partition có sẵn trong hệ thống
- Remove all partitions on this system: loại bỏ tất cả các partition có sẵn trong hệ thống
To optimize your storage, retain all existing partitions and utilize only the available free space for partitioning.
Tùy theo từng yêu cầu riêng mà ta có thể lựa chọn các yêu cầu trên cho phù hợp, sau đó chọn Next
2.10 Chia Partition bằng Disk Druid
Trong bước 8 ta chọn Manually partition with Disk Druid để thực hiện phân chia phân vùng sử dụng tiện ích Disk Druid
Disk Druid hiển thị các partition của đĩa dưới chế độ đồ họa ở phía trên, ta có thể chọn từng partition để thao tác
Chi tiết các partition gồm kích thước, loại hệ thống tập tin, thư mục được mount vào được mô tả trong hình sau:
- New: Tạo một partition mới, chỉ định tên phân vùng (mount point), loại filesystem (ext3) và kích thước (size) tính bằng Mbyte (tùy chọn)
- Edit: Thay đổi lại các tham số của phân vùng được chọn
- Delete: Xóa phân vùng được chọn
- Reset: Phục hồi lại trạng thái đĩa như trước khi thao thác
- Make RAID: Sử dụng với RAID (Redundant Array of Independent Disks) khi ta có ít nhất 3 đĩa cứng
2.11 Cài đặt chương trình Boot Loader
Boot Loader là chương trình cho phép người dùng chọn hệ điều hành khởi động qua menu Khi lựa chọn, Boot Loader xác định các tập tin cần thiết và chuyển quyền điều khiển cho hệ điều hành Nó có thể được cài đặt vào Master Boot Record hoặc vào sector đầu tiên của phân vùng.
Linux cho phép sử dụng chương trình Boot Loader là GRUB hoặc LILO Cả 2 Boot Loader đều hỗ trợ quản lý nhiều hệ điều hành trên một hệ thống
Khi chưa có chương trình Boot Loader nào được cài đặt hoặc khi bạn cần đảm bảo Boot Loader có khả năng khởi động các hệ điều hành khác trên máy, hãy chọn cài đặt Boot Loader vào Master Boot Record (MBR) Lưu ý rằng việc cài đặt Boot Loader lên MBR sẽ thay thế các chương trình Boot Loader trước đó bằng phiên bản mới.
Chọn cài Boot loader vào sector đầu tiên của partition cài đặt khi đã có chương trình Boot Loader tại MBR mà không muốn thay thế nó Trong trường hợp này, chương trình Boot Loader hiện tại sẽ nắm quyền điều khiển và chỉ định chương trình Boot Loader của Linux khi cần khởi động hệ điều hành này.
- Nếu không cài chương trình Boot loader thì phải sử dụng đĩa mềm boot để khởi động hệ điều hành
- Có thể đặt mật khẩu cho boot loader thông qua nút Change password
Cấu hình TCP/IP có thể được thực hiện thông qua dịch vụ DHCP để tự động nhận địa chỉ IP, hoặc người dùng có thể chọn cấu hình cụ thể bằng cách nhập các thông số mạng trong mục chỉnh sửa.
- IPAddress: Chỉ định địa chỉ IP của host cài đặt
- Netmask Address: subnet mask cho địa chỉ IP trên
Active on boot: Card mạng được kích hoạt khi hệ điều hành khởi động
Khi khai báo tên máy chủ, nếu có tên DNS đầy đủ, hãy sử dụng nó Trong trường hợp không kết nối mạng, bạn có thể đặt tên cho máy thông qua tùy chọn thủ công Nếu không điền tên nào, giá trị mặc định sẽ là localhost.
Miscellaneous Settings: chỉ định địa chỉ gateway và Primary DNS, và một số thông số khác
Các trường không có giá trị thì các trường đó không được sử dụng trong hệ thống
Trong Linux, Firewall được tích hợp để bảo vệ hệ thống khỏi các truy cập bất hợp pháp từ bên ngoài Để sử dụng, bạn cần kích hoạt Firewall và sau đó chọn loại dịch vụ mà bạn muốn cho phép truy cập từ bên ngoài.
2.14 Chọn ngôn ngữ hỗ trợ trong Linux
Trong Linux, người dùng có khả năng cài đặt và sử dụng nhiều ngôn ngữ khác nhau Hệ thống cho phép lựa chọn ngôn ngữ mặc định là tiếng Anh (Hoa Kỳ) cùng với các ngôn ngữ bổ sung khác để phục vụ nhu cầu sử dụng.
2.15 Cấu hình khu vực địa lý của hệ thống
Các vị trí chia theo châu lục Ta có thể chọn mục này một cách thông qua việc định vị chuột tại đúng vị trí trên bản đồ
2.16 Đặt mật khẩu cho người quản trị
Trên hệ điều hành Linux, người quản trị được gọi là root, và mật khẩu của tài khoản này yêu cầu tối thiểu 6 ký tự Lưu ý rằng mật khẩu phân biệt chữ hoa và chữ thường Khi nhận được thông báo “Root password accepted”, nghĩa là mật khẩu đã được chấp nhận.
Nếu không sử dụng password mạng có thể bỏ qua cấu hình này nhưng vẫn sử chế độ chọn mặc nhiên (chọn Enable MD5 passwords và Enable shadow passwords)
- Enable MD5 passwords: cho phép password sử dụng tới 256 ký tự thay vì chỉ tới 8 ký tự
- Enable shadow passwords: cung cấp cơ chế lưu trữ password an toàn
Password được lưu trữ trong tập tin /etc/shadow và chỉ có root mới được đọc
- Enable NIS: cho phép một nhóm máy trong một NIS domain sử dụng chung tập tin passwd và group Chọn các tham số sau:
+ NIS domain: Xác định NIS domain mà máy này tham gia
+ Use broadcast to find NIS server: Cho phép sử dụng thông điệp quảng bá để tìm NIS server
+ NIS Server: Xác định NIS server
+ Enable LDAP: Hệ thống sử dụng LDAP cho một vài hoặc tất cả các phép chứng thực
+ LDAP Server: Xác định LDAP server (dùng địa chỉ IP)
+ LDAP Base DN: cho phép tìm kiếm thông tin người dùng dựa trên DN
+ Use TLS (Transport Layer Security) lookups: cho phép LDAP gởi tên người dùng và password mã hóa tới LDAP server trước khi chứng thực
- Enable Kerberos: là hệ thống cung cấp các dịch vụ chứng thực trên mạng Các lựa chọn:
+ Realm: cho phép truy xuất tới mạng sử dụng Kerberos
+ KDC: cho phép truy xuất tới Key Distribution Center (KDC)
+ Admin Server: cho phép truy xuất tới server chạy kadmin
+ Enable SMB Authentication: Cài PAM để dùng một Samba server chứng thực cho các client
+ SMB Server: Xác định samba server mà các máy trạm kết nối tới để chứng thực
+ SMB Workgroup: Xác định workgroup mà samba server được cấu hình tham gia
2.18 Chọn các chương trình và Package cài đặt
Chọn các chương trình cần cài đặt: everything: cài tất cả các chương trình,
Minimal: chỉ cài một số chương trình hoặc phần mềm thông dụng
Nếu nắm rõ các package cần thiết cho các chương trình mong muốn thì chọn
Select individual packages Ta có thể chọn Details để chọn chi tiết các thành phần trong từng phần mềm hoặc nhóm các công cụ
2.19 Định dạng filesystem và tiến hành cài đặt
Cấu hình thiết bị
Mục tiêu của bài viết là hướng dẫn các thao tác cấu hình thiết bị thông dụng, nhằm giúp người học dễ dàng thực hiện việc cấu hình các thiết bị này.
System RAM được BIOS nhận biết khi khởi động, Linux kernel có khả năng nhận biết được tất cả các loại RAM (EDO, DRAM, SDRAM, DDRAM)
3.2 Vị trí lưu trữ tài nguyên
Kernel lưu trữ thông tin tài nguyên trong thư mục /proc, các tập tin ta cần quan tâm:
Hầu hết các phiên bản Linux mới đều có khả năng nhận diện thiết bị USB khi được cắm vào cổng USB Thiết bị này được điều khiển bởi bộ điều khiển USB, và Linux hỗ trợ nhiều loại bộ điều khiển USB khác nhau Thiết bị USB được nhận diện bởi kernel Linux thông qua tập tin /dev/sda1.
The Linux kernel supports most Network Interface Cards (NICs) To view detailed information about the current network card, you can use the following commands: `dmesg`, `lspci`, `/proc/interrupts`, `/sbin/lsmod`, and `/etc/modules.conf`.
Sau đây là một số bước cài đặt serial modem:
+ Bước 1: Dùng lệnh setserial để scan serial device
+ Bước 2: Dùng lệnh ls –s /dev/ttyS1 /dev/modem
Bước 3: Cấu hình hồ sơ Dial thông qua công cụ wvdial bằng cách sử dụng script wvdialconfig để quét các thông tin cần thiết cho modem và ghi vào tệp /etc/wvdial.conf.
Sử dụng hệ thống
Mục tiêu của bài viết là hướng dẫn người dùng cách đăng nhập và sử dụng các lệnh cơ bản trên hệ điều hành Đầu tiên, người dùng cần thực hiện việc đăng nhập, sau đó quan sát dấu nhắc hệ điều hành Bài viết cũng trình bày cách sử dụng các lệnh đơn giản và cách gọi trợ giúp khi cần thiết để hỗ trợ quá trình sử dụng.
4.1 Đăng nhập Để sử dụng hệ thống, trước hết phải đăng nhập vào Khi kết nối tới máy thì màn hình hiển thị dòng:
Có 2 dạng dấu nhắc lệnh:
+ Dạng $ dùng cho người dùng thường
+ Dạng # dùng cho người dùng quản trị (root)
Khi login vào hệ thống, chúng ta thấy dấu nhắc lệnh xuất hiện có dạng:
[tên-đăng-nhập@tên-máy thư-mục-hiện-hành]dấu-nhắc-lệnh
- Từ dấu nhắc lệnh ta có thể sử dụng lệnh theo cú pháp như sau:
Tên-lệnh [tùy-chọn] [tham-số]
+ Tùy chọn có dạng: –
+ Nếu có nhiều tùy chọn thì ta dùng dấu khoảng trắng để làm dấu ngăn cách hoặc kết hợp nhiều tùy chọn
Ví dụ: [root@serverls –a –l /etc
- Linux cho phép kết hợp nhiều lựa chọn chỉ dùng một dấu - Như ví dụ trên ta có thể dùng lệnh ls –al /etc thay cho ls –a –l /etc
- Chuyển sang user khác: Đang làm việc chúng ta có thể chuyển sang người dùng khác mà không phải logout ra, bằng cách dụng lệnh su
$su [tên-user]: chuyển sang user mới
- Nếu tên-user không có thì mặc định là chuyển qua root
Khi chuyển đổi sang người dùng khác, biến môi trường của hệ thống thường vẫn giữ nguyên theo người dùng cũ Để sử dụng biến môi trường của người dùng mới, chúng ta cần thêm tham số - trong lệnh su.
4.2 Một số lệnh cơ bản
Dưới đây là các lệnh hệ thống cơ bản và ý nghĩa của chúng: Lệnh "date" hiển thị ngày giờ hiện tại của hệ thống, trong khi "who" cho biết danh sách người dùng đang đăng nhập Lệnh "tty" xác định tập tin tty mà người dùng đang sử dụng Để xem lịch, sử dụng lệnh "cal", và lệnh "finger" cung cấp thông tin chi tiết về người dùng như họ tên và địa chỉ Nếu cần thay đổi thông tin cá nhân, lệnh "chfn" sẽ hỗ trợ Để xem nội dung của tập tin từ đầu, dùng lệnh "head", và để xem từ cuối, sử dụng lệnh "tail" Lệnh "hostname" cho phép xem và thay đổi tên máy, còn "passwd" được dùng để đổi mật khẩu cho người dùng.
4.3 Sử dụng trợ giúp man
Linux cung cấp một hệ thống thư viện mạnh mẽ cho phép người dùng tìm kiếm thông tin theo từ khóa Với nhiều lệnh và tùy chọn khác nhau, việc ghi nhớ tất cả có thể trở nên khó khăn, vì vậy Linux hỗ trợ người dùng bằng trình trợ giúp man để tra cứu thông tin cần thiết.
Ví dụ: Tìm kiếm các thông tin về lệnh ls
$man ls Để thoát khỏi man: chọn phím q
Man phân dữ liệu lưu trữ thành những đoạn (session) khác nhau với các chủ đề khác nhau là
Session Tên chủ đề Ý nghĩa
1 user command các lệnh thông thường của hệ điều hành
2 system call các hàm thư viện kernel của hệ thống
3 subroutines các hàm thư viện lập trình
4 devices các hàm truy xuất tập tin và xử lý thiết bị
5 File format các hàm định dạng tập tin
6 games các hàm liên quan đến trò chơi
8 Sys admin các hàm quản trị hệ thống
Xác định cụ thể thông tin của một chủ đề nào, chúng ta dùng lệnh man như sau:
Ví dụ: man 3 printf Xem các thông tin về hàm prinf dùng trong lập trình
Nếu không xác định session thì session mặc nhiên là 1.
Cài đặt các gói phần mềm
Mục tiêu của bài viết này là hướng dẫn người dùng cách cài đặt, gỡ bỏ và nâng cấp phần mềm trên hệ thống Việc thực hiện các thao tác này là cần thiết để đảm bảo hệ thống hoạt động hiệu quả Bài viết sẽ cung cấp thông tin chi tiết về cách cài đặt phần mềm từ các dạng file nguồn khác nhau.
RedHat Package Manager (RPM) là hệ thống quản lý gói phần mềm hỗ trợ người dùng Linux, cung cấp nhiều tính năng để duy trì hệ thống Người dùng có thể dễ dàng cài đặt, xóa hoặc nâng cấp các gói phần mềm thông qua lệnh RPM lưu trữ thông tin về các gói đã cài và các tập tin của chúng trong cơ sở dữ liệu, cho phép truy vấn và xác thực các gói trong hệ thống Đối với người dùng XWindow, có thể sử dụng các chương trình như KDE-PRM hoặc Gnome-RPM thay cho lệnh dòng.
Khả năng nâng cấp phần mềm của RPM cho phép nâng cấp các thành phần riêng biệt của hệ thống mà không cần cài lại, giúp tiết kiệm thời gian và công sức Khi có phiên bản mới của hệ điều hành dựa trên RPM, như RedHat Linux, người dùng chỉ cần thực hiện nâng cấp mà không phải cài đặt lại toàn bộ hệ thống RPM hỗ trợ nâng cấp tự động và thông minh, đồng thời giữ lại các tập tin cấu hình qua các lần nâng cấp, đảm bảo rằng các tùy chọn sẵn có của hệ thống không bị thay đổi.
RPM được thiết kế để truy vấn thông tin hiệu quả về các package trong hệ thống Người dùng có thể tìm kiếm thông tin về các package hoặc tập tin cài đặt trong toàn bộ cơ sở dữ liệu, cũng như xác định tập tin cụ thể thuộc về package nào và vị trí của nó Các package RPM chứa các tập tin cung cấp thông tin hữu ích về nội dung và đặc điểm của package, giúp người dùng dễ dàng tìm kiếm thông tin trong từng package riêng lẻ.
Thẩm tra hệ thống (System Verification) là một tính năng nổi bật của RPM, cho phép người dùng kiểm tra lại các gói phần mềm Nếu có nghi ngờ về việc một tập tin bị xóa hoặc thay thế, tính năng này sẽ giúp xác minh tính toàn vẹn của hệ thống.
Trong gói 26, việc kiểm tra rất dễ dàng Cần chú ý đến các dấu hiệu bất thường của hệ thống và thực hiện kiểm tra, cài đặt lại nếu cần thiết.
RPM cần được thực hiện bởi người dùng quản trị (root) và có 5 chế độ hoạt động: cài đặt, xóa, nâng cấp, truy vấn và thẩm tra.
5.3.1 Cài đặt phần mềm bằng rpm
Gói RPM thường có tên tập tin theo định dạng foo-1.0-1.i386.rpm, trong đó bao gồm tên gói (foo), phiên bản (1.0), số hiệu phiên bản (1) và kiến trúc (i386) Để cài đặt gói này, bạn cần sử dụng lệnh cài đặt tương ứng.
# rpm –ivh tên-tập-tinRPM
#rmp –ivh foo-1.0-1.i386.rpm foo #################################
Một số trường hợp lỗi khi cài đặt o Package đã cài rồi o Xung đột với tập tin cũ đã tồn tại o Package phụ thuộc vào package khác
Ví dụ: package đã được cài đặt trước
# rpm -ivh foo-1.0-1.i386.rpm foo package foo-1.0-1 is already installed Nếu muốn cài chồng lên package đã cài, sử dụng tham số replacepkgs
#rpm –ivh -–replacepkgs tên-tập-tin-package
# rpm -ivh replacepkgs foo-1.0-1.i386.rpm
Ví dụ: xung đột với tập tin cũ đã tồn tại
# rpm -ivh foo-1.0-1.i386.rpm foo /usr/bin/foo conflicts with file from bar-1.0-1 Để bỏ qua lỗi này, có thể cài đè lên bằng tùy chọn replacefiles
# rpm -ivh replacefiles foo-1.0-1.i386.rpm
Ví dụ: Package phụ thuộc vào package khác
# rpm -ivh foo-1.0-1.i386.rpm failed dependencies: bar is needed by foo-1.0-1
Để giải quyết vấn đề này, cần cài đặt các package yêu cầu Nếu bạn muốn tiếp tục cài đặt mà không cài các package khác, hãy sử dụng tùy chọn nodeps Tuy nhiên, điều này có thể dẫn đến việc các package không hoạt động hiệu quả.
5.3.2 Loại bỏ phần mềm đã cài đặt trong hệ thống
Lưu ý : khi xóa chúng ta dùng tên-package chứ không dùng tên tập tin RPM
# rpm -e foo removing these packages would break dependencies: foo is needed by bar-1.0-1
# rpm –Uvh tên-tập-tinRPM
# rpm -Uvh foo-2.0-1.i386.rpm foo ####################################
Khi nâng cấp RPM, các phiên bản cũ của gói sẽ bị xóa Tuy nhiên, bạn có thể sử dụng lệnh này để cài đặt mà không làm mất phiên bản cũ nào.
Khi RPM tự động nâng cấp với tập tin cấu hình, một thông báo thường xuất hiện như: "saving /etc/foo.conf as /etc/foo.conf.rpmsave" Điều này cho thấy nếu tập tin cấu hình của phiên bản cũ không tương thích với phiên bản mới, hệ thống sẽ lưu lại và tạo tập tin cấu hình mới Quá trình nâng cấp thực chất là sự kết hợp giữa gỡ cài đặt và cài đặt, do đó, khi nâng cấp cũng có thể xảy ra các lỗi tương tự như khi cài đặt và gỡ cài đặt, cùng với một lỗi khác khi nâng cấp lên phiên bản cũ hơn.
# rpm -Uvh foo-1.0-1.i386.rpm foo package foo-2.0-1 (which is newer) is already installed Trong trường hợp này, thêm tham số oldpackage
# rpm -Uvh oldpackage foo-1.0-1.i386.rpm foo ####################################
5.3.4 Truy vấn các phần mềm
# rpm -q foo foo-2.0-1 //kết quả truy vấn
Thay vì chỉ xác định tên package, bạn có thể sử dụng thêm một số tham số khác kết hợp với -q để chỉ định package mà bạn muốn truy vấn Những tham số này được gọi là Tùy chọn Đặc tả Package.
+ -a: Truy vấn tất cả các package
+ -f : Truy vấn những package chứa tập-tin Khi xác định tập tin, phải chỉ rõ đường dẫn (ví dụ: /usr/bin/ls)
+ -p : Truy vấn package tên-tập-tin-package
Sau đây là các tùy chọn sử dụng để xác định loại thông tin cần tìm kiếm Chúng được gọi là Information Selection Options
+ -i: xác định các thông tin về package bao gồm: tên, mô tả, phiên bản, kích thước, ngày tạo, ngày cài đặt, nhà sản xuất …
+ -l: Hiển thị những tập tin trong package
+ -s: Hiển thị trạng thái của các tập tin trong package
+ -d: hiển thị danh sách tập tin tài liệu cho package (ví dụ man, README, info file …)
+ c: hiển thị danh sách tập tin cấu hình
5.3.5 Kiểm tra các tập tin đã cài đặt
Các thông tin dùng kiểm tra là: kích thước, MD5 checksum, quyền hạn, loại tập tin, người sở hữu, nhóm sở hữu tập tin
+ rpm –V tên-package: Kiểm tra tất cả các tập tin trong package
+ rpm –vf tên-file: Kiểm tra tập tin tên-file + rpm –Va: Kiểm tra tất cả các package đã cài
Lệnh rpm -Vp tên-tập-tin-RPM cho phép kiểm tra một package với tập tin package xác định, thường được sử dụng khi cơ sở dữ liệu của RPM gặp sự cố hoặc bị hỏng.
Khi kiểm tra, nếu không có lỗi, sẽ không có hiển thị; ngược lại, hệ thống sẽ thông báo Dòng thông báo bao gồm 8 ký tự và tên tập tin, trong đó mỗi ký tự thể hiện kết quả so sánh thuộc tính của tập tin với thuộc tính trong cơ sở dữ liệu RPM Dấu chấm (.) biểu thị rằng quá trình kiểm tra đã hoàn tất, trong khi các ký tự khác đại diện cho các lỗi phát hiện được trong quá trình kiểm tra.
+ 5 – MD5 checksum + S – kích thước tập tin + L – liên kết mềm + T - thời gian cập nhật tập tin + D - thiết bị
+ U – người sở hữu + G – nhóm sở hữu + M - quyền truy xuất và loại tập tin
+ ? – không tìm thấy tập tin
5.3.6 Cài đặt phần mềm file nguồn *.tar, *.tgz
Ngoài phần mềm dạng file nhị phân (*.rpm), còn có phần mềm được cung cấp dưới dạng mã nguồn như *.tar hoặc *.tgz Để cài đặt phần mềm này, người dùng cần tham khảo các file hướng dẫn (README hoặc INSTALL) nằm trong thư mục con sau khi giải nén mã nguồn bằng lệnh tar Quy trình cài đặt thường bao gồm các bước hướng dẫn cụ thể từ các file này.
Bước 1: Giải nén file tar
[root@bigboy tmp]# tar -xvzf linux-software-1.3.1.tar.gz linux-software-1.3.1/ linux-software-1.3.1/plugins-scripts/
linux-software-1.3.1/linux-software-plugins.spec [root@bigboy tmp]#
Tạo các thư mục con chứa các file cài đặt [root@bigboy tmp]# ls linux-software-1.3.1 linux-software-1.3.1.tar.gz [root@bigboy tmp]#
Bước 2: Chuyển vào thư mục con và tham khảo các file INSTALL, README
[root@bigboy tmp]# cd linux-software-1.3.1 [root@bigboy linux-software-1.3.1]# ls COPYING install-sh missing plugins depcomp LEGAL mkinstalldirs plugins-scripts FAQ lib linux-software.spec README
Helper.pm Makefile.am linux-software.spec.in REQUIREMENTS
INSTALL Makefile.in NEWS subst.in [root@bigboy linux-software-1.3.1]#
Bước 3: Sau đó dựa vào chỉ dẫn trong file (INSTALL, README) để cài đặt phần mềm
1 Trình bày các yêu cầu đối với hệ thống để cài đặt hệ điều hành Linux
2 Cho biết các chế độ cài đặt Linux; Ưu và nhược điểm của mỗi chế độ cài đặt?
1 Cài Đặt Ubuntu 11.04 trên máy thực
Ubuntu có thể được cài đặt với đĩa đồ họa CD Hãy chắc chắn rằng máy tính được thiết lập để khởi động đĩa CD trước đĩa cứng
1 Đưa đĩa Ubuntu vào ổ đĩa CD của bạn
2 Bắt đầu hoặc khởi động lại máy tính Màn hình ngôn ngữ xuất hiện
3 Chọn ngôn ngữ của bạn mong muốn và nhấp vào Forward Xuất hiện cửa số
4 Chọn vị trí gần nhất với vị trí của bạn và nhấn Forward Bàn phím bố trí cửa sổ xuất hiện
5 Chọn cách bố trí bàn phím Click Forward Phân bổ không gian cửa sổ ổ đĩa xuất hiện
THAO TÁC VỚI TẬP TIN VÀ THƯ MỤC
Cấu trúc hệ thống tập tin & thư mục
Mục tiêu của bài viết là giới thiệu cấu trúc tập tin và thư mục trong hệ điều hành Linux, một yếu tố cơ bản tương tự như các hệ điều hành khác Bài viết sẽ cung cấp cho người học cái nhìn tổng quan về các thành phần của hệ thống tập tin và thư mục, cùng với chức năng cụ thể của từng thành phần.
- Hệ thống tập tin là một phần cơ bản của hệ điều hành Linux
- Một hệ thống tập tin là thiết bị mà nó đã được định dạng để lưu trữ tập tin và thư mục
Hệ thống tập tin Linux bao gồm các thành phần như đĩa mềm, CD-ROM và các phân vùng của đĩa cứng Những hệ thống tập tin này thường được tạo ra trong quá trình cài đặt hệ điều hành, nhưng cũng có thể thay đổi khi thêm thiết bị hoặc chỉnh sửa các phân vùng đã tồn tại Do đó, việc hiểu biết về cấu trúc hệ thống tập tin trong Linux là rất quan trọng.
Linux hỗ trợ nhiều loại hệ thống tập tin như ext2, ext3, MS-DOS và proc, trong đó ext3 là hệ thống tập tin cơ bản hiện tại Hệ thống này cho phép đặt tên tập tin tối đa 256 ký tự và kích thước tối đa lên đến 4 terabytes Ngoài ra, Linux cũng hỗ trợ tên tập tin dài cho các tập tin MS-DOS và phân vùng FAT32 Hệ thống tập tin proc (/proc) là một hệ thống tập tin ảo, không chiếm dung lượng đĩa Ngoài những hệ thống tập tin đã nêu, Linux còn hỗ trợ các hệ thống khác như iso9660, UMSDOS và Network File System (NFS).
- Các thành phần của hệ thống tập tin:
+ Super Block: là một cấu trúc được tạo tại vị trí bắt đầu hệ thống tập tin
Nó lưu trữ thông tin về hệ thống tập tin như: Thông tin về block-size, free block, thời gian gắn kết (mount) cuối cùng của tập tin
Inode (256 byte) lưu trữ thông tin về các tập tin và thư mục trong hệ thống tập tin, nhưng không lưu tên thực của chúng Mỗi tập tin được tạo ra sẽ được phân bổ một inode, trong đó chứa thông tin về loại tập tin và quyền truy cập của nó.
Người sở hữu tập tin có thể kiểm tra kích thước và số lượng hard link liên quan đến tập tin đó Thông tin về ngày và thời gian chỉnh sửa lần cuối cũng rất quan trọng Ngoài ra, vị trí lưu trữ nội dung tập tin trong hệ thống tập tin cũng cần được xác định rõ ràng.
Storageblock là khu vực lưu trữ dữ liệu thực sự cho các tập tin và thư mục, được chia thành các Data Block Dữ liệu được lưu trữ trên đĩa trong các block này, mỗi block thường chứa 1024 byte Ngay cả khi tập tin chỉ có một ký tự, vẫn cần cấp phát một block để lưu trữ, vì không có ký tự kết thúc cho tập tin.
+ Data Block của tập tin thông thường lưu inode của tập tin và nội dung của tập tin
+ Data Block của thư mục lưu danh sách những entry bao gồm inode number, tên của tập tin và những thư mục con
Hệ thống thư mục trong Linux có cấu trúc bắt đầu từ thư mục gốc (/), khác với khái niệm ổ đĩa trong Windows Trong Linux, dấu “.” đại diện cho thư mục hiện hành, trong khi dấu “ ” chỉ thư mục cha Ví dụ, nếu thư mục hiện hành là /usr/bin, thì đường dẫn /local tương đương với /usr/local.
Trong cấu trúc hệ thống, thư mục gốc được gán vào phân vùng đầu tiên, trong khi thư mục /usr được gán vào phân vùng thứ hai Dữ liệu trong thư mục /home sẽ được lưu trữ trên phân vùng thứ ba Tương tự, dữ liệu từ thư mục /usr/local sẽ ghi vào phân vùng thứ tư, còn dữ liệu từ thư mục /usr không thuộc /usr/local sẽ được lưu vào phân vùng thứ hai.
Linux sử dụng các tập tin thiết bị để chỉ đến các partition trên ổ đĩa vật lý, nằm trong thư mục /dev Các tập tin này có định dạng đầu tiên là ký tự xác định loại ổ đĩa, chẳng hạn như đĩa mềm (fd), đĩa cứng (hd) và đĩa SCSI (sd) Sau đó, chúng được theo sau bởi số thứ tự ổ đĩa, với ổ đĩa đầu tiên được ký hiệu là a, ổ đĩa thứ hai là b, và cuối cùng là số thứ tự partition.
Ví dụ: tập tin chỉ đến các thiết bị:
+ ổ mềm thứ nhất: /dev/fd0 + partition thứ nhất của ổ đĩa cứng đầu tin: /dev/hda1 + partition thứ 3 của đĩa cứng thứ 2: /dev/hdb3
Các thư mục cơ bản trên Linux
Thư mục /bin và /sbin chứa các tập tin nhị phân cần thiết cho việc khởi động và thực thi các lệnh Trong khi đó, thư mục /boot lưu trữ kernel Linux và các file ảnh hỗ trợ quá trình tải hệ điều hành.
/lib Chứa các thư viện chia xẻ cho các tập tin nhị phân trong thư mục /bin và /sbin, chứa kernel module
/usr/local Chứa các thư viện, các phần mềm để chia xẻ cho các máy khác trong mạng /tmp Chứa các file tạm
/dev Chứa các tập tin thiết bị (như CDROM, floppy), và một số file đặc biệt khác.
/etc Chứa các tập tin cấu hình hệ thống
/home Chứa các thư mục lưu trữ home directory của người dùng
/root Lưu trữ home directory cho user root
/usr Lưu trữ tập tin của các chương trình đã được cài đặt trong hệ thống
/var Lưu trữ log file, hàng đợi của các chương trình ứng dụng, mailbox của người dùng
Trong hệ thống, các mount point chứa các thiết bị được gắn vào Một số thư mục có thể được sử dụng làm mount point cho các thiết bị bao gồm: /boot, /home, /root, /tmp, /usr, /usr/local, /opt, và /var.
Thao tác với tập tin, thư mục
Mục tiêu: Trình bày các thao tác trên tập tin, thư mục một cách chi tiết, từ cú pháp lệnh đến chức năng và các ví dụ cụ thể
2.1 Thao tác trên thư mục
2.1.1 Đường dẫn tương đối và tuyệt đối Đường dẫn trong Linux sử dụng là dấu / Để xác định một tập tin hay thư mục chúng ta dùng đường dẫn tuyệt đối hay tương đối Đường dẫn tuyệt đối là đường dẫn đầy đủ đi từ thư mục gốc (/) của cây thư mục Ví dụ: /home/hv, /usr/local/vd.txt
Khi làm việc với các tập tin và thư mục con, việc sử dụng đường dẫn tương đối là rất hữu ích Đường dẫn tương đối được xác định từ thư mục hiện tại Chẳng hạn, nếu bạn đang ở thư mục /home/hv và thực hiện lệnh cat test.txt, bạn sẽ xem nội dung của tập tin test.txt trong thư mục đó.
Trong Linux, chương trình thực thi chủ yếu bao gồm hai loại: tập tin lệnh và tập tin binary Tập tin lệnh chứa các lệnh của shell, trong khi tập tin binary chứa mã máy Không giống như các hệ điều hành khác, Linux không sử dụng phần mở rộng tập tin để xác định chương trình thực thi; phần mở rộng chỉ mang tính chất mô tả, ví dụ như txt cho tập tin văn bản và conf cho tập tin cấu hình Để một tập tin có thể được thực thi, cần phải gán quyền thực thi (x) cho nó.
Để thực thi chương trình, bạn cần xác định đường dẫn chính xác hoặc sử dụng biến môi trường PATH Nếu muốn thực thi tệp tin trong thư mục hiện hành, bạn phải sử dụng cú pháp /tên-file.
Lệnh pwd cho phép xác định vị trí thư mục hiện hành
[natan@netcom bin]$ pwd /usr/local/bin
Lệnh cd cho phép thay đổi thư mục
$cd [thư-mục] thư-mục: là nơi cần di chuyển vào
Lệnh ls cho phép liệt kê nội dung thư mục
Cú pháp lệnh "ls" trong hệ điều hành cho phép người dùng hiển thị danh sách các tập tin và thư mục Sử dụng "ls -x" để trình bày kết quả trên nhiều cột, trong khi "ls -l" cung cấp thông tin chi tiết về các tập tin Để xem tất cả các tập tin, bao gồm cả tập tin ẩn, người dùng có thể sử dụng "ls -a".
-rw-r r 1 root root 920 Jun 25 2001 im_palette-small.pal -rw-r r 1 root root 224 Jun 25 2001 im_palette-tiny.pal -rw-r r 1 root root 5464 Jun 25 2001 imrc
-rw-r r 1 root root 10326 Apr 12 08:42 info-dir lrwxrwxrwx 1 root root 11 Apr 12 07:52 init.d -> rc.d/init.d Ý nghĩa các cột từ trái sang phải
+ Cột 1: ký tự đầu tiên: - chỉ tập tin bình thường, d chỉ thư mục, l chỉ link và phía sau có dấu -> chỉ tới tập tin thật
+ Các ký tự còn lại chỉ quyền truy xuất + Cột thứ 2: Chỉ số liên kết đến tập tin này
Cột thứ 3 và 4 cung cấp thông tin về người sở hữu và nhóm sở hữu của tập tin Cột thứ 5 hiển thị kích thước của tập tin hoặc thư mục Cột thứ 6 chỉ ra ngày giờ sửa chữa cuối cùng, trong khi cột thứ 7 liệt kê tên của tập tin hoặc thư mục Để xem thông tin của một hoặc nhiều tập tin, người dùng có thể thực hiện các thao tác cần thiết.
$ls -l tập-tin1 tập-tin2 …
Lệnh mkdir cho phép tạo thư mục
$mkdir [tùy-chọn] [thư-mục]
Ví dụ: $mkdir /home/web
Lệnh cho phép xóa thư mục rỗng
$rmdir [tùy-chọn] [thư-mục]
Ví dụ: $rmdir /home/web
Lệnh cat dùng hiển thị nội dung của tập tin dạng văn bản Để xem tập tin, chọn tên tập tin làm tham số
Lệnh cat còn cho phép xem nhiều tập tin cùng lúc
Lệnh cat có thể được sử dụng để tạo và soạn thảo văn bản dạng text Khi sử dụng, dấu '>' sẽ xóa nội dung cũ và ghi nội dung mới vào tập tin, trong khi dấu '>>' sẽ ghi nối nội dung mới vào tập tin mà không xóa nội dung cũ.
$cat > [Enter]
> Các-dòng-dữ-liệu-của-tập tin
Lệnh more cho phép xem nội dung tập tin theo từng trang màn hình
Lệnh cp cho phép sao chép tập tin
$cp
Ví dụ: $cp /etc/passwd /root/passwd
Lệnh mv cho phép thay đổi tên tập tin và di chuyển vị trí của tập tin
$mv < tên-tập-tin-mới>
Ví dụ: $cp /etc/passwd /root/pwd
Lệnh rm cho phép xóa tập tin, thư mục
$rm [tùy-chọn] [tên-tập-tin/thưmục]
Các tùy chọn thường dùng:
-r xóa thư mục và tất cả các tập tin và thư mục con
-l xác nhận lại trước khi xóa
Cho phép tìm kiếm tập tin thỏa mãn điều kiện
#find [đường-dẫn] [biểu-thức-tìm-kiếm] o đường-dẫn: là đường dẫn thư mục tìm kiếm o biểu-thức-tìm-kiếm: tìm các tập tin hợp với điều kiện tìm
Tìm 1 tập tin xác định:
#find [thư-mục] –name [tên-tập-tin] –print Ngoài ra, có thể sử dụng những kí hiệu sau:
“*”: viết tắt cho một nhóm ký tự
“?”: viết tắt cho một ký tự
Có thể sử dụng man để có các lựa chọn tìm kiếm đầy đủ hơn
Lệnh grep cho phép tìm kiếm một chuỗi nào đó trong nội dung tập tin
#grep [biểu-thức-tìm-kiếm] [tên-tập-tin]
Tìm trong tập tin có tên [tên-tập-tin] những dữ liệu thỏa mãn [biểu-thức- tìm-kiếm]
Ví dụ: grep “nva” /etc/passwd
Tìm kiếm trong tập tin /etc/passwd và hiển thị các dòng có xuất hiện chuỗi
Là lệnh hỗ trợ việc tạo và thay đổi nội dung tập tin
Cú pháp: touch file
Ví dụ: #touch file1.txt file2.txt (tạo hai tập tin file1.txt và file2.txt)
Sao chép và chuyển đổi file
Ví dụ: dd if=/mnt/cdrom/images/boot.img of=/dev/fd0 (if là input file, of là output file)
Quyền truy cập, sở hữu đối với tập tin và thư mục
Trong hệ điều hành Linux, mỗi tập tin và thư mục đều có người sở hữu và quyền truy cập riêng Bài viết này sẽ giới thiệu về các quyền liên quan đến tập tin và thư mục, đồng thời hướng dẫn cách gán quyền và thay đổi quyền sở hữu cho các tập tin và thư mục một cách chi tiết.
Tất cả các tập tin và thư mục trong Linux đều có người sở hữu và quyền truy cập riêng Chúng ta có khả năng thay đổi các thuộc tính này cho từng tập tin hoặc thư mục Quyền truy cập của tập tin cũng giúp xác định xem tập tin đó có phải là một chương trình hay không, ví dụ như khi sử dụng lệnh ls -l.
-rw-r r 1 fido users 163 Dec 7 14 : 31 myfile
Cột đầu trong Linux chỉ ra quyền hạn truy cập của tập tin, ví dụ như ký tự -rw-r r thể hiện quyền truy cập của tập tin myfile Hệ điều hành này cho phép người sử dụng xác định quyền đọc (read), viết (write) và thực thi (execute) cho từng đối tượng, bao gồm 3 dạng đối tượng khác nhau.
+ Người sở hữu (the owner) + Nhóm sở hữu (the group owner) + Người khác (“other users” hay everyone else)
Quyền đọc cho phép người dùng truy cập và xem nội dung của tập tin Đối với thư mục, quyền đọc không chỉ cho phép xem nội dung mà còn cho phép di chuyển vào bên trong thư mục đó.
Quyền viết trong hệ thống tập tin cho phép người dùng thay đổi nội dung hoặc xóa các tập tin Đối với thư mục, quyền này cho phép tạo, xóa hoặc đổi tên các tập tin mà không cần quan tâm đến quyền cụ thể của từng tập tin Do đó, quyền viết của thư mục có thể vượt qua các quyền truy cập của các tập tin bên trong nó.
Quyền thực thi cho phép người dùng gọi chương trình vào bộ nhớ thông qua việc nhập tên tệp từ bàn phím Đối với thư mục, người dùng chỉ có thể truy cập nếu có quyền thực thi với thư mục đó bằng lệnh cd.
-rw-r r 1 fido users 163 Dec 7 14 : 31 myfile
Ký tự đầu tiên trong quyền truy cập của một tập tin cho biết loại của nó: dấu “-” biểu thị một tập tin bình thường, trong khi ký tự “d” cho thấy đó là một thư mục Ngoài ra, ký tự “c” đại diện cho thiết bị ngoại vi dạng ký tự, như bàn phím, và ký tự “b” dùng cho thiết bị ngoại vi dạng block, chẳng hạn như ổ đĩa cứng.
Chín ký tự tiếp theo được chia thành ba nhóm, giúp xác định quyền của người sở hữu (owner), nhóm sở hữu (group) và những người còn lại (other) Mỗi nhóm quyền này cho phép quản lý quyền đọc, viết và thực thi theo thứ tự Quyền đọc và viết được thiết lập rõ ràng trong cấu trúc này.
Trong hệ thống quyền truy cập, ký hiệu "r" đại diện cho quyền đọc ở vị trí đầu tiên, "w" biểu thị quyền ghi ở vị trí thứ hai, và "x" thể hiện quyền thực thi ở vị trí thứ ba Nếu một quyền không được cấp, ký hiệu "-" sẽ xuất hiện ở vị trí tương ứng.
Loại tập tin Owner group owner other users
Tập tin myfile có quyền sở hữu rw, cho phép người sở hữu thực hiện cả hai thao tác đọc và viết Trong khi đó, nhóm sở hữu và những người khác chỉ có quyền đọc (read-only) Ngoài ra, các ký tự cũng chỉ ra rằng myfile không phải là một chương trình.
Quyền hạn truy cập có thể được biểu diễn bằng ba số, tương ứng với ba quyền: đọc (read), ghi (write) và thực thi (execute) Mỗi quyền được thể hiện bằng một bit, với giá trị 1 nếu được cấp quyền và 0 nếu không Giá trị nhị phân của ba bit này sẽ xác định quyền hạn cho từng nhóm người dùng.
Bit 2 Bit 1 Bit 0 read write excute
Ví dụ: chỉ có quyền đọc 100 có giá trị là 4 có quyền đọc và thực thi 101 có giá trị là 5
Ví dụ: Nếu có quyền read và excute thì số của quyền là: 4+1 =5 read, write và excute: 4+2+1=7
Tổ hợp của 3 quyền trên có giá trị từ 0 đến 7
+ 0 or -: Không có quyền + 1 or x: execute
+ 2 or -w-: write-only (race) + 3 or -wr: write và execute + 4 or r : read-only
+ 5 or r-x: read và execute + 6 or rw-: read và write + 7 or rwx: read, write và execute
Như vậy khi cấp quyền trên một tập tin/thư mục, có thể dùng số thập phân gồm
3 con số Số đầu tiên miêu tả quyền của sở hữu, số thứ hai cho nhóm và số thứ ba cho những người còn lại
Một tập tin có quyền 751 cho thấy rằng chủ sở hữu được phép đọc, ghi và thực thi (7), nhóm có quyền đọc và thực thi (5), trong khi những người khác chỉ có quyền thực thi (1).
Người sử dụng có quyền đọc và sao chép tập tin, và khi sao chép, tập tin đó sẽ thuộc quyền sở hữu của người sao chép.
-rw-r r 1 root root 1113 Oct 13 12 : 30 /etc/passwd
-rw-r r 1 ndhung admin 1113 Oct 15 10 : 37 passwd
Dùng cấp quyền hạn truy cập của tập tin hay thư mục Chỉ có chủ sở hữu và superuser mới có quyền thực hiện các lệnh này
$chmod [nhóm-người-dùng] [thao-tác] [quyền-hạn] [tên-tập-tin]
Nhóm-người-dùng Thao tác Quyền u – user + : thêm quyền r – read g – group - : xóa quyền w – write o – others = : gán ngang quyền x – excute a – all
Một số ví dụ: gán quyền trên tập tin myfile
Gán thêm quyền write cho group: $ chmod g+w myfile
Xóa quyền read trên group và others: $ chmod go-w myfile
Cấp quyền x cho mọi người:
Lệnh $ chmod +x myfile cho phép thay đổi quyền truy cập của tập tin, nhưng kết quả phụ thuộc vào quyền hiện có trước đó Về mặt bảo mật hệ thống, việc thay đổi quyền truy cập một cách tuyệt đối giúp giảm thiểu sai sót Quyền truy cập của thư mục được thay đổi tương tự như tập tin, tuy nhiên, nếu không có quyền thực hiện (execute) trên thư mục, người dùng không thể truy cập vào thư mục đó Những người có quyền viết trong thư mục đều có khả năng xóa tập tin bên trong, bất kể quyền của họ đối với các tập tin đó Do đó, hầu hết các thư mục có quyền drwxr-xr-x, cho phép chỉ người sở hữu thư mục mới có quyền tạo và xóa tập tin bên trong.
Thư mục có quyền đặc biệt cho phép mọi người tạo và chỉnh sửa tập tin, nhưng chỉ người tạo ra mới có quyền xóa tập tin, điều này được thực hiện thông qua sticky bit Thư mục /tmp thường có sticky bit được kích hoạt, với quyền truy cập là drwxrwxrwt.
Ta thấy chữ t, cuối cùng trong nhóm các quyền, thể hiện cho sticky bit của /tmp Để có sticky bit, ta sử dụng lệnh: chmod 1????????? tên_thư_mục
Ngoài ra, chúng ta cũng có thể gán quyền trực tiếp thông qua 3 chữ số xác định quyền như sau:
$chmod [giá-trị-quyền] [tên-tập-tin]
Ví dụ: Cấp quyền cho tập tin myfile
-wrxr-xr-x $chmod 755 myfile -r-xr r $chmod 522 myfile -rwxrwxrwx $chmod 777 myfile
Lệnh chown dùng để thay đổi người sở hữu trên tập tin, thư mục
Cú pháp: $chown [tên-user:tên-nhóm] [tên-tập-tin/thư-mục]
$chown –R [tên-user:tên-nhóm] [thư-mục]
Liên kết tập tin
Mục tiêu: Trình bày các dạng liên kết tập tin trong Linux và cách sử dụng các dạng liên kết này
Liên kết (Link) là việc tạo ra một tên tập tin thứ hai cho một tập tin hiện có mà không cần sao chép nội dung Chẳng hạn, để tạo một tập tin giống như /usr/lib/testfile trong thư mục /usr/tim, ta chỉ cần sử dụng lệnh để tạo liên kết.
#ln /usr/bill/testfile /usr/tim/testfile
Cú pháp của lệnh ln:
Lý do chính để tạo liên kết là nhằm nhân bản tập tin một cách hiệu quả Trong trường hợp này, cả hai tập tin đều là một, vì vậy bất kỳ sự thay đổi nào trên một tập tin sẽ ngay lập tức ảnh hưởng đến tập tin còn lại.
Hard Link là một loại liên kết trong hệ thống tập tin, trong đó hai inode entry tương ứng trỏ đến cùng một nội dung vật lý, tức là chúng có cùng inode number Để kiểm tra điều này, bạn có thể sử dụng lệnh sau:
Sau đó tạo một liên kết có tên khác và hiển thị thông tin của inode entry
Cả hai tập tin đều có inode number giống nhau
Liên kết biểu tượng (symbolic link) là một loại liên kết không sử dụng mục inode để kết nối Nó thường được sử dụng để tạo ra các driver thiết bị, ví dụ như /dev/modem thay vì /dev/cua1 Để tạo một liên kết biểu tượng, bạn có thể sử dụng tùy chọn -s của lệnh ln.
In the example provided, the inode numbers of different files are displayed, revealing a symbolic link: "lrwxrwxrwx 1 root root 6 Sep 16:35 anotherfile -> bigfile" alongside the regular file entry "-rw-rw-r 1 root root 2 Sep 17:23 bigfile."
Lưu ý: khi xóa tập tin gốc, nội dung của tập tin hard link không bị ảnh hưởng nhưng nội dung tập tin symbolic link không xem được.
Bài tập thực hành
1 Linux là gì? Nêu các đặc điểm của hệ điều hành Linux
2 So sánh các ưu khuyết điểm của hệ điều hành Linux so với hệ điều hành Windows
3 Trình bày kiến trúc và chức năng các thành phần chính của Linux
Những trọng tâm cần chú ý trong bài
- Trình bày được lịch sử phát triển của Linux;
- Nắm được các đặc tính cơ bản của hệ điều hành;
Bài mở rộng và nâng cao
Tim hiểu các nội dung sau:
Hệ điều hành Ubuntu (Wikipedia)
Giới thiệu về Debian GNU/Linux (Wikipedia)
Ubuntu thay đổi trở về giao diện Gnome
Yêu cầu về đánh giá kết quả học tập
+ Về kiến thức: Trình bày được lịch sử phát triển của Linux; Nắm được các đặc tính cơ bản của hệ điều hành;
Kỹ năng sử dụng thành thạo các trình duyệt và ứng dụng là rất quan trọng để tìm kiếm thông tin một cách hiệu quả Điều này giúp người dùng rút trích những thông tin cần thiết và đáp ứng đúng yêu cầu của công việc hoặc nghiên cứu.
+ Năng lực tự chủ và trách nhiệm: Tỉ mỉ, cẩn thận, chính xác, ngăn nắp trong công việc
+ Về kiến thức: Được đánh giá bằng hình thức kiểm tra viết, trắc nghiệm, vấn đáp
+ Về kỹ năng: Đánh giá kỹ năng thực hành tìm kiếm thông tin và rút trích được những thông tin cần thiết, đúng yêu cầu
+ Năng lực tự chủ và trách nhiệm: Tỉ mỉ, cẩn thận, chính xác, ngăn nắp trong công việc
BÀI 2: CÀI ĐẶT HỆ ĐIỀU HÀNH LINUX
- Nắm yêu cầu đối với hệ thống cài đặt hệ điều hành Linux;
- Thực hiện việc cài đặt hệ điều hành lên máy tính;
- Thực hiện cấu hình thiêt bị;
- Cài đặt các gói phần mềm;
- Thực hiện các thao tác an toàn với máy tính
1 Yêu cầu đối với hệ thống
Linux yêu cầu cấu hình hệ thống tối thiểu thấp hơn so với các hệ điều hành khác, giúp người dùng dễ dàng cài đặt và sử dụng Để đảm bảo hoạt động hiệu quả, hệ thống cần đáp ứng các yêu cầu tối thiểu, nhưng thực tế, cấu hình càng cao thì hiệu suất càng tốt hơn.
Linux không yêu cầu cấu hình máy tính mạnh mẽ, nhưng nếu phần cứng quá yếu, có thể gặp khó khăn khi chạy X Window hoặc các ứng dụng có sẵn Để đảm bảo hiệu suất, cấu hình tối thiểu nên được sử dụng.
- CPU: Pentium MMX trở lên
- RAM: 64 MB trở lên cho Text mode, 192MB cho mode Graphics
- Đĩa cứng: Dung lượng đĩa còn phụ thuộc vào loại cài đặt
- 2M cho card màn hình nếu muốn sử dụng mode đồ họa
Mục tiêu của bài viết này là hướng dẫn chi tiết quá trình cài đặt hệ thống trên hệ điều hành Linux, giúp người học có thể tự thực hiện cài đặt một cách dễ dàng và hiệu quả.
2.1 Chọn phương thức cài đặt
- CD-Rom: Có thể khởi động từ CD-ROM hoặc khởi động bằng đĩa mềm boot
- Đĩa cứng: Cần sử dụng đĩa mềm boot (dùng lệnh dd hoặc mkbootdisk để tạo đĩa mềm boot)
- FS image: Sử dụng đĩa khởi động mạng Kết nối tới NFS sever
- FTP: Sử dụng đĩa khởi động mạng Cài trực tiếp qua kết nối FTP
- HTTP: Sử dụng đĩa khởi động mạng Cài trực tiếp qua kết nối HTTP
2.2 Chọn chế độ cài đặt
Chúng ta có thể chọn các chế độ:
- Linux text: chế độ text (Text mode)
- [Enter]: chế độ đồ họa (Graphical mode)
2.3 Chọn ngôn ngữ hiển thị trong quá trình cài đặt
Chọn ngôn ngữ “English” rồi chọn Next
Chọn loại bàn phím của mình, chọn Next
Chọn loại Mouse phù hợp với mouse của mình Khi chọn lưu ý cổng gắn mouse là serial hay PS/2, chọn Next
2.6 Lựa chọn loại màn hình
Hệ điều hành thường tự động nhận diện loại màn hình hiển thị Nếu không, bạn cần cấu hình lại màn hình hiển thị trong hộp thoại bên phải và chọn "Next".
2.7 Lựa chọn loại cài đặt
Một số loại cài đặt thông dụng:
- Workstation: Cài đặt hệ điều hành phục vụ cho công việc của một máy trạm
- Server: Cài đặt hệ điều hành phục vụ cho máy chủ
- Custom: có thể tích hợp các tùy chọn trên một cách tùy ý
Hệ thống tự động phân vùng ổ đĩa hợp lý để cài đặt hệ điều hành, thường tạo ra hai phân vùng chính là /boot và /, cùng với phân vùng swap.
- Manually partition with Disk Druid: Chia partition bằng tiện ích Disk Druid Đây là cách chia partition dưới dạng đồ họa dễ dùng
- Nếu ta là người mới học cách cài đặt thì nên lựa chọn Automatically partition
- Remove all Linux partitions on this system: loại bỏ tất cả các Linux partition có sẵn trong hệ thống
- Remove all partitions on this system: loại bỏ tất cả các partition có sẵn trong hệ thống
To optimize your storage, retain all existing partitions and utilize only the available free space for partitioning.
Tùy theo từng yêu cầu riêng mà ta có thể lựa chọn các yêu cầu trên cho phù hợp, sau đó chọn Next
2.10 Chia Partition bằng Disk Druid
Trong bước 8 ta chọn Manually partition with Disk Druid để thực hiện phân chia phân vùng sử dụng tiện ích Disk Druid
Disk Druid hiển thị các partition của đĩa dưới chế độ đồ họa ở phía trên, ta có thể chọn từng partition để thao tác
Chi tiết các partition gồm kích thước, loại hệ thống tập tin, thư mục được mount vào được mô tả trong hình sau:
- New: Tạo một partition mới, chỉ định tên phân vùng (mount point), loại filesystem (ext3) và kích thước (size) tính bằng Mbyte (tùy chọn)
- Edit: Thay đổi lại các tham số của phân vùng được chọn
- Delete: Xóa phân vùng được chọn
- Reset: Phục hồi lại trạng thái đĩa như trước khi thao thác
- Make RAID: Sử dụng với RAID (Redundant Array of Independent Disks) khi ta có ít nhất 3 đĩa cứng
2.11 Cài đặt chương trình Boot Loader
Boot Loader là chương trình giúp người dùng chọn hệ điều hành để khởi động thông qua menu Sau khi lựa chọn, Boot Loader xác định các tập tin cần thiết để khởi động hệ điều hành và chuyển quyền điều khiển cho nó Chương trình này có thể được cài đặt vào Master Boot Record hoặc vào sector đầu tiên của phân vùng.
Linux cho phép sử dụng chương trình Boot Loader là GRUB hoặc LILO Cả 2 Boot Loader đều hỗ trợ quản lý nhiều hệ điều hành trên một hệ thống
Khi cài đặt Boot Loader vào Master Boot Record (MBR), hãy thực hiện điều này khi chưa có chương trình Boot Loader nào được cài đặt hoặc khi bạn chắc chắn rằng chương Boot Loader mới có khả năng khởi động các hệ điều hành khác trên máy Việc cài đặt lên MBR sẽ thay thế các chương trình Boot Loader trước đó bằng Boot Loader mới.
Khi cài đặt Boot Loader vào sector đầu tiên của partition, bạn có thể giữ nguyên chương trình Boot Loader hiện tại tại MBR mà không cần thay thế Trong trường hợp này, chương trình Boot Loader hiện tại sẽ kiểm soát trước và chuyển hướng đến chương trình Boot Loader của Linux khi có yêu cầu khởi động hệ điều hành này.
- Nếu không cài chương trình Boot loader thì phải sử dụng đĩa mềm boot để khởi động hệ điều hành
- Có thể đặt mật khẩu cho boot loader thông qua nút Change password
Cấu hình TCP/IP có thể thực hiện thông qua dịch vụ DHCP để tự động nhận địa chỉ IP, hoặc người dùng có thể chọn cấu hình cụ thể bằng cách nhập các thông số mạng trong mục chỉnh sửa.
- IPAddress: Chỉ định địa chỉ IP của host cài đặt
- Netmask Address: subnet mask cho địa chỉ IP trên
Active on boot: Card mạng được kích hoạt khi hệ điều hành khởi động
Khi khai báo tên máy chủ, nếu có tên DNS đầy đủ, hãy sử dụng tên đó Trong trường hợp không kết nối mạng, bạn có thể đặt tên cho máy thủ công Nếu không điền tên nào, giá trị mặc định sẽ là localhost.
Miscellaneous Settings: chỉ định địa chỉ gateway và Primary DNS, và một số thông số khác
Các trường không có giá trị thì các trường đó không được sử dụng trong hệ thống
Trong Linux, Firewall được tích hợp sẵn để bảo vệ hệ thống khỏi các truy cập trái phép từ bên ngoài Để sử dụng, bạn cần chọn kích hoạt Firewall và sau đó xác định loại dịch vụ mà bạn muốn cho phép truy cập từ bên ngoài.
2.14 Chọn ngôn ngữ hỗ trợ trong Linux
Trong Linux, người dùng có khả năng cài đặt và sử dụng nhiều ngôn ngữ khác nhau Bạn có thể chọn ngôn ngữ mặc định là tiếng Anh (Mỹ) và thêm các ngôn ngữ khác để phục vụ nhu cầu sử dụng.
2.15 Cấu hình khu vực địa lý của hệ thống
Các vị trí chia theo châu lục Ta có thể chọn mục này một cách thông qua việc định vị chuột tại đúng vị trí trên bản đồ
2.16 Đặt mật khẩu cho người quản trị
Trên hệ điều hành Linux, người quản trị được gọi là root, và mật khẩu của tài khoản này phải có ít nhất 6 ký tự Cần lưu ý rằng mật khẩu phân biệt chữ hoa và chữ thường Khi nhận được thông báo “Root password accepted”, điều đó có nghĩa là mật khẩu đã được chấp nhận.
Nếu không sử dụng password mạng có thể bỏ qua cấu hình này nhưng vẫn sử chế độ chọn mặc nhiên (chọn Enable MD5 passwords và Enable shadow passwords)
- Enable MD5 passwords: cho phép password sử dụng tới 256 ký tự thay vì chỉ tới 8 ký tự
- Enable shadow passwords: cung cấp cơ chế lưu trữ password an toàn
Password được lưu trữ trong tập tin /etc/shadow và chỉ có root mới được đọc
- Enable NIS: cho phép một nhóm máy trong một NIS domain sử dụng chung tập tin passwd và group Chọn các tham số sau:
+ NIS domain: Xác định NIS domain mà máy này tham gia
+ Use broadcast to find NIS server: Cho phép sử dụng thông điệp quảng bá để tìm NIS server
+ NIS Server: Xác định NIS server
+ Enable LDAP: Hệ thống sử dụng LDAP cho một vài hoặc tất cả các phép chứng thực
+ LDAP Server: Xác định LDAP server (dùng địa chỉ IP)
+ LDAP Base DN: cho phép tìm kiếm thông tin người dùng dựa trên DN
+ Use TLS (Transport Layer Security) lookups: cho phép LDAP gởi tên người dùng và password mã hóa tới LDAP server trước khi chứng thực
- Enable Kerberos: là hệ thống cung cấp các dịch vụ chứng thực trên mạng Các lựa chọn:
+ Realm: cho phép truy xuất tới mạng sử dụng Kerberos
+ KDC: cho phép truy xuất tới Key Distribution Center (KDC)
+ Admin Server: cho phép truy xuất tới server chạy kadmin
+ Enable SMB Authentication: Cài PAM để dùng một Samba server chứng thực cho các client
+ SMB Server: Xác định samba server mà các máy trạm kết nối tới để chứng thực
+ SMB Workgroup: Xác định workgroup mà samba server được cấu hình tham gia
2.18 Chọn các chương trình và Package cài đặt
Chọn các chương trình cần cài đặt: everything: cài tất cả các chương trình,
Minimal: chỉ cài một số chương trình hoặc phần mềm thông dụng
Nếu nắm rõ các package cần thiết cho các chương trình mong muốn thì chọn
Select individual packages Ta có thể chọn Details để chọn chi tiết các thành phần trong từng phần mềm hoặc nhóm các công cụ
2.19 Định dạng filesystem và tiến hành cài đặt
QUẢN TRỊ NGƯỜI DÙNG VÀ NHÓM
Thông tin của người dùng
Mục tiêu của bài viết là trình bày cơ chế quản lý người dùng trong hệ điều hành Linux, giúp người học hiểu rõ cách thức quản lý và lưu trữ thông tin người dùng trên hệ thống.
Trong hệ điều hành Linux, tài khoản root là tài khoản có quyền cao nhất, thường được sử dụng bởi quản trị viên để thực hiện các tác vụ cấu hình và bảo trì hệ thống Để quản lý hiệu quả, cần tạo tài khoản người dùng sớm nhất có thể Đối với các server quan trọng với nhiều dịch vụ khác nhau, việc tạo ra các superuser phù hợp cho từng dịch vụ là cần thiết, nhằm tránh việc sử dụng tài khoản root cho các công việc này Chẳng hạn, superuser cho công việc sao lưu chỉ cần quyền đọc (read-only) mà không cần quyền ghi.
Tài khoản root có quyền hạn lớn, thường là mục tiêu của các cuộc tấn công Do đó, người dùng cần cẩn trọng và tránh sử dụng tài khoản này qua telnet hoặc kết nối từ xa mà không có công cụ bảo mật an toàn.
Trong Linux, bạn có thể tạo tài khoản với tên khác nhưng có quyền root bằng cách thiết lập UserID bằng 0 Để phân biệt tài khoản đang đăng nhập, cần chú ý đến dấu nhắc của shell để nhận biết giữa tài khoản root và tài khoản người dùng thông thường Để chuyển đổi tài khoản đăng nhập, bạn có thể sử dụng lệnh su [tên tài khoản].
Ví dụ: login: nsd1 Password:******
[nsd1@DanaVTC nsd1]$ su - Password: ******
Trong ví dụ trên, dòng thứ ba ([nsd1@DanaVTC nsd1]$) với dấu $ cho thấy người sử dụng thông thường (nsd1) đang kết nối Ngược lại, dòng cuối cùng với dấu # cho biết rằng các lệnh đang được thực hiện với quyền root.
1.2 User Để đăng nhập và sử dụng hệ thống Linux cần phải có 1 tài khoản Trừ tài khoản root, các tài khoản khác do người quản trị tạo ra
Mỗi tài khoản người dùng yêu cầu một tên sử dụng (username) và mật khẩu (password) riêng biệt Thông tin tài khoản người dùng được lưu trữ trong tệp tin /etc/passwd của hệ thống.
Tập tin /etc/passwd là một tệp văn bản quan trọng trong hệ thống Unix/Linux, cho phép mọi người đọc nhưng chỉ có người dùng root mới có quyền chỉnh sửa.
The passwd file contains essential user account information in a Linux system, including user names, user IDs, group IDs, home directories, and default shells For example, the root user has the highest privileges with a user ID of 0 and uses /bin/bash as its shell, while the bin and daemon users have user IDs of 1 and 2, respectively, and are associated with specific system functions Other entries like halt and mail specify system services, while users like nthung and natan illustrate typical user accounts with their respective home directories and shells Understanding the structure of the passwd file is crucial for system administration and user management in Unix-like operating systems.
Trong đó, các thông tin bao gồm:
Dòng đầu tiên trong tập tin /etc/passwd chứa thông tin về người dùng root, với tất cả tài khoản có user_ID = 0 đều có quyền như root Tiếp theo là các tài khoản hệ thống không có thật và không thể đăng nhập vào hệ thống, cuối cùng là các tài khoản người dùng thông thường.
- Cột 1: Tên người sử dụng;
Mã liên quan đến mật khẩu tài khoản và ký hiệu "x" trong Linux được lưu trữ trong tập tin /etc/shadow, mà chỉ có người dùng root mới có quyền truy cập.
- Cột 3, cột 4: Mã định danh tài khoản (user ID) và mã định danh nhóm (group ID);
- Cột 5: Tên đầy đủ của người sử dụng;
- Cột 6: Thư mục cá nhân (Home Directory);
- Cột 7: Chương trình sẽ chạy đầu tiên sau khi người dùng đăng nhập vào hệ thống
1.2.2 Username và UserID Để quản lý người dùng, Linux sử dụng tên người dùng (user name) và định danh người dùng (user ID) để đăng nhập và truy xuất tài nguyên
Tên người dùng là chuỗi ký tự duy nhất xác định mỗi người dùng, trong khi số định danh người dùng kiểm soát hoạt động của họ Theo quy định, người dùng với định danh 0 là quản trị viên (root), các tài khoản hệ thống có định danh từ 1 đến 99, và người dùng bình thường có định danh bắt đầu từ 100 đến 500.
Mỗi người dùng đều có mật khẩu riêng, có thể thay đổi theo ý muốn; tuy nhiên, người quản trị có quyền thay đổi mật khẩu của các người dùng khác.
Mật khẩu người dùng được lưu trong tập tin /etc/passwd
Group ID (GID) là mã định danh dùng để xác định nhóm người dùng trong hệ thống GID giúp nhận biết người dùng thuộc nhóm nào Trên hệ điều hành Linux, GID thường được tự động tạo ra khi người dùng mới được khởi tạo, với giá trị tối thiểu là 500.
Khi người dùng đăng nhập vào hệ thống, họ được chuyển đến thư mục cá nhân (home directory) của mình, nơi mà mỗi người dùng có một thư mục riêng và toàn quyền quản lý Thư mục này lưu trữ dữ liệu cá nhân cùng với các thông tin hệ thống cần thiết cho hoạt động của người dùng, bao gồm biến môi trường, script khởi động và profile khi sử dụng X Window Thông thường, home directory của người dùng nằm trong /home, trong khi thư mục của root là /root Tuy nhiên, vị trí của thư mục cá nhân có thể được thay đổi thông qua các lệnh useradd hoặc usermod.
Quản lý người dùng
Mục tiêu: Trình bày các thao tác quản trị người dùng thông qua tài khoản người dùng
2.1 Tạo tài khoản người dùng Để tạo tài khoản, root có thể sử dụng lệnh useradd với cú pháp:
#useradd [-c mô_tả_người_dùng] [-d thư_mục_cá_nhân] [-m]
[-g nhóm_người_dùng] [tên_tài_khoản]
- Tham số –m sử dụng để tạo thư mục cá nhân nếu nó chưa tồn tại
- Chỉ có root được phép sử dụng lệnh này
Ví dụ: # useradd –c “Nguyen van B“ nvb
77 Để đặt mật khẩu cho tài khoản, dùng lệnh passwd
Changing password for user nvb New password: ****
Retype new password: **** passwd: all authentication tokens updated successfully Lưu ý:
- Đặt với độ dài tối thiểu 6 ký tự;
- Phối hợp giữa ký tự hoa, thường, ký số và ký tự đặc biệt
- Không nên đặt password liên quan đến tên tuổi, ngày sinh,… của mình và người thân
Khi nhiều người dùng cùng chia sẻ chức năng và dữ liệu, họ sẽ được nhóm lại trong cùng một nhóm Mỗi tài khoản Linux mặc định sẽ được tạo với một nhóm riêng, có tên trùng với tên tài khoản Ví dụ, trong tập tin /etc/passwd, thông tin người dùng nvb được ghi nhận như sau: nvb:x:1013:1013::/home/nvb:/bin/bash, cho thấy người dùng nvb có user_ID 1012 và thuộc nhóm 1013.
Xem tập tin /etc/group ta thấy:
# more /etc/group root:x:0:root
Lúc này, có thể kết nạp tài khoản nvb vào nhóm users bằng cách thay số 1013 bằng 100, là group_ID của nhóm users
Bạn có thể sử dụng lệnh `useradd -d` để kiểm tra các thông số mặc định khi tạo tài khoản người dùng, những thông tin này được lưu trữ trong thư mục `/etc/default/useradd`.
GROUP0 HOME=/home INACTIVE=-1 EXPIRESHELL=/bin/bash SKEL=/etc/skel
2.2 Thay đổi thông tin của tài khoản Để thay đổi thông tin của tài khoản, có thể thay đổi từ tập tin /etc/passwd hoặc dùng lệnh usermod Cú pháp lệnh usermod:
#usermod [-c thông_tin_người_dùng] [-d thư_mục_cá_nhân] [-m]
[-g nhóm_ người_dùng] [tên_tài_khoản]
Ví dụ: Cho tài khoản nvb vào nhóm admin
2.3 Tạm khóa tài khoản người dùng Để tạm thời khóa tài khoản trong hệ thống ta có thể dùng nhiều cách:
Khóa (locking) Mở khóa (unlock) passwd –l passwd –u usermod –L usermod –U
Để tạm khóa tài khoản, bạn có thể chỉnh sửa tập tin /etc/shadow bằng cách thay thế từ khóa "x" bằng "*", hoặc gán "/bin/false" vào shell mặc định của người dùng trong tập tin /etc/passwd.
Lệnh userdel được sử dụng để xóa một tài khoản người dùng trong hệ thống Ngoài ra, bạn cũng có thể xóa tài khoản bằng cách xóa dòng dữ liệu tương ứng trong tập tin /etc/passwd Cú pháp thực hiện lệnh này rất đơn giản và dễ hiểu.
Ví dụ: xóa tài khoản nvb (dùng tùy chọn –r để xóa toàn bộ thông tin liên quan tới user đó): #userdel –r nvb
Nhóm người dùng
Mục tiêu: Khi nhiều người dùng có cùng một chức năng, cùng chia xẻ nhau dữ liệu, có chung quyền trên tài nguyên, thường được nhóm thành một nhóm
Trong hệ điều hành Linux, mỗi nhóm được xác định bởi tên và định danh riêng, cho phép nhiều người dùng tham gia vào một nhóm Mặc dù người dùng có thể là thành viên của nhiều nhóm khác nhau, nhưng tại một thời điểm, họ chỉ có thể thuộc về một nhóm duy nhất.
Thông tin về nhóm lưu tại tập tin /etc/group Mỗi dòng định nghĩa một nhóm, các trường trên dòng cách nhau bởi dấu :
::
3.1 Tạo nhóm Để tạo một nhóm, có thể chỉnh sửa trực tiếp trong tập tin /etc/group hoặc dùng lệnh groupadd
Cú pháp: #groupadd [tên-nhóm]
3.2 Thêm người dùng vào nhóm
Để thêm người dùng vào nhóm, bạn có thể chỉnh sửa tệp tin /etc/group bằng cách nhập tên tài khoản người dùng cách nhau bằng dấu “;”, hoặc sử dụng lệnh để thực hiện việc này.
#usermod –g [tên-nhóm tên-tài-khoản]
3.3 Hủy nhóm Để hủy nhóm, có thể xóa trực tiếp nhóm trong tập tin /etc/group, hoặc dùng lệnh:
3.4 Xem thông tin về user và group
Cú pháp: #id
Lệnh cho phép xem thông tin về tài khoản hay nhóm trong hệ thống
Trong đó, tham số -g cho phép xem thông tin về nhóm
Ví dụ: xem groupID của một user vanphong: #id –g vanphong Để xem tên nhóm của một user nào đó, dùng lệnh: groups
Ví dụ: [root@server root]# groups root root: root bin daemon sys adm disk wheel Câu hỏi
1 Trình bày các loại tài khoản trên Linux
2 Cho biết ý nghĩa các thành phần trên tập tin /etc/passwd
BT1 Quản lý người dùng
1 Tạo các nhóm người dùng sau đây : tiep_thi,kinh_doanh,ban_hang
2 Tạo các tài khoản người dùng và nhóm người sau đây
Tài khoản Tên đầy đủ Nhóm chính Thành viên
Matiem Mai An Tiem tiep_thi tiep_thi,kinh_doanh dtdiem Doan thi diem dtdiem dtdiem
3 Them người dùng dtidiem vao nhóm ban_hang
4 Liệt kê tất cả các nhóm của dtdiem
5 Đăng nhập vào tài khoản dtdiem
6 Liệt kê tất cả nhóm của dtdiem
7 Tạo thư mục du_lieu trong thư mục người dùng của dtdiem
8 Ls-l xem chủ sở hữu và nhóm sở hữu của nó
9 Đăng nhập vào tài khoản matiem
10 Tạo 1 thư mục con tên toto bên trong /home/dtdiem Kết quả?
12 Xem người dùng hiện tại
14 Xem người dùng hiện tại
15 Đổi nhóm chính cho dtdiem là kinh_doanh
16 Đăng nhập vào tài khoản dtdiem
17 Liệt kê tất cả các nhóm của người dùng dtdiem Chú ý thứ tự của các nhóm
18 Tạo thư mục con data bên trong thư mục ng dùng dtdiem ( / home/dtdiem)
19 Làm thế nào để biết chủ sở hữu và nhóm sỡ hữu data,cho biết chủ sở hữu và
20 Đổi nhóm chính (tạm thời) của dtdiem thành ban_hang
21 Tạo tập tin xyz trong thư mục người dùng của dtdiem
25 Đăng nhập vào tài khoản matiem Kết quả
26 Mở khóa tài khoản matiem
27 Đăng nhập vào tài khoản matiem Kết quả
1 Tạo nhóm người dùng ban–giam-hieu giao vien,sinh vien
Tài khoản Tên đày đủ Nhóm chính
Huỳnh tuyết hoa ban giám hiệu giáo viên sinh viên ban giám hiệu,giáo viên, giáo viên sinh viên
3 Nhóm chính của người dùng hthoa là gì?
4 Đổi nhóm chính của hthoa thành “giáo_viên”
5 Đổi danh sách nhóm người dùng hthoa thành ban_giam_hieu, giao-vien, sinh- vien
6 Đăng nhập vào tk hthoa
7 Cho biết thư mục hiện hành là gì
8 Đi đến thư mục người dùng của hthoa
9 Tao tm giao_an trong thư mục ng dùng of hthoa?
10 Xem quyền truy xuất , chủ sở hữu nhóm sở hữu của tm giao-an
11 Đổi nhóm chính ( thời) của người dùng hthoa thành ban-giam-hieu
12 Tạo 1 tm người dùng tên cong_van trong thư mục người dùng của hthoa
13 Xem quyền truy xuất, chủ sở hữu, nhóm sở hữu của cong-van
14 Tạo 1 tm tin-thong-bao trong thư mục người dùng của hthoa
15 Xem quyền truy xuất, chủ sỏ hữu, nhóm sở hữu của tin-thong-bao
16 Đổi nhóm sở hữu of tm thong-bao thành s-v
17 Xem quyền truy xuất, chủ sở hữu, nhóm sở hữu of tm thong-bao
18 Copy tập tin /etc/password vào thư mục thong-bao
19 Bỏ quyền đọc (r) ra khỏi t.tin passwd) Kết quả là gì? Bạn có thấy nội dung của file passwd ko?
20 Liệt kê nội dung t.tin passwd không?
21 Thêm quyền đọc (r) cho chủ sở hữu và nhóm sở hữu của ttin passwd trong tin thông báo
22 Lặp lại câu 20 kết quả là gì ? tại sao?
23 Đăng nhập vào tk ng dùng cvtam
24 Thử đọc nội dung của t.tin password trong tin thong-bao (cat thong.bao/passwd) Có thể đọc được ko?
26 Đổi nhóm sở hữu của tập tin thong.bao/passwd thành sinh_vien
27 Lặp lại câu 23,24 lúc này bạn có thể xem được nội dung tập tin thong_bao/passwd không? Tại sao?
29 Đăng nhập vào tài khoản của tttung
30 Tạo 1 thư mục tên toto trong thư mục giao_an, bạn có tạo được không? Tại sao?
Những trọng tâm cần chú ý trong bài
-Hiểu cơ chế quản lý người dùng trong hệ điều hành Linux;
-Thực hiện việc tạo lập, quản lý người dùng
Bài mở rộng và nâng cao
1 Quản lý người dùng Linux trên giao diện text
- Xem thông tin chi tiết liên quan đến người dùng trong tập tin /etc/passwd
- Xem thông tin chi tiết liên quan đến nhóm người dùng trong tập tin /etc/group
- Xem thông tin chi tiết về mật khẩu trong tập tin /etc/shadow
Tạo nhóm hocvien gồm các user hv1, hv2, hv3 và đặt mật khẩu cho các user vừa tạo
Tạo nhóm admin gồm các user admin1, admin2 đặt mật khẩu cho các user vừa tạo
Thay đổi UID của hai user admin1, admin2 là 0
Thay đổi thông tin mô tả của người dùng
Học viên thứ nhất (hv1), học viên thứ hai (hv2) và học viên thứ ba (hv3) đều có những thông tin mô tả riêng biệt Bên cạnh đó, người quản trị 1 (admin1) và người quản trị 2 (admin2) cũng đóng vai trò quan trọng trong việc quản lý và điều hành.
- Thay đổi mật khẩu cho những người dùng trên
- Khóa tài khoản người dùng hv3
- Thử đăng nhập bằng tài khoản hv3
- Mở khóa tài khoản người dùng hv3
- Thử đăng nhập bằng tài khoản hv3
- Xóa tài khoản người dùng hv3
2 Quản lý người dùng trên giao diện đồ họa
- Tạo người dùng và nhóm:
- Thay đổi các thuộc tính liên quan đến người dùng
- Thay đổi nhóm của người dùng
- Giới hạn thời gian sử dụng tài khoản
- Tạm khóa tài khoản người dùng
- Giới hạn thời hạn sử dụng mật khẩu
Yêu cầu về đánh giá kết quả học tập
+ Về kiến thức: -Hiểu cơ chế quản lý người dùng trong hệ điều hành Linux; Thực hiện việc tạo lập, quản lý người dùng
+ Về kỹ năng: Tạo và quản lý tập tin & thư mục; Sử dụng các lệnh liên quan đến tập tin và thư mục;
+ Năng lực tự chủ và trách nhiệm: Tỉ mỉ, cẩn thận, chính xác, ngăn nắp trong công việc
+ Về kiến thức: Được đánh giá bằng hình thức kiểm tra viết, trắc nghiệm, vấn đáp
Kỹ năng quan trọng bao gồm đánh giá khả năng thực hành trong việc tạo và quản lý tập tin và thư mục, sử dụng các lệnh liên quan đến chúng, cũng như thực hiện quy trình tạo lập và quản lý người dùng Ngoài ra, việc thực hiện các thao tác an toàn với máy tính cũng là một phần không thể thiếu trong kỹ năng này.
+ Năng lực tự chủ và trách nhiệm: Tỉ mỉ, cẩn thận, chính xác, ngăn nắp trong công việc
CẤU HÌNH MẠNG
Cấu hình địa chỉ IP cho card mạng
Mục tiêu: Trình bày các thao tác : Xem địa chỉ IP, cấu hình địa chỉ IP, kiểm tra trạng thái của tất cả các card mạng
Lệnh ifconfig cho phép xem thông tin địa chỉ IP của PC
Ví dụ: để xem thông tin cấu hình mạng, dùng lệnh ifconfig -a
# ifconfig –a eth0 Link encap:Ethernet HWaddr 00:0C:29:6D:F0:3D inet addr:172.29.14.150 Bcast:172.29.14.159 Mask:255.255.255.224 inet6 addr: fe80::20c:29ff:fe6d:f03d/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:6622 errors:0 dropped:0 overruns:0 frame:0
TX packets:1425 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000
RX bytes:793321 (774.7 Kb) TX bytes:240320 (234.6 Kb) Interrupt:10 Base address:0x1080 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:76 errors:0 dropped:0 overruns:0 frame:0
TX packets:76 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0
RX bytes:8974 (8.7 Kb) TX bytes:8974 (8.7 Kb) Trong đó, eth0 là tên của card mạng trong, lo là tên của loopback interface
1.2 Thay đổi địa chỉ IP
Trong bài 4 – mục 4, trình tiện ích cho phép thiết lập cấu hình mạng; ngoài ra, có thể sử dụng các cách sau để thay đổi địa chỉ IP:
Sử dụng lệnh: ifconfig netmask up
[root@bigboy tmp]# ifconfig eth0 10.0.0.1 netmask 255.255.255.0 up
Sau khi sử dụng lệnh này, hệ thống sẽ tạm thời lưu trữ thông tin cấu hình trong bộ nhớ, nhưng dữ liệu sẽ bị mất khi hệ thống khởi động lại Để giữ lại thông tin này sau khi reboot, cần thêm lệnh vào tập tin /etc/rc.local.
Hoặc: Thay đổi thông tin cấu hình mạng trực tiếp trong file /etc/sysconfig/network- scripts/ifcfg-eth0
Gán địa chỉ IP tĩnh (tham khảo file ifcfg-eth0)
#Advanced Micro Devices [AMD]|79c970 [PCnet32LANCE]
Gán địa chỉ IP động (tham khảo file ifcfg-eth0)
1.3 Tạo nhiều địa chỉ IP trên card mạng
Phương thức tạo nhiều địa chỉ IP trên card mạng được gọi là IP alias Địa chỉ alias này cần có định dạng tên là: parent-interface-name:X, trong đó X đại diện cho chỉ số của interface thứ cấp (subinterface number).
Sử dụng một trong các cách sau để tạo Alias IP:
- Bước 1: Đảm bảo rằng tên interface thật phải tồn tại, và kiểm tra các IP Alias trong hệ thống có tồn tại hay không
- Bước 2: Tạo Virtual interface dùng lệnh ifconfig:
# ifconfig ifcfg-eth0:0 192.168.1.99 netmask 255.255.255.0 up
Tạo một tệp tin mới có tên /etc/sysconfig/network-scripts/ifcfg-eth0:0 từ tệp /etc/sysconfig/network-scripts/ifcfg-eth0 và sau đó điều chỉnh thông tin địa chỉ trong tệp tin này.
- Bước 3: Bật và tắt alias interface thông qua lệnh ifconfig
Hoặc dùng lệnh /etc/init.d/network restart
- Bước 4: Kiểm tra thông tin cấu hình alias interface dùng lệnh ifconfig:
# ifconfig eth0 Link encap:Ethernet HWaddr 00:0C:29:6D:F0:3D inet addr:172.29.14.150 Bcast:172.29.14.159 Mask:255.255.255.224 inet6 addr: fe80::20c:29ff:fe6d:f03d/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:7137 errors:0 dropped:0 overruns:0 frame:0
TX packets:1641 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000
RX bytes:848367 (828.4 Kb) TX bytes:265688 (259.4 Kb)
Interrupt:10 Base address:0x1080 eth0:0 Link encap:Ethernet HWaddr 00:0C:29:6D:F0:3D inet addr:172.29.15.150 Bcast:172.29.15.159 Mask:255.255.255.224
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:7137 errors:0 dropped:0 overruns:0 frame:0
TX packets:1641 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000
RX bytes:848367 (828.4 Kb) TX bytes:265688 (259.4 Kb)
To create a subinterface configuration file, copy the original file from /etc/sysconfig/network-scripts/ifcfg-eth0 to /etc/sysconfig/network-scripts/ifcfg-eth0:X, where X represents the subinterface number.
- Thay đổi thông tin cấu hình mạng trong file ifcfg-eth0:X (các thông tin in đậm là thông tin bắt buộc phải thay đổi)
Lệnh netstat cho phép kiểm tra trạng thái của tất cả các card mạng
Ngoài ra, có thể dùng lệnh netstat –rn để xem bảng routing table của router.
Truy cập từ xa
Mục tiêu: Trình bày cơ chế hoạt động của dịch vụ truy cập từ xa
Khi cấu hình hệ thống kết nối vào mạng, máy chủ cung cấp nhiều dịch vụ Internet, mỗi dịch vụ thường gắn liền với một daemon hoạt động trong chế độ background Những daemon này liên kết với các cổng và chờ nhận yêu cầu kết nối từ chương trình client Khi có kết nối, daemon sẽ tạo một tiến trình con để xử lý và tiếp tục lắng nghe các yêu cầu khác Tuy nhiên, nếu có quá nhiều daemon, CPU sẽ bị quá tải Để giải quyết vấn đề này, Linux đã phát triển một super-server gọi là Xinetd.
Mỗi dịch vụ Internet đều gắn liền với một cổng chẳng hạn như: smtp – 25, pop3 – 110, dns – 53 Việc phân bổ này do một tổ chức qui định
Xinetd là một daemon server Internet, quản lý tập trung tất cả các dịch vụ Internet tương ứng với từng cổng (port) Nó lắng nghe yêu cầu kết nối từ các chương trình client và chuyển tiếp đến dịch vụ phù hợp để xử lý, tiếp tục lắng nghe các yêu cầu khác Khi hệ điều hành khởi động, Xinetd được khởi tạo qua script /etc/rc.d/init.d/xinetd, đồng thời đọc thông tin từ tập tin cấu hình /etc/xinetd.conf và dẫn đến thư mục /etc/xinetd, nơi lưu trữ thông tin cấu hình của các dịch vụ Mỗi dịch vụ có một tập tin cấu hình mang tên dịch vụ đó, ví dụ như dịch vụ telnet.
{ disable = yes flags = REUSE socket_type = stream wait = no user = root server = /usr/sbin/in.telnetd log_on_failure += USERID }
Những thuộc tính trong tập tin bao gồm:
Disable Tạm đình chỉ dịch vụ này Có 2 giá trị: yes, no
Socket_type Loại socket Trong trường hợp này là stream – một loại socket cho những kết nối connection-oriented (chẳng hạn như TCP)
Wait Thường chỉ liên quan đến những kết nối có loại socket là datagram Giá trị của nó có thể là:
- nowait nghĩa là xinetd sẽ tiếp tục nhận và xử lý những yêu cầu khác trong lúc xử lý kết nối này
Wait có nghĩa là tại một thời điểm, xinetd chỉ có thể xử lý một kết nối tại một cổng chỉ định User chỉ định người dùng chạy dịch vụ này, thường là root.
Server Chỉ ra đường dẫn đầy đủ đến nơi quản lý dịch vụ
When xinetd is initialized, it accesses the /etc/services file to find the corresponding ports for each service This file includes entries such as echo on ports 7 for both TCP and UDP, discard on port 9 for both TCP and UDP, systat on port 11 for users, daytime on port 13 for both TCP and UDP, and qotd on port 17 for quotes.
95 msp 18/tcp# message send protocol msp 18/udp# message send protocol chargen 19/tcp ttytst source chargen 19/udp ttytst source ftp-data 20/tcp ftp-data 20/udp
Port 21 is designated for FTP (File Transfer Protocol), and it also supports FSP (File Service Protocol) over both TCP and UDP Additionally, port 22 is utilized for SSH (Secure Shell) remote login, operating over TCP and UDP Port 23 is assigned to Telnet, which is available on both TCP and UDP protocols.
The private mail system operates using SMTP on ports 25 for both TCP and UDP, facilitating email communication Additionally, the time service is accessible via timserver on ports 37 for TCP and UDP, ensuring accurate time synchronization Resource location is managed through RLP on port 39, also available for both TCP and UDP Lastly, the nameserver functions on port 42, adhering to IEN 116 standards for name resolution.
Mỗi dòng trong tập tin mô tả cho một dịch vụ, bao gồm những cột sau:
- Cột 1: tên của dịch vụ;
- Cột 2: số cổng và giao thức mà dịch vụ này hoạt động;
- Cột 3: danh sách những tên gọi khác của dịch vụ này
Sau khi chỉnh sửa các tập tin cấu hình trong thư mục /etc/xinetd, bạn cần thực hiện lệnh để đọc lại nội dung của các tập tin này.
/etc/rc.d/init.d/xinetd restart
Dịch vụ Telnet
Mục tiêu: Trình bày cách cài đặt, cấu hình và các phương án bảo mật đối với dịch vụ truy cập từ xa Telnet
Nếu người dùng không thể ngồi trực tiếp trên máy Linux, dịch vụ telnet sẽ hỗ trợ làm việc từ xa Tuy nhiên, để đảm bảo tính bảo mật cho hệ thống, người dùng nên tránh sử dụng telnet và thực hiện công việc trực tiếp trên máy Linux.
Khi cài đặt Linux, dịch vụ telnet thường đã được cài sẵn Nếu chưa có, bạn có thể cài đặt telnet server bằng cách sử dụng lệnh sau: rpm -i telnet-server-0.17-20.i386.rpm.
Có nhiều cách cấu hình telnet server, sau đây là hai cách cấu hình cơ bản nhất:
Để cấu hình dịch vụ Telnet, bạn cần dựa vào tập tin cấu hình được tạo ra sau khi cài đặt Tập tin này sẽ xuất hiện trong thư mục /etc/xinetd.d với tên telnet, chứa các thông tin cần thiết cho dịch vụ Telnet.
{ disable = yes flags = REUSE socket_type = stream wait = no user = root server =/usr/sbin/in.telnetd log_on_failure += USERID }
Nếu tùy chọn disable được đặt là "no", thì máy chủ TELNET sẽ được khởi động Ngược lại, nếu tùy chọn này là "yes", máy chủ TELNET sẽ không khởi động Sau khi chỉnh sửa tệp cấu hình, bạn có thể khởi động hoặc dừng máy chủ bằng các lệnh tương ứng.
/etc/rc.d/init.d/xinetd restart Hoặc dùng lệnh:
- Cách 2: Cấu hình telnet Server bằng dòng lệnh: chkconfig telnet on
Kiểm tra telnet thông qua lệnh:
97 tcp 0 0 *:telnet *:* LISTEN Kiểm tra telnet có được đặt như dịch vụ hệ thống:
# chkconfig list | grep telnet telnet: on
3.4 Bảo mật dịch vụ telnet
3.4 1 Cho phép telnet server hoạt động trên tcp port khác
Vì telnet traffic không được mã hóa, việc cho telnet server hoạt động trên TCP port 23 không đảm bảo an toàn Do đó, chúng ta nên cấu hình telnet server hoạt động trên một TCP port khác Để thực hiện điều này, cần thực hiện một số bước cấu hình cần thiết.
- Bước 1: Mở tập tin /etc/services và thêm dòng
# Local services stelnet 7777/tcp # "secure" telnet
- Bước 2: Chép file telnet thành file stelnet
# cp /etc/xinetd.d/telnet /etc/xinetd.d/stelnet
- Bước 3: Thay đổi một số thông tin trong file file /etc/xinetd.d/stelnet service stelnet
{ flags = REUSE socket_type = stream wait = no user = root server = /usr/sbin/in.telnetd log_on_failure += USERID disable = no port = 7777 }
- Bước 4: Kích hoạt stelnet thông qua lệnh chkconfig
- Bước 5: Kiểm tra hoạt động stelnet thông qua lệnh netstat
# netstat -an | grep 777 tcp 0 0 0.0.0.0:7777 0.0.0.0:* LISTEN
Ta có thể logon vào stelnet Server thông qua lệnh:
3.4.2 Cho phép một số địa chỉ truy xuất telnet
Ta hiệu chỉnh một số thông số sau:: service telnet
{ flags = REUSE socket_type = stream wait = no user = root server = /usr/sbin/in.telnetd log_on_failure += USERID disable = no only_from = 192.168.1.100 127.0.0.1 192.168.1.200 }
SSH
Mục tiêu: Trình bày cách cài đặt và sử dụng dịch vụ truy cập từ xa SSH với phương thức mã hóa dữ liệu
Chương trình telnet trên Linux cho phép người dùng truy cập hệ thống từ xa, nhưng có nhược điểm lớn là tên người dùng và mật khẩu không được mã hóa khi truyền qua mạng Điều này khiến thông tin dễ bị đánh cắp, tạo ra nguy cơ tiềm ẩn cho an toàn hệ thống.
Phần mềm Secure Remote Access là một giải pháp mới trên Linux, khắc phục những hạn chế của telnet bằng cách cho phép đăng nhập từ xa với mật khẩu được mã hóa Do đó, SSH mang lại sự an toàn vượt trội so với telnet.
4.1 Cài đặt SSH Server trên Server Linux
Dùng lệnh rpm để cài package openssh-server *.rpm rpm –ivh openssh-server.*.rpm
Tập tin cấu hình /etc/ssh/sshd_config và /etc/ssh/ssh_config Để start hay stop server dùng lệnh sau:
/etc/init.d/sshd start/stop/restart
4.2 Sử dụng SSH Client trên Linux
Trên client (Linux hoặc Unix) dùng lệnh ssh để login vào server Cú pháp của lệnh:
$ssh [tùy_chọn] [tên/IP_máy] [tùy_chọn] [lệnh]
Ví dụ: $ssh [–l ]
4.3 Quản trị hệ thống Linux thông qua SSH client for Windows
The SSH client for Windows is designed to enable users to manage and utilize Unix/Linux systems from the Windows operating system This software can be downloaded from the official site at http://www.ssh.com/support/downloads/.
Phần mềm này hỗ trợ cho người dùng có thể làm việc từ xa, cung cấp dịch vụ sftp
Hình 6.1Màn hình “SSH Client for Windows”
1 Trình bày các cách thay đổi địa chỉ IP (lệnh ifconfig, thay đổi từ file /etc/sysconfig/network-scripts/ifcfg-eth0)
2 Trình bày các cách tạo nhiều địa chỉ IP trên card mạng (IP alias)
Bài 1: Cho hệ thống theo hình vẽ sau:
1 Thay đổi tên máy, sau đó khởi động lại bằng lệnh init 6
3 Xem trạng thái kết nối vật lý của NIC
4 Đặt địa chỉ mạng và cập nhật
5 Dùng lệnh ping và ifconfig để kiểm tra cấu hình mạng
6 Kiểm tra cáp đã gắn vào card mạng hay chưa
Bài 2: Cho hệ thống theo hình vẽ sau:
Thực hiện các yêu cầu sau:
1 Thêm địa chỉ IP cho card mạng eth0 với:
2 Chỉ định default route cho hệ thống
4 Thống kê kết nối mạng
Những trọng tâm cần chú ý trong bài
- Nắm được cách khai báo và thay đổi cấu hình mạng cho máy tính;
- Truy cập và điều khiển máy tính từ xa;
Bài mở rộng và nâng cao
Bài 3: Cho hệ thống theo hình vẽ sau:
Cài đặt và cấu hình các dịch vụ hỗ trợ:
1 Cho phép mọi người kết nối từ xa vào máy chủ Linux qua telnet
2 Cho phép mọi người kết nối từ xa vào máy chủ Linux qua ssh
3 Cho phép mọi người kết nối từ xa vào máy chủ Linux qua VNC
Yêu cầu về đánh giá kết quả học tập
- + Về kiến thức: Nắm được cách khai báo và thay đổi cấu hình mạng cho máy tính; Truy cập và điều khiển máy tính từ xa;
+ Về kỹ năng: Tạo và quản lý tập tin & thư mục; Sử dụng các lệnh liên quan đến tập tin và thư mục;
+ Năng lực tự chủ và trách nhiệm: Tỉ mỉ, cẩn thận, chính xác, ngăn nắp trong công việc
+ Về kiến thức: Được đánh giá bằng hình thức kiểm tra viết, trắc nghiệm, vấn đáp
Kỹ năng đánh giá khả năng thực hành trong việc khai báo và thay đổi cấu hình mạng cho máy tính là rất quan trọng Bên cạnh đó, việc truy cập và điều khiển máy tính từ xa cũng đóng vai trò không thể thiếu Cuối cùng, thực hiện các thao tác an toàn với máy tính là yếu tố cần thiết để bảo vệ thông tin và dữ liệu cá nhân.
+ Năng lực tự chủ và trách nhiệm: Tỉ mỉ, cẩn thận, chính xác, ngăn nắp trong công việc
QUẢN LÍ TIẾN TRÌNH TRÊN HỆ ĐIỀU HÀNH LINUX
Lệnh ps
Lệnh ps trên Linux là một công cụ cơ bản giúp người dùng theo dõi các tiến trình đang hoạt động trên hệ thống Nó cung cấp danh sách các tiến trình hiện tại cùng với thông tin chi tiết như ID người dùng, mức sử dụng CPU, bộ nhớ, và tên lệnh Để tìm hiểu thêm về các tùy chọn của lệnh ps, người dùng có thể sử dụng lệnh: man ps.
Lệnh ps sẽ hiển thị tất cả các quy trình đang chạy trong trình bao hiện tại
Sử dụng tùy chọn -u để hiển thị thông tin của các quy trình cho tên người dùng được chỉ định
Lệnh ps -ef hiển thị tất cả các tiến trình trong hệ thống một cách chi tiết
Lệnh ps -eLf hiển thị một dòng thông tin cho mỗi luồng
Lệnh ps có một cách đặc tả tùy chọn khác, bắt nguồn từ UNIX của BSD, trong đó các tùy chọn được chỉ định mà không cần sử dụng dấu gạch ngang trước.
Lệnh ps aux hiển thị tất cả các quy trình của tất cả người dùng
Lệnh ps axo cho phép bạn chỉ định thuộc tính nào bạn muốn xem.
Lệnh xem danh sách xử lý của hệ thống
Lệnh top là một công cụ quan trọng trong hệ thống Linux, cho phép người dùng quản lý và theo dõi các thông số như CPU, RAM, I/O và các tiến trình đang hoạt động.
Lệnh này cho phép chúng ta giám sát hệ thống một cách chuyên nghiệp và theo dõi thông tin chi tiết về hiệu suất Lệnh "top" tương tự như Task Manager trên Windows, giúp người dùng dễ dàng quản lý và đánh giá hoạt động của hệ thống.
Các phím thông dụng trong khi dùng lệnh top:
Nhấn Ctrl + c hoặc q để thoát khỏi lệnh "top"
Nhấn h để xem hướng dẫn, và nhấn ESC trở lại màng hình chính
Nhấn f để thêm hoặc bớt các Field, sắp xếp trên Field hoặc đổi thứ tự các Field
Dòng 1: Liên quan đến thời gian của Server
19:43:49 Thời gian hoạt động hiện tại
Load average Thời gian CPU load trung bình 1/5/15 phút 0.02: 1 phút, 0.05: 5 phút, 0.05: 15 phút
Dòng 2: Liên quan đến thông tin của tiến trình
164 total Tổng số tiến trình đang ở chế độ active
1 running Số tiến trình đang chạy
163 sleeping Số tiến trình đang ở chế độ ngủ
0 stopped Số tiến trình đang stop
0 zombie Số tiến trình chờ stop từ tiến trình khác
Dòng 3: Liên quan đến thông tin CPU
0.0%us %CPU được dùng cho từng tiến trình của user
0.3%sy %CPU được dùng cho từng tiến trình của hệ thống
0.0%ni %CPU được dùng để cấu hình các giá trị
99.7%id %CPU ở trạng thái nghỉ
0.0%wa %CPU đang chờ trong thời gian chờ I/O
0.0%hi %CPU được dùng cho phần cứng khi bị gián đoạn
0.0%si %CPU được dùng cho phần mềm khi bị gián đoạn
0.0%st %CPU ảo chờ đợi CPU thực xử lý các tiến trình
Dòng 4: Liên quan đến thông tin RAM
1863224k total Tổng dung lượng RAM
282728k used Dung lượng RAM đang được sử dụng
1200868k free Dung lượng RAM free
Dòng 5: Liên quan đến thông tin Swap
2097148k total Tổng dung lượng Swap
0k used Dung lượng Swap Ram đang sử dụng
2097148k free Dung lương Swap free
1333080k cached Tổng cache memory bởi hệ thống
Dòng 6: Các tham số của các tiến trình đang hoạt động
PID – 120949 Mã ID của tiến trình
USER – root User root đang thực thi tiến trình
PR – 20 Độ ưu tiên của tiến trình
NI – 0 Giá trị nice value của tiến trình
VIRT - 0m Dung lượng Ram ảo thực hiện cho 1 tiến trình
RES - 0m Dung lượng RAM thực chạy 1 tiến trình
SHR – 0 Dung lượng RAM share cho 1 tiến trình
S – S Trạng thái tiến trình đang hoạt động
%CPU – 0.3 %CPU được sử dụng cho tiến trình
%MEM – 0.0 %MEM được dùng sử dụng cho tiến trình
TIME+ - 0:00.98 Tổng thời gian thực hiện cho tiến trình
Lập lịch chạy tiến trình tương lai bằng cron và sleep
Cron là một công cụ hữu ích cho việc lập kế hoạch thực hiện các lệnh trên server, cho phép thực hiện một hoặc nhiều công việc theo thời gian đã được định sẵn Chương trình Cron hoạt động ngầm và sẽ tiếp tục chạy liên tục sau khi được khởi động.
Cron được quản lý thông qua tệp cấu hình /etc/crontab, nơi chứa các lệnh shell cần thực thi theo lịch trình cụ thể.
Có tệp crontab trên toàn hệ thống và tệp crontab cho mỗi người dùng
Mỗi dòng trong tệp crontab đại diện cho một công việc và bao gồm một biểu thức CRON cùng với lệnh shell để thực hiện Để chỉnh sửa các công việc hiện có hoặc tạo công việc mới, bạn cần sử dụng lệnh mở trình soạn thảo crontab.
Mỗi dòng của tệp crontab chứa 6 trường:
Cấu hình trong file crountab -e
* * * * * */usr/local/bin/execute/this/script.sh
Nó sẽ sắp xếp công việc để thực thi script.sh mỗi phút mỗi giờ mỗi ngày trong tháng và mỗi tháng và mỗi ngày trong tuần
Cấu hình trong file crountab -e
Nó sẽ lên lịch sao lưu toàn bộ vào 8h30 sáng, 10 tháng 6, bất kể ngày nào trong tuần
Lệnh sleep được sử dụng để tạm dừng thực thi một tập lệnh trong một khoảng thời gian xác định Nó cho phép người dùng trì hoãn việc thực hiện các lệnh với giá trị thời gian cụ thể, có thể được đặt theo giây (s), phút (m), giờ (h) hoặc ngày (d) Sau khi thời gian tạm dừng kết thúc, quá trình thực thi sẽ tiếp tục Cú pháp của lệnh là sleep [SUFFIX].
• s trong vài giây ( mặc định )
Ví dụ: Trong đoạn script sau, lệnh ngủ chỉ được sử dụng với giá trị số 2 và không có hậu tố nào được sử dụng
#!/bin/bash echo "Waiting for 2 seconds " sleep 2 echo "Task Completed"
Sử dụng lệnh `time` để chạy tệp bash nhằm hiển thị ba loại giá trị thời gian khi thực hiện tập lệnh Kết quả đầu ra sẽ cung cấp thông tin về thời gian hệ thống, thời gian người dùng và thời gian thực Ví dụ, bạn có thể chạy lệnh `time bash sleep.sh` để xem các giá trị này.
Lệnh bg
Lệnh bg trên hệ điều hành linux được sử dụng để đặt các công việc nền Cú pháp cơ bản của lệnh bg: bg [job_spec ]
Trong đó job_spec có thể là:
• %n: Tham gia công việc số n
• %str: Tham gia công việc một lệnh bắt đầu bằng str
• %?str: Tham khảo công việc được bắt đầu bằng lệnh chứa str
• %-: Tham gia công việc trước đó
Để liệt kê các công việc đang chạy, chúng ta sử dụng lệnh jobs Khi tạo công việc sleep, hệ thống sẽ trả về tiến trình ID là 1 Để công việc này chạy nền, chúng ta cần cung cấp lệnh thích hợp.
ID của nó cho lệnh bg
Lệnh fg
Lệnh fg trên hệ điều hành linux được sử dụng để tắt các công việc nền Cú pháp cơ bản của lệnh bg: fg [job_spec ]
Trong đó job_spec có thể là:
• %n: Tham gia công việc số n
• %str: Tham gia công việc một lệnh bắt đầu bằng str
• %?str: Tham khảo công việc được bắt đầu bằng lệnh chứa str
• %-: Tham gia công việc trước đó
Ví dụ: Tắt công việc nền đang hoạt động
Lệnh jobs
Lệnh jobs dùng liệt kê tất cả trạng thái các công việc đang chạy Cú pháp cơ bản của lệnh jobs: jobs [tuỳ chọn] [job_spec ]
Các tủy chọn thường sử dụng là:
• -l: Hiển thị trạng thái và ID quá trình của tất cả các công việc
• -p: Hiển thị ID quy trình của tất cả các công việc
Ví dụ: Hiển trạng thái và ID của công việc
Lệnh kill và killall
Lệnh kill được sử dụng để gửi tín hiệu dừng một tiến trình thông qua PID hoặc ID Cú pháp thực hiện lệnh kill là: kill [tùy chọn] [process_id] Để nắm rõ hơn về lệnh kill, chúng ta cần tìm hiểu các tùy chọn đi kèm.
Chấm dứt chương trình bằng tín hiệu SIGINT Điều này thường được bắt đầu bởi người dùng nhấn Ctrl + C: kill -2 [process_id]
Báo cho hệ điều hành chấm dứt ngay một tiến trình: kill -9 [process_id]
Báo hiệu hệ điều hành để tạm dừng chương trình cho đến khi nhận được tín hiệu SIGCONT ("tiếp tục"): kill -17 [process_id]
Ví dụ: Sử dụng lệnh kill để dừng một tiến trình có tên python
Lệnh killall được sử dụng để gửi tín hiệu dừng đến một tiến trình thông qua tên của tiến trình đó Để thực hiện lệnh này, bạn chỉ cần gõ: killall [tên tiến trình].
Trong đó [process name] được thay bằng tên tiến trình bạn muốn dừng
Ví dụ: Chấm dứt tiến trình python dùng lệnh killall
Lệnh free
Lệnh free được dùng để hiển thị thông tin về dung lượng RAM và ảo SWAP trên hệ điều hành Linux Cấu trúc của lệnh free: free [tùy chọn]
Các tuỳ chọn có thể là:
• -b: Thống kê dung lượng theo đơn vị bytes
• -k: Thống kê dung lượng theo đơn vị kilobytes
• -m: Thống kê dung lượng theo đơn vị megabytes
• -g: Thống kê dung lượng theo đơn vị gigabyte
Lệnh -h trong lệnh free hiển thị thông tin về dung lượng RAM và SWAP một cách dễ hiểu hơn, với -h có nghĩa là human Để tìm hiểu thêm về các tùy chọn của lệnh free, người dùng có thể sử dụng lệnh: man free.
Ví dụ: Hiển thị dung lượng RAM và SWAP
[root@test1 ~]# free -h total used free shared buff/cache available
Lệnh uptime
Lệnh uptime cho biết hệ thống chạy được bao lâu
Một số ví dụ về lệnh uptime:
Ví dụ 1: In thời gian hiện tại, thời gian hoạt động, số lượng người dùng đăng nhập và thông tin khác
20:04:17 up 210 days, 21:45, 1 user, load average: 0.00, 0.01, 0.05
Ví dụ 2: Chỉ hiển thị lượng thời gian hệ thống đã được khởi động cho
Ví dụ 3: In ngày và giờ hệ thống khởi động tại
Ví dụ 4: Hiển thị thông tin phiên bản
[root@test1 ~]# uptime version uptime from procps-ng 3.3.10
Lệnh pgrep
Lệnh pgrep tìm hoặc xử lí tín hiệu theo tên của tiến trình
Các ví dụ về lệnh pgrep:
Ví dụ 1: Trả về các PID của bất kỳ tiến trình đang chạy
[root@test1 ~]# ps aux | grep python root 809 0.0 0.8 573848 16972 ? Ssl 2018 51:44 /usr/bin/python -Es /usr/sbin/tuned -l -P root 4547 0.0 0.2 130152 4892 pts/0 T 21:05 0:00 python root 4555 0.0 0.0 112704 972 pts/0 S+ 21:08 0:00 grep color=auto python [root@test1 ~]# pgrep python
Ví dụ 2: Tìm kiếm tiến trình được chạy bởi một người dùng cụ thể
[root@test1 ~]# ps aux | grep python root 809 0.0 0.8 573848 16972 ? Ssl 2018 51:44 /usr/bin/python -Es /usr/sbin/tuned -l -P root 4547 0.0 0.2 130152 4892 pts/0 T 21:05 0:00 python root 4555 0.0 0.0 112704 972 pts/0 S+ 21:08 0:00 grep color=auto python [root@test1 ~]# pgrep -u root python
Lệnh pkill dùng để quản lí tiến trình theo tên Chủ yếu được sử dụng để dừng quá trình Một vài ví dụ về lệnh pkill:
Ví dụ 1: Chấm dứt tất cả các tiến trình có tên khớp với tên mà người dùng cần pkill
Ví dụ 2: Chấm dứt tất cả các tiến trình khớp với lệnh đầy đủ của chúng thay vì chỉ tên quy trình
Lệnh watch
Lệnh watch dùng để thực hiện chương trình định kì, hiển thị toàn màn hình đầu ra
Để kiểm tra kích thước của file 100GB.txt khi chuyển qua một server khác, bạn có thể sử dụng lệnh ls -lh Để tự động thực thi lệnh này mỗi 2 giây, bạn có thể sử dụng lệnh watch với cú pháp: watch ls -l 100GB.txt.
Lệnh screen
Lệnh screen mở một phiên màn hình mới trên một máy chủ từ xa Quản lý nhiều cửa sổ với một kết nối SSH
Một số ví dụ về lệnh screen :
Ví dụ 1: Bắt đầu một phiên màn hình mới screen
Ví dụ 2: Bắt đầu một phiên màn hình mới được đặt tên screen -S [session_name]
Ví dụ 3: Hiển thị phiên màn hình mở screen -ls
Ví dụ 4: Di chuyển đến một màn hình mở: screen -r {{session_name}}
Ví dụ 5: Tắt một màn hình được mở: screen -X -S [session_name] quit
Ví dụ 6: Khi sử dụng lệnh screen chúng ta có thể thoát màn hình như sau:
Cách tách màn hình 1: Thoát màn hình bằng CTRL + A d
Khi lệnh đang thực thi, nhấn tổ hợp phím CTRL + A theo sau là d để tách màn hình
Cách tách màn hình 2: Thoát màn hình bằng tùy chọn -d
Khi lệnh đang chạy, chúng ta gõ lệnh như sau: screen -d [SCREENID]
Trong đó SCREENID dùng lệnh screen -ls để xem ID màn hình cần thoát.
Lệnh nice và lệnh renice
Lệnh nice thực hiện một chương trình với một ưu tiên lập lịch tùy chỉnh Giá trị dao động từ -20 (mức ưu tiên cao nhất) đến 19 (mức thấp nhất)
Ví dụ: Khởi chạy một chương trình với độ ưu tiên nice -n [niceness_value] [command]
Lệnh renice dùng thay đổi mức độ ưu tiên của một hoặc nhiều tiến trình đang chạy
Giá trị độ bền dao động từ -20 (thuận lợi nhất cho tiến trình) đến 19 (ít thuận lợi nhất cho tiến trình)
Ví dụ 1: Thay đổi mức độ ưu tiên của quy trình đang chạy renice -n [niceness_value] -p [pid]
Ví dụ 2: Thay đổi mức độ ưu tiên của tất cả các quy trình thuộc sở hữu của người dùng renice -n [niceness_value] -u [user]
Ví dụ 3: Thay đổi mức độ ưu tiên của tất cả các quy trình thuộc về một nhóm quy trình renice -n [niceness_value] pgrp [process_group]
1 Mở 1 terminal hoặc konsole (terminal 1)
2 Xem các tiến trình của người dùng hiện hành
3 Xem tất cả các tiến trình đang thực thi
4 Xem tất cả các tiến trình dạng cây
5 Từ terminal 1 chạy chương trình gedit bằng cách gõ lệnh gedit
6 Click chuột trở về terminal 1 Có thể gõ tiếp lệnh ko?
7 Tạm ngưng chương trình gedit bằng cách bấm tổ hợp phím ctrl + z bạn thấy gì ở terminal 1? Có thể gõ tiếp lệnh không?
8 Click chuột trở về cửa sổ gedit Bạn có thể soạn thảo bên trong cửa sổ này không? Tại sao?
9 Click chuột trở về terminal gõ lệnh jobs để xem có bao nhiêu công việc đang thực hiện ghi lại số hiệu job của chương trình gedit
10 Đưa chương trình gedit thực hiện trở lại bằng cách cho nó chạy ở chế độ nền Quay lại cửa sổ gedit, thử gõ vài kí tự Điều gì xảy ra?
11 Mở thêm 1 chương trình mới (xcalc: máy tính điện tử) và cho chạy ở chế độ nền
Những trọng tâm cần chú ý trong bài
- Quản lí các tiến trình trên hệ điều hành Linux
- Truy cập và điều khiển máy tính từ xa;
Bài mở rộng và nâng cao
1 Thực hiện sao lưu cơ sở dữ liệu (database backup) vào 2 AM mỗi ngày:
2 Đặt lịch thực thi tập tin script.sh hai lần mỗi ngày vào lúc 5 AM và 5PM (có thể thêm nhiều mốc thời gian cho lịch thực thi)
3 Đặt lịch thực thi tập tin script.sh mỗi phút (rất ít khi yêu cầu cron này, tuy nhiên một số trường hợp đặc biệt cần cấu hình như vậy)
4 Đặt lịch thực thi tập tin script.sh vào mỗi tuần vào 5 PM chủ nhật
5 Đặt lịch thực thi tập tin monitor.sh mỗi 10 phút (cron này có ích trong việc giám sát)
6 Đặt lịch thực thi tập tin script.sh trong một số tháng được chỉ định (tháng 1, 5,
* * * jan,may,aug * /script/script.sh
7 Đặt lịch thực thi tập tin script.sh trong một số ngày được chọn (ví dụ chủ nhật, thứ sáu lúc 5 PM)
0 17 * * sun,fri /script/script.sh
8 Đặt lịch thực thi tập tin script.sh vào chủ nhật đầu tiên mỗi tháng
0 2 * * sun [ $(date +%d) -le 07 ] && /script/script.sh
9 Đặt lịch thực thi tập tin script.sh theo chu kỳ 4 giờ mỗi ngày
10 Đặt lịch thực thi tập tin script.sh 2 lần mỗi ngày trong ngày chủ nhật và thứ hai
0 4,17 * * sun,mon /scripts/script.sh
Yêu cầu về đánh giá kết quả học tập
+ Về kiến thức: Hiểu cách thức hoạt động của các quản lí tiến trình trên hệ điều hành
Linux; Quản lí các tiến trình trên hệ điều hành Linux;
+ Về kỹ năng: Tạo và quản lí các tiến trình trên hệ điều hành Linux;
+ Năng lực tự chủ và trách nhiệm: Tỉ mỉ, cẩn thận, chính xác, ngăn nắp trong công việc
+ Về kiến thức: Được đánh giá bằng hình thức kiểm tra viết, trắc nghiệm, vấn đáp
Kỹ năng cần thiết bao gồm khả năng đánh giá và quản lý các tiến trình trên hệ điều hành Linux, truy cập và điều khiển máy tính từ xa một cách hiệu quả, cùng với việc thực hiện các thao tác an toàn để bảo vệ dữ liệu và hệ thống máy tính.
+ Năng lực tự chủ và trách nhiệm: Tỉ mỉ, cẩn thận, chính xác, ngăn nắp trong công việc.