Professional Documents
Culture Documents
NB127
NB127
GIÁO TRÌNH
QUẢN TRỊ HỆ THỐNG LINUX
BẬC
CAO ĐẲNG
GIÁO TRÌNH
QUẢN TRỊ HỆ THỐNG LINUX
Linux là hệ điều hành nguồn mở, nó được phát triển dựa trên nền tảng
Unix, trong nhiều năm qua Linux nổi lên như một đối thủ của Microsoft
Windows - Một hệ điều hành phổ biến trên thế giới - Với những ưu điểm nổi
bật như: hệ điều hành nguồn mở, chạy trên đa nền tảng, đa người dùng và
đặc biệt nó cho phép tuỳ biến thành những kiểu hệ điều hành riêng. Ngay từ
khi xuất hiện, nó đã được lan rộng một cách nhanh chóng và biết tới như một
hệ điều hành Unix – với mã nguồn mở. Thật ngạc nhiên, sự thành công của
Linux có được nhờ sự làm lại một trong những hệ điều hành lâu đời nhất và
hiện đang được sử dụng rộng rãi – hệ điều hành Unix. Linux bao gồm cả các
công nghệ cũ và mới.
Xét trên góc độ kỹ thuật, Linux chỉ là một nhân hệ điều hành, nó hỗ trợ
đầy đủ các chức năng cũng như dịch vụ cơ bản trong một hệ điều hành như:
quản lý tiến trình, bộ nhớ ảo, quản lý file và vào ra thiết bị. Nói cách khác,
bản thân Linux là phần thấp nhất của hệ điều hành.
Ngày nay, Linux được phát triển hoàn chỉnh như một hệ điều hành máy
tính thực thụ với đầy đủ chức năng và hỗ trợ nhiều ứng dụng có thể phục vụ
cho tất cả các lĩnh vực trong đời sống như kinh tế, thương mại, khoa học kỹ
thuật, giáo dục,…
Điều làm cho Linux trở nên khác biệt là việc viết mã tự do của Unix. Việc
này do một nhóm phát triển tự nguyện trên mạng Internet, họ trao đổi mã
nguồn, phát hiện và sửa lỗi trong một môi trường mở.
Mọi người có thể được cài đặt trên một máy tính cá nhân và trở thành
một trạm làm việc với đầy đủ sức mạnh của Unix. Linux cũng có thể được sử
dụng với mục đích thương mại trên một mạng máy tính như một môi trường
tính toán và truyền tin. Trong các trường đại học, Linux được sử dụng để
giảng dạy về hệ điều hành và lập trình hệ điều hành. Và tất nhiên, Linux cũng
có thể được sử dụng trên các máy tính cá nhân như các hệ điều hành khác..
Trang 1
MỤC LỤC
CHƯƠNG 1. LÝ THUYẾT CHUNG VỀ HỆ ĐIỀU HÀNH UNIX VÀ
LINUX .................................................................................................. 8
Bài 1.1. TỔNG QUAN VỀ HỆ ĐIỀU HÀNH VÀ UNIX .......................... 9
1.1.1. Hệ điều hành ................................................................................ 9
1.1.2. Hệ điều hành Unix ..................................................................... 11
1.1.3. Giới thiệu về Kernel................................................................... 16
1.1.4. Các ứng dụng trên linux ............................................................. 18
1.1.5. Câu hỏi củng cố ......................................................................... 19
Bài 1.2. CÀI ĐẶT HỆ ĐIỀU HÀNH LINUX .......................................... 20
1.2.1. Chuẩn bị cài đặt ......................................................................... 20
1.2.2. Phân chia ổ đĩa ........................................................................... 21
1.2.3. Thao tác cài đặt .......................................................................... 22
1.2.4. Bài tập: ...................................................................................... 44
* Tóm lược chương: ............................................................................ 44
CHƯƠNG 2. SỬ DỤNG HỆ ĐIỀU HÀNH LINUX ................................... 46
Bài 2.1. CÁC LỆNH CƠ BẢN................................................................. 47
2.1.1. Qui ước lệnh .............................................................................. 47
2.1.2. Các tập lệnh: .............................................................................. 48
2.1.3. Chuyển hướng input, output....................................................... 55
2.1.4. Trợ giúp lệnh ............................................................................. 58
2.1.5. Sử dụng các ký hiệu thay thế ..................................................... 60
2.1.6. Biến trong linux ......................................................................... 62
2.1.7. Cài đặt phần mềm ...................................................................... 63
2.1.8. Bài tập ....................................................................................... 72
Bài 2.2. LÀM VIỆC VỚI HỆ THỐNG THƯ MỤC VÀ QUẢN TRỊ
NGƯỜI DÙNG-NHÓM ................................................................................... 74
2.2.1. Làm việc với hệ thống tập tin..................................................... 74
2.2.2. Quản trị người dùng và nhóm .................................................... 89
Trang 2
2.2.3. Bài tập: .................................................................................... 103
Bài 2.3. QUYỀN TRUY CẬP TIN TẬP VÀ THƯ MỤC ...................... 107
2.3.1. Giới thiệu: ................................................................................ 107
2.3.2. Nhóm lệnh chuyển quyền và chuyển quyền sở hữu .................. 111
2.3.3. Bài tập: .................................................................................... 113
Bài 2.4. TRÌNH SOẠN THẢO VÀ TRÌNH TIỆN ÍCH TRONG LINUX ....
................................................................................................. 116
2.4.1. Trình soạn thảo vi: ................................................................... 116
2.4.2. Một số trình soạn thào khác ..................................................... 120
2.4.3. Trình tiện ích ........................................................................... 122
2.4.4. Quản trị tiến trình và lập lịch ................................................... 126
2.4.5. Quản trị hệ thống Linux ........................................................... 138
2.4.6. Bài tập ..................................................................................... 139
* Tóm lược chương: .......................................................................... 141
CHƯƠNG 3. CẤU HÌNH MẠNG VÀ CHIA SẺ TÀI NGUYÊN TRÊN
LINUX .............................................................................................. 142
Bài 3.1. CẤU HÌNH MẠNG VÀ QUẢN TRỊ HỆ THỐNG ................... 143
3.1.1. Cấu hình mạng ......................................................................... 143
3.1.2. Các tiện ích trong mạng ........................................................... 153
3.1.3. Bài tập ..................................................................................... 156
Bài 3.2. CHIA SẺ TÀI NGUYÊN .......................................................... 158
3.2.1. Cấu hình Network File System (NFS) ...................................... 158
3.2.2. Dịch vụ samba ......................................................................... 164
* Tóm lược chương: .......................................................................... 176
3.2.3. Câu hỏi cũng cố phần lý thuyết: ............................................... 176
Trang 3
DANH MỤC HÌNH ẢNH
Hình 1.1.1-Linus Torvalds, “cha đẻ” của Linux .................................... 12
Hình 1.1.2.Slackware, hệ điều hành đầu tiên được ra mắt dựa trên nền tảng
Linux...................................................................................................... 13
Hình 1.1.3. Android, một trong những hệ điều hành thành công nhất phát
triển trên nền tảng Linux ........................................................................ 13
Hình 1.1.4. Linux và Windows được xem là 2 đối thủ “không đội trời
chung”.................................................................................................... 14
Hình 1.1.5. Lịch sử phát triển Unix ....................................................... 15
Hình 1.1.6. Biểu tượng quen thuộc của GNU ....................................... 16
Hình 1.1.7. Cấu trúc Kernel của Linux .................................................. 18
Hình 1.2.1. Centos boot menu ............................................................... 22
Hình 1.2.2. Kiểm tra các đĩa cài đặt....................................................... 23
Hình 1.2.3. Wellcome to Centos-4 i386................................................. 23
Hình 1.2.4. Language Selection: chọn ngôn ngữ (có tiếng Việt, không nên
chọn) ...................................................................................................... 24
Hình 1.2.5. Các kiểu cài đặt .................................................................. 24
Hình 1.2.6. Lựa chọn 2 kiểu để phân chia ổ cứng .................................. 25
Hình 1.2.7. Phân vùng thủ công với Disk Druid- Bước 1 ...................... 26
Hình 1.2.8. Phân vùng thủ công với Disk Druid- Bước 2 ...................... 26
Hình 1.2.9. Phân vùng thủ công với Disk Druid- Bước 3 ...................... 27
Hình 1.2.10. Phân vùng thủ công với Disk Druid- Bước 4 .................... 28
Hình 1.2.11. Phân vùng thủ công với Disk Druid- Bước 5 .................... 28
Hình 1.2.12. Phân vùng thủ công với Disk Druid- Bước 6 .................... 29
Hình 1.2.13. Cầu hình trình nap khởi động (boot loader)....................... 29
Hình 1.2.14. Cấu hình mạng (Network Configuration) - Bước 1 ........... 30
Hình 1.2.15. Cấu hình mạng (Network Configuration) - Bước 2 ........... 31
Hình 1.2.16. Cấu hình tường lửa (Firewall Configuration) .................... 31
Trang 4
Hình 1.2.17. Cảnh báo không có tường lửa (Warning – No Firewall).... 32
Hình 1.2.18. Thêm ngôn ngữ hỗ trợ (Additional Language Support)..... 32
Hình 1.2.19. Chọn múi giờ (Time Zone Selection) ................................ 33
Hình 1.2.20. Thiết lập mật khẩu Roor (Set Root Password)................... 33
Hình 1.2.21. Lực chọn các gói phần mềm (Package Group Selecttion) . 34
Hình 1.2.22. Chi tiết các gói phần mềm trong nhóm (“Legacy Network
Server” ) ................................................................................................. 35
Hình 1.2.23. Tóm lược cài đặt (About to Install) ................................... 35
Hình 1.2.24. Yêu càu các đĩa cài đặt (Required Install Media) .............. 36
Hình 1.2.25. Quá trình cài các gói (Installing Package) ......................... 36
Hình 1.2.26. Hoàn tất quá trình cài đặt (Installation Complete) ............. 37
Hình 1.2.27. Cáu hình Grub cho menu chọn hệ điều hành ..................... 38
Hình 1.2.28. Wellcome: Chào mừng đến với Centos ............................. 40
Hình 1.2.29. Thoả thuận bảng quyền (License Agreement) ................... 40
Hình 1.2.30. Cấu hình ngày giờ (Date and Time) .................................. 41
Hình 1.2.31.Cấu hình màn hình (Display) ............................................. 41
Hình 1.2.32. Người dùng hệ thống (System User) ................................. 41
Hình 1.2.33. Cài thêm từ đĩa CD (Additional CDs) ................................ 42
Hình 1.2.34. Hoàn tất quá trình cài đặt .................................................. 42
Hình 1.2.35. Đăng nhập Centos (Centos Login) .................................... 42
Hình 1.2.36. Màn hình làm việc với Centos 4 (đăng nhập root)............. 43
Hình 1.2.37. Shutdown hệ thống bằng lệnh trên Terminal ..................... 43
Hình 1.2.38. Màn hình chọn phương án ngưng làm việc ....................... 44
Hình 2.1.1.Các loại Shell trong Unix/Linux .......................................... 47
Hình 2.1.2-Luồng dữ liệu trong Unix/Linux ........................................... 56
Hình 2.1.3. Xem phiên bản (version) lệnh yum ..................................... 69
Hình 2.2.1.Cấu trúc cây thư mục trên hệ thống Unix ............................. 75
Hình 2.2.2.Cây thư mục theo ví dụ ........................................................ 80
Trang 5
Hình 2.2.3. Sử dụng lệnh Tree để xem cây thư mục .............................. 82
Hình 2.3.1. Quyền truy cập thư mục .................................................... 109
Hình 2.4.1. Hai loại phân vùng đĩa ...................................................... 123
Hình 2.4.2. Định danh tên phân vùng đĩa ............................................ 124
Hình 3.4.3. Cấu trúc lệnh Cron ............................................................ 134
Hình 3.1.1. Setup-Chọn công cụ thao tác (Network Configuration)..... 146
Hình 3.1.2. Thiết lập IP và Default Gateway ....................................... 146
Hình 3.1.3. Chọn dòng eth0 –card muốn đánh IP ................................ 146
Hình 3.1.4. Cấu hình IP và Gateway cho thiết bị ................................. 147
Hình 3.1.5. Màn hình chọn thiết bị sau khi gán xong IP, Gateway ...... 147
Hình 3.1.6. Chọn công cụ cấu hình DNS ............................................. 148
Hình 3.1.7. Gán hostname, DNS cho card mạng.................................. 148
Hình 3.1.8. Hoàn thành quá trình gán IP, DNS, Gateway .................... 148
Trang 6
DANH MỤC BẢNG
Trang 7
Chương 1: Lý thuyết chung về hệ điều hành Unix và Linux
Chương 1. LÝ THUYẾT CHUNG VỀ HỆ ĐIỀU HÀNH UNIX VÀ
LINUX
- Ngày 5/4/1991, Linus Torvalds, chàng sinh viên 21 tuổi của trường Đại học
Helsinki, Phần Lan đã bắt tay vào viết những dòng lệnh đầu tiên của Linux.
- Tháng 8/1991, Torvalds gửi đi thông điệp đã trở thành nổi tiếng sau này về
sự ra đời của Linux: “Tôi đang làm một hệ điều hành miễn phí (chỉ làm theo
sở thích, và sẽ không lớn và chuyên nghiệp)”. Ngay chính Torvalds cũng
không ngờ đến sự thành công của Linux như ngày hôm nay.
- Tháng 9/1991, phiên bản Linux 0.01, phiên bản Linux đầu tiên được Torvalds
công bố, với 10.239 dòng lệnh. Phiên bản 0.02 được ra mắt 1 tháng sau đó.
- Năm 1992, Torvals đã có một quyết định được cho là đúng đắn khi phát hành
Linux dưới dạng mã nguồn mở của giấy phép GPL, cho phép tất cả mọi người
có quyền download về để xem mã nguồn để cung chung tay phát triển. Đây
được xem là quyết định đã giúp Linux có được sự phổ biến như ngày nay.
- Năm 1993, Slackware, hệ điều hành đầu tiên phát triển dựa trên mã nguồn
Linux được ra đời. Slackware là một trong những hệ điều hành Linux đầu tiên
và có tuổi đời lâu nhất hiện nay. Phiên bản mới nhất của Slackware được công
bố vào tháng 5/2010.
Hình 1.1.2.Slackware, hệ điều hành đầu tiên được ra mắt dựa trên nền tảng Linux
- Ngày 14/3/1994, sau 3 năm làm việc miệt mài, Torvalds cho ra mắt phiên bản
hoàn thiện đầu tiên, Linux 1.0 với 176.250 dòng lệnh. 1 năm sau đó, phiên
bản 1.2 ra mắt với 310.950 dòng lệnh.
- Ngày 3/11/1994, Red Hat Linux, phiên bản 1.0 được giới thiệu. Đây là một
trong những hệ điều hành được thương mại hóa đầu tiên dựa trên Linux.
- Năm 1996, Linus Torvalds ghé thăm công viên hải dương học, tại đây, ông
đã quyết định sử dụng hình ảnh chú chim cánh cụt để làm biểu tượng chính
thức của Linux.
- Năm 1998, Linux bắt đầu được các “ông lớn” công nghệ quan tâm và đầu tư
để phát triển. Nổi bật trong số đó là IBM. Công ty này đã đầu tư hàng tỉ USD
để phát triển các dịch vụ và phần mềm trên nền tảng Linux, với đội ngũ nhân
viên phát triển hơn 300 người. Ngoài IBM, Compaq và Oracle cũng bắt đầu
đầu tư và phát triển Linux.
- Năm 2005, Linus Torvalds được xuất hiện trên trang bìa của tạp chí về kinh
tế BusinessWeek, với câu chuyện về sự thành công của hệ điều hành Linux.
- Năm 2007, hàng loạt hãng sản xuất máy tính lớn như HP, ASUS, Dell,
Lenovo bắt đầu bán ra các sản phẩm laptop được cài đặt sẵn Linux.
- Tính đến thời điểm hiện tại, Linux đã có rất nhiều biến thể và phiên bản khác
nhau, được xây dựng và phát triển riêng biệt bởi các công ty phần mềm và
các cá nhân. Nổi bật trong số đó chính là hệ điều hành di động Android của
Google, hiện là một trong những hệ điều hành thông dụng nhất hiện nay.
Hình 1.1.3. Android, một trong những hệ điều hành thành công nhất phát triển trên
nền tảng Linux
Hình 1.1.4. Linux và Windows được xem là 2 đối thủ “không đội trời chung”
System V:
Các phiên bản UNIX cuối cùng do AT&T xuất bản là System III và một vài phát
hành (releases) của System V. Hai bản phát hành gần đây của System V là Release 3
(SVR3.2) và Release 4.2 (SVR4.2). Phiên bản SYR 4.2 là phổ biến nhất cho từ máy PC
cho tới máy tính lớn.
BSD:
- Đa chương
- Nhiều người sử dụng
- Bảo mật
- Độc lập phần cứng
- Hệ mở
- Dùng chung thiết bị
Mục tiêu của dự án GNU là tạo ra được một hệ điều hành miễn phí, giống Unix,
nơi mà mọi người có quyền tự do copy, phát triển, chỉnh sửa và phân phối phần mềm,
và việc tái phân phối là không bị giới hạn. (Nên nhớ, Unix và các phiên bản rẽ nhánh từ
Unix ban đầu đều là close source và bị ràng buộc bản quyền)
Năm 1985, Richard thành lập tổ chức Free Software Foundation (FSF) đây là
một tổ chức phi lợi nhuận muốn thúc đẩy sự tự do trong trong phát triển phần mềm.
Project GNU đã tạo ra được rất nhiều sản phẩm quan trọng như GNU Compiler
Collection (gcc), GNU Debugger, GNU Emacs text editor (Emacs), GNU build
automator (make) … Ngoài ra còn phải kể đến giấy phép nổi tiếng được sử dụng rộng
rãi nhất hiện nay: GNU General Public License (GPL)
GNU Project đã đạt được nhiều thành tựu lớn, tạo ra được nhiều công cụ tương tự
như những gì có trên Unix. Tuy nhiên, GNU vẫn thiếu một thành phần quan trọng,
mảnh ghép cuối cùng để nó trở thành một hệ điều hành hoàn chỉnh. Đó chính
là Kernel, phần thực hiện công việc điều khiển, giao tiếp với các thiết bị phần cứng
(CPU, RAM, Devices …).
1.1.3. Giới thiệu về Kernel
1.1.3.1. Kernel của Linux
Tính đến thời hiểm hiện tại (7/1/2017), thì phiên bản Linux Stable mới nhất là 4.9.
Bạn có thể check danh sách các bản release Linux kernel ở trang chủ của dự án
tại https://www.kernel.org/
Ngoài ra, để kiểm tra version Kernel trên Distro mà bạn đang sử dụng, bạn có thể
dùng lệnh uname -r. Ví dụ
Unix-like
Ở phần đầu, tôi đã nhắc đến việc MacOS là một trong số ít các hệ điều hành được
chứng nhận của Single UNIX Specification (SUS), và được coi là một hệ điều
hành Unix-like.
Hiện thương hiệu UNIX thuộc bản quyền của tổ chức The Open Group (chú ý là
các chữ cái trong tên thương hiệu UNIX đều được viết hoa, trong khi để chỉ hệ điều
thành thì ta có thể viết Unix hoặc UNIX).
Khái niệm “Unix-like” vốn được dùng để chỉ những hệ điều hành có được chứng
nhận SUS, và có thể sử dụng thương hiệu UNIX.
Một câu hỏi đặt ra là: Vậy theo định nghĩa ở trên thì Linux có phải là một hệ điều
hành “Unix-like” hay không? Đáng tiếc câu trả lời là Không.
Đã từng có dự án giúp Linux đạt được SUS, nhưng cuối cùng không đi đến đâu cả,
và hiện tại các Distro Linux cũng không được phép sử dụng trademark UNIX.
Bên cạnh cách hiểu “Unix-like” như là một phần gắn kèm với SUS, còn có những
ý kiến cho rằng nên dùng từ Unix-like theo nghĩa rộng hơn. Cụ thể, có thể chia ra làm 3
loại Unix-like:
- Genetic UNIX: Chỉ những hệ điều hành có liên quan trực tiếp đến codebase
của phiên bản Unix của Bell Labs.
- Trademark UNIX: Những hệ điều hành thoản mãn yêu cầu SUS và có thể sử
dụng thương hiệu UNIX.
- Functional UNIX: Những hệ điều hành “hoạt động giống Unix”, và Linux có
thể được xếp vào loại này.
Chú ý phân biệt số phiên bản của hệ điều hành (Linux kernel) với phiên bản của
các phân phối (ví dụ RedHat 7.1 với kernel Linux 2.4.2-14).
1.1.3.2. Các chức năng chính của Kernel
Linux kernel cung cấp một giao diện giữa các ứng dụng người dùng, hệ thống phần
cứng và tài nguyên. Một vài chức năng của Linux là:
- Quản lý bộ nhớ
2. Phân biệt các loại hệ điều hành? Hệ điều hành đa nhiệm – đa người dùng có vai trò
quan trọng như thế nào đối với người sử dụng hiện nay?
3. Kernel trong Linux có vai trò như thế nào? Cấu trúc của các lớp Kernel Linux? Phân
biệt sự khác nhau giữa Kernel Version và Linux Distro Version? Vẽ hình cấu trúc hạt
nhân trong Linux?
4. Bàn phân phối trong Linux là gì? Vẽ hình các dòng linux và dẫn xuất của chúng?
- Phần mềm Unetbootin: Unetbootin có lẽ là công cụ tạo bản cài đặt Linux trên
USB thuận tiện nhất và Unetbootin rất dễ sử dụng và vô cùng đơn giản.
- Phần mềm Rufus: Khác với Unetbootin, Rufus không những có thể tạo USB
từ file ISO của Linux mà Windows cũng thực hiện được.
- Phần mềm Yumi: Yumi cho phép chúng ta có thể tạo nhiều bản cài đặt Linux
khác nhau với các môi trường khác nhau trên cùng một USB. Nó bao gồm:
các bản Linux khác nhau, công cụ chống virus, công cụ chuẩn đoán, ứng dụng
phân vùng, sao chép đĩa,….
1.2.1.2. Cài qua mạng
Dùng một server FTP trên mạng nội bộ để lưu trữ toàn bộ đĩa Source cài Linux.
Quá trình khởi động để vào cài đặt bằng một đĩa mồi (đĩa mềm, usb) với một file iso có
sẵn của nhà phân phối, công dụng của đĩa mồi này là khởi động quá trình xác lập mạng
và chỉ ra địa chỉ chứa source cài đặt Linux.
Phương pháp cài đặt Linux qua mạng mới nhất ngày nay còn có thêm một phương
pháp mới đó là cobbler. Cobbler là server cài đặt linux cho phép ta cài đặt hệ điều hành
linux lên các máy trạm thông qua môi trường mạng. Bản thân nó hỗ trợ cài đặt qua mạng
sử dụng PXE và cài đặt lại hệ điều hành sử dụng 1 phần mềm nhỏ hỗ trợ (koan). (Xem
phụ lục I)
1.2.2. Phân chia ổ đĩa
Hệ điều hành Linux có thể cài được trên Primary Partition và Logical Partition.
Linux cần ít nhất là 2 phân vùng để cài đặt hệ điều hành:
1) Phân vùng gốc chứa hạt nhân và hệ thống File gọi là root partition (Linux Native
partition). Linux sử dụng ký tự / để gán cho phân vùng gốc nơi Linux được cài đặt và
lưu trữ file.
2) Phân vùng Swap (gọi là Swap partition) dùng làm bộ nhớ ảo, dùng để chuyển
đổi khi bộ nhớ vật lý (như RAM ) bị đầy.
Hạt Nhân Linux chính là trái tim của hệ điều hành, nó xem tất cả các loại đĩa và
thiết bị đều ở dạng tập tin. Hệ thống File của Linux có rất nhiều thư mục, đứng đầu là
thư mục gốc (root directory ký hiệu là dấu /).
Linux sử dụng lệnh mount để gán tên của 1 phân vùng vào tên của 1 thư mục bất
kỳ. Đừng nhẫm lẫn với root directory của người dùng (trong thư mục gốc “/” có chứa 1
thư mục là root, đây là thư mục của tài khoản root).
Các lựa chọn khi boot của đĩa cài đặt Centos. Cần chú ý một số lựa chọn sau:
- Ấn phím Enter (hoặc đợi khoảng 30 giây) để thực hiện việc cài đặt hoặc nâng
cấp Centos trong mode đồ hoạ.
- Gõ lệnh linux text để thực hiện cài đặt hoặc nâng cấp Centos trong mode text.
- Dùng phím F2 để có thêm các lựa chọn khi cài đặt, ví dụ cài đặt thông qua
ftp server, nfs server (xem mục 3).
- Dùng phím F5 để Rescue hệ điều hành Centos đã được cài đặt.
Chú ý: Với các bản Linux dựa trên redhat trước đây, việc cài đặt được thực hiện
trên mode text. Các phiên bản sau như Fedora, Centos, Redhat đều có 2 lựa chọn là cài
đặt với mode đồ hoạ hoặc mode text. Trong trường hợp việc cài đặt ở mode đồ hoạ gặp
lỗi, có thể chọn mode text để thử cài đặt lại.
Trong hướng dẫn này, gõ phím Enter để thực hiện việc cài đặt ở mode đồ hoạ.
Hình 1.8 cho phép thực hiện việc kiểm tra đĩa cài đặt CD (hoặc DVD) xem có thể
thực hiện được cài đặt hay không. Bước này chọn Skip để bỏ qua việc kiểm tra đĩa.
Hình 1.9 là màn hình Wellcome của Centos. Trên đó có hướng dẫn sử dụng các
phím trong quá trình cài đặt (trường hợp không dùng chuột), ví dụ như phím Tab để
dịch chuyển các lựa chọn, phím Space, Enter để lựa chọn các mục,....Bước này chọn
Next để tiếp tục.
Hình 1.2.4. Language Selection: chọn ngôn ngữ (có tiếng Việt, không nên chọn)
Bước này chọn English, sau đó nhắp nút Next để tiếp tục.
Bước này cho phép lựa chọn các kiểu khi cài đặt. Có các lựa chọn sau:
• Personal Desktop: lựa chọn dành cho cài các máy tính để bàn, máy laptop.
Với lựa chọn này, chắc chắn giao diện đồ hoạ sẽ được cài đặt (giao diện
GNOME).
• Workstation: lựa chọn này cho phép cài đặt môi trường đồ hoạ với các công
cụ dành cho việc phát triển phần mềm và quản trị hệ thống.
- Automatically partition: lựa chọn này khi thực hiện cài đặt trên một ổ cứng
mới. Chương trình sẽ xoá hết các partition (tất cả các partition hoặc chỉ các
partition linux) và ngầm định sẽ tạo các partition mới để cài đặt Centos.
- Manual partition with Disk Druid: Disk Druid là một chương trình phân chia
ổ cứng, có giao diện đồ hoạ. Lựa chọn này khi trên ổ cứng đã tồn tại các
partition và ta muốn cài đặt Linux cùng các partition đó (ví dụ cài cùng
Windows). Hoặc cũng có thể lựa chọn mục này khi muốn tự phân chia ổ cứng
theo mục đích riêng của mình.
Ở bước này, chọn Manual partition with Disk Druid, sau đó nhắp nút Next để
tiếp tục cài đặt.
Hình 1.2.7. Phân vùng thủ công với Disk Druid- Bước 1
Khi chọn Manual partition with Disk Druid, xuất hiện hộp thoại Warning cảnh
báo rằng partition tab của ổ cứng (thiết bị sda - ổ cứng SCSI) không đọc được. Nếu tạo
các partition mới có thể mất dữ liệu,… Do trường hợp này ta thực hiện cài đặt trên ổ
cứng mới nên chọn Yes.
Chú ý: Đối với các cài đặt trên ổ cứng đã có dữ liệu (ví dụ đã cài đặt Windows),
cần chú ý các cảnh báo do chương trình cài đặt đưa ra để tránh mất dữ liệu do lựa chọn
sai.
Hình 1.2.8. Phân vùng thủ công với Disk Druid- Bước 2
Hình 1.2.9. Phân vùng thủ công với Disk Druid- Bước 3
Xác định thông tin để tạo một partition mới. Gõ /boot vào ô Mount Point – có thể
nhắp vào mũi tên trỏ xuống để xem các Mount Point ngầm định. Chọn kiểu hệ thống
file là ext3 (File System). Gõ vào ô Size (MB) số 100 – tương ứng với 100 MB cho
vùng /boot. Sau đó nhắp OK để xác nhận việc tạo một partition mới.
Hình 1.2.10. Phân vùng thủ công với Disk Druid- Bước 4
Sau khi tạo /boot - 100MB, chọn vào vùng ổ đĩa còn trống, sau đó chọn nút New.
Chọn vào mũi tên trỏ xuống ở ô File System Type. Trong các lựa chọn trên menu trỏ
xuống, chọn swap. Khác với Windows, sử dụng pagefile.sys để làm vùng tráo đổi, Linux
dùng một partition có kiểu hệ thống file là swap. Sau đó gõ số 768 MB vào ô Size (MB)
và nhắp nút OK để xác nhận việc tạo mới.
Hình 1.2.11. Phân vùng thủ công với Disk Druid- Bước 5
Hình 1.2.12. Phân vùng thủ công với Disk Druid- Bước 6
Chi tiết về các partition mà ta đã tạo trên ổ cứng. Kiểm tra lại các thông tin này
trước khi nhắp Next để tiếp tục cài đặt.
Hình 1.2.13. Cầu hình trình nap khởi động (boot loader)
Centos sử dụng GRUB – một chương trình quản lý boot và GRUB được cài vào
/dev/sda.
Chương trình cài Centos sẽ tự detect card mạng và đưa ra trong danh sách Network
Devices. Trên Centos sẽ để tên các card mạng kiểu eth0, eth1,… Theo ngầm định, các
card mạng được cấu hình sử dụng DHCP. Để thay đổi, lựa chọn vào card mạng và nhắp
nút Edit.
Trong hộp thoại Edit Interface, bỏ chọn Configure using DHCP và nhập địa chỉ
IP, Netmask vào các ô tương ứng, sau đó nhắp nút OK để xác nhận.
Sau khi nhập địa chỉ IP, Netmask như hình trên, trình cài đặt sẽ quay trở về màn
hình Network Configuration. Nhập tên máy (hostname) vào ô Host name Manual,
nhập các địa chỉ Gateway, DNS vào các ô tương ứng, sau đó nhắp nút Next để tiếp tục
cài đặt.
Khi lựa chọnNo firewall, sẽ xuất hiện hộp thoại cảnh báo, nhắp Proceed để xác
nhận.
Hình này cho phép lựa chọn thêm ngôn ngữ hỗ trợ. Bước này chọn Next để tiếp
tục.
Hãy chọn múi giờ - nơi bạn đang ở. Nếu ở Việt Nam chọn Location là Asia/Saigon
(phiên bản mới Asia/HoChiMinh).
Hình 1.2.20. Thiết lập mật khẩu Roor (Set Root Password)
Đặt mật khẩu của tài khoản root (tài khoản cao nhất). Nhắp Next để tiếp tục.
Hình 1.2.21. Lực chọn các gói phần mềm (Package Group Selecttion)
Hãy lựa chọn các gói ứng dụng cho Centos tương ứng với công việc. Các gói ứng
dụng được chia thanh các nhóm. Với lựa chọn kiểu cài đặt Custom như trên, ta để
nguyên các lựa chọn ngầm định và chọn thêm một số thành phần sau:
Mục Server
1- Server Configuration Tools
2- FTP Server
3- Legacy Server: chọn thêm rsh-server, telnet-server
Mục Development
1- Development Tools
2- X Software Development
3- Gnome Software Development
4- Legacy Software Development
Mục System
1- Administration Tools
2- System Tools: chọn thêm gói mc
Với các lựa chọn nói trên, cần khoảng 2.6 GB để cài đặt.
Hình 1.2.22. Chi tiết các gói phần mềm trong nhóm (“Legacy Network Server” )
Theo hình trên, người cài chọn thêm các package là rsh-server và telnet-server.
Hình 1.2.24. Yêu càu các đĩa cài đặt (Required Install Media)
Xuất hiện thông báo về số đĩa cài Centos với các lựa chọn gói ở trên. Trong ví dụ
này, cần 3 đĩa cài Centos: đĩa 1, đĩa 2, đĩa 3 (mặc dù bộ cài đặt có 4 đĩa).
Sau bước này, chương trình cài đặt Centos tiến hành phân chi ổ cứng, format theo
định dạng (ext3) đã chọn và thực hiện cài đặt.
Khi kết thúc đĩa 1, sẽ được yêu cầu đưa đĩa 2 vào ổ CD,…
Chú ý: Với trường hợp cài đặt bằng đĩa DVD hoặc cài đặt qua mạng sử dụng ftp-
server hoặc nfs-server, sẽ không có yêu cầu đó.
Quá trình cài đặt trong khoảng 20 – 40 phút với các máy hiện nay.
Hình 1.2.26. Hoàn tất quá trình cài đặt (Installation Complete)
Sau khi cài đặt hoàn tất, sẽ có thông báo như trên và đĩa CD cuối bị đẩy ra khỏi ổ
CD. Bỏ đĩa CD/DVD và nhắp nút Finish, máy tính sẽ khởi động lại.
1.2.3.1. Bàn thêm về trình nạp Grub
Một số chương trình chiếm giữ MBR gọi là chương trình Boot Manager hay Boot
Loader. Chúng hiển thị menu cho phép người dùng chọn hệ điều hành. Khi người dùng
chọn 1 hệ điều hành trong danh sách, chương trình Boot Loader sẽ nạp Boot Sector
tương ứng với phân vùng chứa hệ điều hành được chọn. Sử dụng Boot Loader, ta không
cần đặt cờ Boot cho mỗi phân vùng chính.
Xét trường hợp cài Win và cài 2 distro là Ubuntu và Mint
Phương án đưa ra là : chia 5 phân vùng.
Hình 1.2.27. Cáu hình Grub cho menu chọn hệ điều hành
Giải thích: Các dòng bắt đầu bằng kí tự # là những dòng chú thích. Có thể thêm,
bớt tùy ý mà không lo ảnh hưởng đến công việc của chương trình. Ngoài ra grub cũng
bỏ qua các dòng trống.
kernel [--type=loại] [--no-mem-option] tập_tin ...
Nạp hình ảnh khởi động (Multiboot a.out hoặc ELF, Linux zImage hoặc bzImage,
FreeBSD a.out, NetBSD a.out, v.v...) từ tập_tin. Phần còn lại của dòng được chuyển
Sau bước này, việc cài đặt Centos hoàn tất, màn hình đăng nhập Centos.
Đăng nhập Centos với tài khoản root, giao diện của Centos .
Hình 1.2.36. Màn hình làm việc với Centos 4 (đăng nhập root)
2. Nêu ưu nhược điểm của việc cài đặt hệ điều hành linux chọn 2 phần vùng, chọn nhiều
phân vùng?
3. Sử dụng cấu hình tương tự như trên nhưng chọn hệ điều hành Ubuntu. Cài đặt hệ điều
hành Ubuntu Server
4. Mở máy ảo Windows 7, hãy cài thêm hệ điều hành Ubuntu/Centos vào phân vùng D:,
và cấu hình Grub cho người dùng chọn 1 trong 2 hệ điều hành đang có.
* Tóm lược chương:
- <tên lệnh>: bắt buộc phải có, là từ khoá duy nhất trên hệ thống, mỗi bộ shell
có lệnh khác nhau.
- [tuỳ chọn]: là những ký hiệu để quy định thực hiện lệnh theo một quy tắc nào
đó, thường các tuỳ chọn bắt đầu bằng dấu trừ.
- [tham số lệnh]: là những yếu tố đưa vào để thực hiện lệnh, tuỳ vào từng lệnh
mà không có, có một, hay hơn một tham số.
- [dẫn xuất]: thường là các chuyển hướng lệnh để chuyển kết quả qua một câu
lệnh khác thực hiện bước tiếp theo
- [lệnh nhận]: là lệnh sẽ tiếp nhận kết quả lệnh trước để thực hiện bước tiếp
theo
Ví dụ:
-d Khoảng trống kép ở đầu ra (không phải trên tất cả phiên bản pr).
-h "header" Làm cho mục mới trở thành như một đầu đề của bản báo cáo.
Trước khi sử dụng pr, dưới đây là các nội dung của một file mẫu: food.
$cat food
Sweet Tooth
Bangkok Wok
Mandalay
Afghani Cuisine
Isle of Java
Big Apple Deli
Sushi and Sashimi
Tio Pepe's Peppers
........
$
Bây giờ chúng ta sử dụng lệnh pr để tạo một bản báo cáo có 2 cột với đầu đề là
Restaurents:
$pr -2 -h "Restaurants" food
Nov 7 9:58 1997 Restaurants Page 1
- Nếu bạn sử dụng lệnh Ip, bạn có thể sử dụng chức năng -nNum để in số lượng
bản sao là Num. Cùng với lệnh Ipr, bạn có thể sử dụng tùy chọn -Num để
thực hiện việc tương tự.
- Nếu có nhiều máy in kết nối với máy tính của bạn, thì khi đó bạn có thể chọn
một máy in bằng cách sử dụng tùy chọn –dprinter với lệnh Ip và sử dụng tùy
chọn -Pprinter với lệnh Ipr cho mục đích tương tự. Tại đây, printer là tên
máy in.
2.1.2.9.3. Các lệnh Ipstat và Ipq trong Unix/Linux
Lệnh Ipstat chỉ những gì trong hàng máy in: ID yêu cầu, cỡ file, khi các công việc
được gửi cho mục đích in, và các trạng thái của các yêu cầu.
Sử dụng Ipstat -o nếu bạn muốn quan sát toàn bộ các yêu cầu đầu ra chứ không
phải chỉ các yêu cầu của riêng bạn. Các yêu cầu được trình bày theo thứ tự chúng được
in:
$lpstat -o
laserp-573 john 128865 Nov 7 11:27 on laserp
laserp-574 grace 82744 Nov 7 11:28
laserp-575 john 23347 Nov 7 11:35
$
Lệnh Ipq cung cấp thông tin hơi khác với lệnh Ipstat -o:
$lpq
laserp is ready and printing
Rank Owner Job Files Total Size
active john 573 report.ps 128865 bytes
Gởi các bản sao carbon tới danh sách của các người sử dụng. Danh sách có
-c
thể là một bản danh sách tên phân biệt bằng dấu phảy.
Gởi các bản sao blind carbon tới danh sách. Danh sách có thể là một bản
-b
danh sách tên phân biệt bằng dấu phảy.
Ví dụ để gửi một nội dung “Test message” tới địa chỉ admin@yahoo.com người
dùng sử dụng lệnh:
$mail -s "Test Message" admin@yahoo.com
Bạn sau đó được mong đợi để gõ văn bản vào thông báo của bạn, theo sau bởi một
control-D tại phần bắt đầu của một dòng. Để dừng việc gõ văn bản này, đơn giản bạn
gõ dấu chấm (.) như sau:
Hi,
This is a test
.
Cc:
Bạn có thể gửi một file đầy đủ bằng cách sử dụng một toán tử điều hướng lại <
như sau:
$mail -s "Report 05/06/07" admin@yahoo.com < demo.txt
Để kiểm tra các thư đến trong hệ thống Unix của mình, bạn gõ lệnh email như sau:
$mail
no email
2.1.3. Chuyển hướng input, output
2.1.3.1. Khái quát
Trong Linux, các thao tác chủ yếu và thường xuyên của người sử dụng là việc gõ
các dòng lệnh trên một cửa sổ Terminal. Mỗi câu lệnh của Linux thường sẽ bao gồm
đầu vào (Input) và đầu ra (Output), ngoài ra phần lớn câu lệnh cũng có kèm theo các
thông báo lỗi (Error Message).
Nguyên lý thiết kế của các chương trình trong Linux là chỉ làm một nhiệm vụ và
làm nhiệm vụ đó tốt nhất có thể. Tuy nhiên các công việc của người sử dụng lại không
chỉ đơn giản là sử dụng một câu lệnh duy nhất, mà cần nhiều chương trình phối hợp để
cùng thực hiện. Điều này thể hiện ở việc đầu ra của chương trình này lại là đầu vào của
chương trình khác. Và như vậy theo cách thông thường ta sẽ cần chạy từng câu lệnh
- stdin (standard input): đây là luồng sẽ đưa dữ liệu vào chương trình để xử
lý.
- stdout (standard output): luồng này dùng để xuất dữ liệu ra màn hình hiển
thị sau khi quá trình thực thi hoàn tất mà không gặp lỗi.
- stderr (standard error): luồng này có chức năng tương tự stdout, tuy nhiên
nó chỉ dùng để in các thông báo lỗi và đồng thời khi đó tín hiệu lỗi cũng được
gửi tới hệ điều hành.
- Ghi nội dung ra file, nếu file không tồn tại thì một file mới sẽ được tạo (
#ls -l /data/dulieu/os/linux/danhmuchethong.txt >>
update.txt
#echo “He Thong Moi Them” >> update.txt
- Linux thật là tuyệt vời, các công việc cần xử lý bằng các dòng lệnh vốn đã
nhanh, với sự trợ giúp của tính năng piping còn giúp công việc được nhanh
chóng hơn.
- Tính năng này cũng giúp cho việc gõ đi gõ lại các câu lệnh bớt đi sự nhàm
chán, và đồng thời cũng làm tăng hiệu suất công việc.
- Chỉ với các ký hiệu đơn giản (>, >>, <, 2> và |) nhưng lại có thể giảm công
sức đi rất nhiều.
2.1.4. Trợ giúp lệnh
Để tìm thông tin trợ giúp về một câu lệnh, một hàm chức năng, hay xem giải nghĩa
của một file cấu hình… trong Linux thì làm thế nào? Lệnh man là câu trả lời cho vấn
đề đó. Mời bạn đón đọc bài viết sau đây để hiểu rõ hơn ý nghĩa và cách sử dụng lệnh
man này.
[] Tương ứng với một trong những ký tự trong ngoặc hoặc giới hạn
Ví dụ:
Ut*l*s.c : Các file bắt đầu với Ut, chứa một ký tự l và kết thúc với s.c
?.h : Các file bắt đầu với một ký tự đơn, theo sau bởi .h
Ký tự Ý nghĩa
. Tương ứng với một ký tự đơn bất kỳ ngoại trừ dòng mới
* Tương ứng với không hoặc nhiều hơn các ký tự đứng trước
[] Tương ứng với một trong các ký tự bên trong hoặc một dãy các ký tự
[^] Tương ứng với các ký tự bất kỳ không nằm trong ngoặc
Cài đặt bằng lệnh rpm có những điểm bất lợi là những gói phụ thuộc, có nghĩa là
muốn cài gói này thì trước hêt phải cài những gói phụ thuộc của nó gây khó khăn cho
người mới bắt đầu làm quen với Linux. Ví dụ khi cài gói httpd thì trước hết phải cài
những gói phụ thuộc như apr, apr-util. Tuy nhiên lệnh rpm kèm với những tham số có
những công dụng rất hữu ích giúp ta quản trị và thao tác một cách nhanh chống.
Một số lệnh rpm cơ bản
rpm –ivh: lệnh cài đặt phần mềm có phần mở rộng là rpm. Khi cài đặt bằng rpm
có thể bị vấn đề gói phụ thuộc. Nếu bỏ qua gói phụ thuộc thì chỉ cần thêm tham số –
nodeps
rpm –qa: truy vấn tất cả các phần mềm rpm được cài đặt trong hệ thống. Nếu
muốn truy vấn một phần mềm cụ thể nào đó có cài đặt trong hệ thống hay không thì
dùng lệnh “rpm qa:grep tenphanmem” với a là all (tất cả), q là query (truy vấn)
Cài đặt bằng lệnh yum có hai dạng: yum từ internet và yum từ local hoặc dvd. Đối
với yum từ internet đòi hỏi máy chủ phải kết nối internet và thực hiện lệnh:
Dùng lệnh yum để cài gói httpd-2.2.3-91.el5.centos.x86_64.rpm
yum –y install httpd
Sau khi thực hiện lệnh trên, máy chủ tự động tìm đến những nơi lưu trữ ở ngoài
internet cụ thể là các Repository để download gói httpd về và cài đặt. Những nơi lưu trữ
được cấu hình trong các tập tin ở đường dẫn “/etc/yum.repos.d”, đó là những tập tin có
dạng *.repo. Tham số -y có nghĩa là yes để thiết lập cho lệnh yum tự động cài đặt gói
sau khi tải về mà không cần hỏi có cài hay không.
Còn yum từ dvd thì trước hết phải cấu hình đường dẫn để yum. Dùng lệnh mount
để mount đĩa dvd
mount /dev/cdrom /media/
Sau đó tạo tập tin dvd.repo trong đường dẫn “/etc/yum.repos.d” có nội dung như
sau
[dvd]
name=Local Repository
baseurl=file:///media
gpgcheck=0
enabled=1
Kế tiếp dùng lệnh yum –y install httpd như trên để cài dịch vụ apache web server.
Cài đặt bằng lệnh yum rất thuận lợi, không bị vấn đề về gói phụ thuộc. Hệ thống
tự động phân tích tìm và cài luôn những gói phụ thuộc, thuận lợi cho những người mới
bắt đầu làm quen với Linux. Ví dụ khi cài gói httpd thì hê thống tự động cài luôn các
gói phụ thuộc và gói httpd
- yum list available: dùng để liệt kê tất cả các phần mềm có thể cài đặt bằng
lệnh yum
- yum info: là lệnh dùng để kiểm tra thông tin của phần mềm chưa được cài đặt
và đã được cài đặt.
-yum search: là lệnh tìm kiếm phần mềm được hỗ trợ cài đặt bằng yum. Ví dụ:
“yum search httpd” là lệnh tìm kiếm phần mềm httpd, tất cả phần mềm có tên
hoặc thông tin chứa httpd sẽ được liệt kê
[root@test ~]# yum search httpd
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
* base: mirrors.viethosting.vn
* extras: mirrors.viethosting.vn
* updates: mirrors.viethosting.vn
============== Matched: httpd ===============
mod_ssl.x86_64 : SSL/TLS module for the Apache HTTP server
system-config-httpd.noarch : Apache configuration tool
centos-ds.x86_64 : CentOS Directory, Administration, and
Console Suite
httpd.x86_64 : Apache HTTP Server
httpd-devel.i386 : Development tools for the Apache HTTP
server.
httpd-devel.x86_64 : Development tools for the Apache HTTP
server.
2. Tại sao cần phải thiết lập biến môi trường trong Linux? Liệt kê các loại biến môi
trường trong Linux? Tại sao người dùng phải thiết lập biến môi trường của riêng mình?
3. So sánh sự khác biệt về tính chất của hai lệnh yum và rpm? Thực chất của lệnh yum
là gì? Quy trình thiết lập yum offline với source trên DVD cài hệ điều hành Centos.
2.1.8.2. Phần thực hành
1. Xem hướng dẫn lệnh yum bằng lệnh man, kết quả ghi vào file yumman.txt trong thư
mục home của root.
2. Thực hiện cài đặt dịch vụ httpd bằng lệnh yum, những thông báo kết quả lưu lại vào
tập tin yumhttpd.txt trong thư mục home của root
3. Thiết lập chức năng cài đặt phần mềm bằng yum thông qua dvd
4. Kiểm chứng: hãy cài đặt các phần mềm vsftp, samba (smb), dns (bind), nfs bằng lệnh
yum.
5. Cấu hình các biến sau: thay đổi đường dẫn cho hệ thống
6. Dùng lệnh rpm kiểm tra phần mềm gftp, sshd, iptables, httpd, smb có cài đặt trên máy
chưa? Phần mềm chưa có thì tiến hành cài đặt.
KHOA CÔNG NGHỆ THÔNG TIN Trang 72
Chương 2: Sử dụng hệ điều hành Linux
7. Tiến hành cài đặt gftp, iptables và sshd bằng lệnh rpm.
8. Dùng lệnh cat, tail, head để xem nội dung vào /etc/passwd và lọc ra các dòng sau:
root, hall, sendmail, 3 dòng cuối, 5 dòng đầu của tập tin lần lượt vào các tập tin sau
u01.txt, u02.txt, u03.txt, u04.tut, u05.tut lưu vào thư mục home của user
9. Dùng lệnh ls -l xem các tập tin .txt và .tut lưu vào tập tin u06.doc và u07.vba cũng
trong home của user
10. Liệt kê các tập tin từ u01 đến u06 bằng các sử dụng ký tự đại diện.
Thư
Mô tả nội dung
mục
/ bắt đầu cấu trúc tệp, gọi là thư mục gốc (root)
/home chứa các thư mục nhà (home) của mọi tài khoản người dùng
/bin lưu trữ tất cả các câu lệnh chuẩn và các chương trình tiện ích
chứa các tệp, câu lệnh được hệ thống sử dụng, thư mục này được
/usr
chia thành các thư mục con khác
/usr/bin chứa các câu lệnh hướng người dùng và các chương trình tiện ích
/usr/lib chứa thư viện cho các ngôn ngữ lập trình
/usr/man chứa các tệp hướng dẫn sử dụng cho các câu lệnh (man)
/dev chứa giao diện cho các thiết bị như đầu cuối và máy in
/etc chứa tệp cấu hình hệ thống và các tệp hệ thống khác
clear
- –a sẽ đưa ra màn hình kích thước của mỗi thư mục và file
- –s sẽ chỉ in ra tổng cộng
- –k sẽ in ra tất cả các kích thước file theo kilobytes
2.2.1.5.6. Lệnh file
Cú pháp: file filename
Câu lệnh xác định kiểu của file. Nếu file không phải là file thông thường, kiểu của
file được xác định.
2.2.1.5.12. Lệnh ls
Lệnh ls cho phép bạn đưa ra danh sách các file và các thư mục con.
Cú pháp : ls [-1aRl] file_hoặc_thư_mục
Khi sử dụng tuỳ chọn -1 , nó chỉ hiển thị tên file và tên thư mục con của thư mục
hiện tại. Khi chọn tuỳ chọn –l, một danh sách các file và thư mục con của thư mục hiện
tại được hiển thị với đầy đủ các thông tin về file và thư mục. Tuỳ chọn –a cho phép bạn
hiển thị tất cả các file và thư mục (kể cả các file ẩn, tên file bắt đầu bằng dấu chấm)
trong thư mục hiện tại. Tuỳ chọn –R sẽ hiển thị tất cả các file và các thư mục con bên
trong nó nếu có.
Sử dụng lệnh mkdir với cú pháp sau để tạo thư mục như trên
[root@srv ~] mkdir /data
[root@srv ~] mkdir -p /data/os/unix/AIX
[root@srv ~] mkdir /data/os/unix/{Solaris, FreeBSD}
[root@srv ~] mkdir -p /data/os/linux/{Fedora, Redhat,
Ubuntu}
[root@srv ~] mkdir /data/os/windows
[root@srv ~] cd /data/os/windows
[root@srv windows] mkdir winxp win7 win2k8
- Lệnh 1: chuyển vào thư mục win2k8 con của thư mục hiện hành (windows)
- Lệnh 2: từ win2k8 chuyển lên 2 cấp cha của windows (os)
- Lệnh 3: chuyển lên cấp cha os, chuyển vào ke toan
- Lệnh 4: chuyển sang kinh doanh ngang cấp ke toán
2.2.1.5.13.3. Lệnh tree - xem cây thư mục
Lệnh tree không có sẵn trong hệ thống vì vậy cần phải cài đặt lệnh tree: yum install
tree. Một số hệ thống linux như Centos, Ubuntu có sẵn lệnh tree khi cài đặt.
Lệnh tree đơn thuần là vẽ ra cây thư mục từ vị trí hiện hành. Nếu trong thư mục
chứa tập tin, lệnh tree sẽ thể hiện tất cả tập tin và thư mục nên có thể rất dài và khó xem.
Người ta dùng lệnh tree kết hợp với lệnh more để dừng lại từng màn hình.
#tree /data | more
2.2.1.5.13.4. Lệnh du - xem thông tin thư mục
[root@srv data]# du /bin/
7276 /bin/
[root@srv data]# du -sh /etc/
33M /etc/
[root@srv data]# du -sh /usr/
2.5M /usr/
2.1.5.14. Lệnh mv
Cú pháp : mv [-if] file_nguồn file_đích
Sử dụng lệnh mv để dịch chuyển hay đổi tên các file hay các thư mục. Câu lệnh
thực hiện việc dịch chuyển hay đổi tên phụ thuộc vào file_đích có là một thư mục hay
không. Để minh hoạ, chúng ta sẽ đổi tên một thư mục foo thành foobar:
#mv foo foobar
Bởi vì foobar chưa tồn tại, foo sẽ được đổi tên thành foobar. Nếu câu lệnh sau được
thực hiện:
#mv doc.txt foobar
và foobar đã tồn tại, việc dịch chuyển file sẽ được thực hiện sau đó. Tuỳ chọn –f
sẽ xoá các file đích đang tồn tại và không bao giờ nhắc người sử dụng. Tuỳ chọn –i sẽ
nhắc người sử dụng có ghi đè hay không nếu file_đích đã tồn tại.
Ví dụ: Đổi tên thư mục os -> hệ điều hành
#mv /data/os /data/hdh
Ví dụ: Di chuyển thư mục Solaris trong unix đến thư mục linux và đổi tên thành
Xubuntu
#mv /data/hdh/unix/Solaris /data/hdh/linux/Xubuntu
2.2.1.5.16. Lệnh rm
Cú pháp: rm [-rif] thư_mục/file
Để xoá thư mục hoặc file, sử dụng câu lệnh rm. bạn có thể xoá nhiều file sử dụng
ký tự đại diện hoặc gõ vào tên các file. Ví dụ:
#rm -f doc1.txt doc2.txt doc3.txt //xoá 3 tập tin bằng 1
lệnh
Tương ứng với:
#rm -f doc[1-3].txt //lệnh này xoá doc1.txt, doc2.txt,
doc3.txt
rm là câu lệnh rất mạnh, hãy cẩn thận khi sử dụng lệnh này vì bạn có thể nhầm và
xoá đi các file quan trọng. Nếu chưa chắc chắn, bạn có thể sử dụng tuỳ chọn –i, hệ thống
sẽ nhắc lại cho bạn xác thực mỗi lần xoá một file. Nếu như đã chắc chắn file cần xoá,
bạn có thể chọn tuỳ chọn –f để không phải nhận các thông tin nhắc bạn xác thực. Tuỳ
chọn –r sẽ cho phép bạn xoá toàn bộ các thư mục con.
Ví dụ: dùng lệnh rm với tuỳ chọn –n để xoá thư mục linux
#rm -r /data/os/linux
Lệnh này không cần phải xoá từ trong ra và tất cả tập tin thư mục con chứa trong
thư mục muốn xoá sẽ bị xoá sạch.
2.2.1.5.17. Lệnh ln
Cú pháp: ln [-s] file_nguồn đích
Lệnh ln tạo các liên kết cứng và mềm. Các liên kết cứng được tạo sử dụng lệnh ln
không có tuỳ chọn –s. Ví dụ:
#ln ./www ./public_html
Một liên kết cứng có hạn chế, nó không thể tạo liên kết đến một thư mục khác, và
một liên kết cứng không thể liên kết đến một file trên một hệ thống file khác. Sử dụng
tuỳ chọn -s bạn có thể tạo một liên kết mềm, loại bỏ các giới hạn này.
#ln –s /dev/fs02/jack/www /dev/fs01/foo/public_html
#umount /cdrom
2.2.1.6. Các thư mục quan trọng trong Linux
Nếu như một người dùng đã sử dụng quen trên môi trường Window, thì khi chuyển
sang môi trường Linux sẽ phân vân và khó hiểu về cấu trúc file system của nó. Ở bài
này mình sẽ phân biệt và hiểu vai trò của các thư mục ở cấp độ cao trong linux. Hình
bên dưới cung cấp cho ta cái nhìn tổng quan:
2.2.1.6.1. / – Root
- Mỗi một file và thư mục điều bắt đầu từ root directory
- Chỉ có user root có quyền trên các thư mục ở cấp bên dưới
- Còn /root là home directory của user root
Xem nội dung tập tin bằng lệnh head xem 5 dòng đầu của /etc/shadow
root@localhost ~] # head -5 /etc/shadow
root:$1$JbKmS/2R$bzm0ePoy1zYWdPNWLzDtL1:14628:0:99999:7:::
bin:*:14628:0:99999:7:::
daemon:*:14628:0:99999:7:::
adm:*:14628:0:99999:7:::
Mã Ý nghĩa
10 can't update group file. (không thể cập nhật tập tin nhóm)
- c comment: Lời chú thích, thường là tên đầy đủ của người dùng
- d home_dir: thư mục gốc của người dùng, Mặc định khi ta tạo một người dùng
thi sẽ được tạo trong thư mục /home/tên_tài_khoản
- e expire_date: ngày hết hiệu lực của account
- g initial_group: nhóm khởi tạo
- G group: nhóm mà người dùng thuộc vào
- p passwd: password của người dùng, password này phải được mã hoá trước
- s shell: shell mặc định của user
- u uid: user identification
- u: Mặc định sẽ lấy số ID tiếp theo để gán cho user. (User ID)
- m: Tạo thư mục home của người dùng nếu không có
- M: Không tạo thư mục home của người dùng
- e: Ngảy hết hạn của tài khoản
- login: tên username.
Ví dụ, để thêm mới người dùng được gọi là 'tecmint', sử dụng lệnh sau đây.
root@Cen01 ~] # useradd –c “Thuc hanh mang 1” thm1
Đặt Password cho tài khoản mới tạo
root@Cen01 ~]# passwd thm1
Changing password for user thm1.
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated
successfully.
Khi một người dùng mới được tạo ra, nó được nhập tự động vào file '/etc/passwd'.
Đây là tập tin được sử dụng để lưu trữ thông tin người dùng trên hệ thống.
thm1:x:504:504:thm1:/home/thm1:/bin/bash
Tuỳ chọn:
2. Đường dẫn tương đối và đường dẫn tuyệt đối khi nào cả hai bằng nhau? “Cách chỉ
đường dẫn tương đối trong linux dùng phương pháp chỉ thư mục cha (..) giống trong
Windows Command line” đúng hay sai? Tại sao?
3. Hai phát biểu sau đây “các thư mục thành phần trong linux đều gắn kết vào thư mục
gốc” và “các thư mục thành phần trong linux đều nằm tron (con) thư mục gốc”. Hai phát
biểu trên đúng hay sai? Tại sao?
4. Theo mặc định (hệ thống mới cài đặt) thư khi tạo user thì thư mục chủ nằm trong
/home. Tuy nhiên nhà điều hành muốn đổi hướng cho các home của từng user tạo ra
trong thư mục /users. Là một nhà quản trị, bạn phải làm sao?
2.2.3.2. Phần thực hành
2.2.3.2.1. Thực hành thao tác tập tin-thư mục
1. Sinh viên tạo cây thư mục sau: aaa tạo chữ thường (dùng lệnh xem cây thư mục
sau khi tạo xong)
2. Tạo tập tin dethi.txt trong thư mục t1 (nội dung tuỳ ý)
3. Tạo tập tin giaotrinh1.txt trong thư mục giaovien (nội
dung tuỳ ý)
4. Tạo tập tin giaotrinh2.txt trong thư mục hocsinh (nội
dung tuỳ ý)
5. Tạo tập tin doc1.doc, doc2.doc, doc3.doc, doc4.doc,
doc5.doc, doc6.doc trong thư mục aaa (nội dung tuỳ ý),
liệt kê các file trong thư mục aaa
6. Nối hai tập tin giaotrinh1.txt và giaotrinh2.txt thành tập
tin giaotrinh_chung.doc lưu trong thư mục aaa.
7. Dùng lệnh liệt kê để hiển thị lên màn hình các file trong
thư mục aaa có kiểu .doc
8. Copy doc1.doc và doc2.doc vào thư mục t1, copy doc3.doc vào t2, copy
doc4.doc và doc5.doc vào thư mục học sinh
9. Sao chép giaotrinh1.txt thành gt1.txt giữ nguyên tại thư mục cũ
10. Kết nối nội dung file doc1.doc trong aaa vào file giaotrinh1.txt
11. Xem dung lượng đĩa còn trống trong máy, xem dung lượng thư mục aaa
12. Sao chép các tập tin kiểu .conf trong /etc sang thư mục giaovien
13. Sao chép /etc/passwd sang hocsinh đổi tên thành matkhau.hs
14. Sao chép cây thư mục hocsinh sang thư mục giaovien
Song song với cách ký hiệu miêu tả bằng ký tự như ở trên, quyền thao tác tập tin
còn có thể cho dưới dạng 3 số. Đối với myfile, quyền đó là 644. Điều quan trọng là phải
hiểu cách ký hiệu bằng số vì nó liên quan đến việc thay đổi các quyền sau này. Các số
có thể nhận tất cả các giá trị từ 0 đến 7. 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 còn lại.
Mỗi số là tổng của các quyền theo quy tắc sau:
Bảng 2.3.1. Giá trị các quyền biểu diễn bằng số
read permission 4
Write permission 2
Execute permission 1
Vì vậy, một tập tin với quyền 751 có nghĩa là sở hữu có quyền read, write, và
execute bằng 4+2+1=7, Nhóm có quyền read và execute bằng 4+1=5, và còn lại có
quyền execute bằng 1.
Nếu chúng ta xem kỹ, chúng ta sẽ thấy mọi số từ 0 đến 7 đều tương ứng với một
tổ hợp duy nhất các quyền truy nhập tập tin.
Mode Ý nghĩa
chmod 777 filename: Cấp quyền truy cập đầy đủ cho mọi đối tượng người dùng.
chmod 775 filename: Cấp quyền truy cập đầy đủ cho chủ hệ thống và nhóm quản trị,
đối tượng người dùng chỉ có quyền đọc (read) và chạy (execute) file.
chmod 755 dirname: Cấp quyền truy cập đầy đủ cho chủ hệ thống, chỉ cho phép nhóm
quản trị và đối tượng người dùng đọc và chạy các file trong thư mục.
chmod 700 filename: Chỉ cấp quyền truy cập đầy đủ cho chủ hệ thống và chặn truy cập
với mọi đối tượng khác.
chmod 500 dirname: Không cho phép nhóm quản trị và người dùng truy cập vào file
trong thư mục, đồng thời giới hạn quyền chủ hệ thống chỉ đọc và chạy để tránh xóa và
thay đổi các file trong thư mục này.
KHOA CÔNG NGHỆ THÔNG TIN Trang 110
Chương 2: Sử dụng hệ điều hành Linux
chmod 660 filename: Cho phép chủ hệ thống và nhóm quản trị đọc, sửa, xóa và ghi dữ
liệu vào file, nhưng không phân quyền truy cập cho những người dùng khác.
2.3.2. Nhóm lệnh chuyển quyền và chuyển quyền sở hữu
2.3.2.1. Lệnh chuyển quyền chmod:
Cú pháp 1: chmod [-R] <permission-mode> <file hoặc thư mục>
<permission-mode> là một con số được kết hợp bằng 3 nhóm đối tượng
-R: (recursive) cho phép thay đổi người sở hữu của thư mục tên_thư_mục và tất
cả các thư mục con của nó. Điều này cũng đúng với lệnh chown, chgrp.
Lệnh chmod dùng để thay đổi quyền truy cập file hoặc thư mục. Ví dụ:
chmod myscript.pl
Để thay đổi quyền của một thư mục và tất cả các file, các thư mục con của thư mục
đó sử dụng câu lệnh:
[vadmin@backup ~]$ chmod –R 744
/data/users/u01/public_html
Cách dùng lệnh: chmod quyền_truy_cập_mới tên_file.
[vadmin@backup ~]$ ls -l /data/users/u01/
-rw-r--r-- 1 fido users 114 Dec 7 14:31 public_html
[vadmin@backup ~]$ chmod 345 myfile
[vadmin@backup ~]$ ls -l myfile
—wxr—r-x 1 fido users 114 Dec 7 14:31 myfile
Ví dụ thay đổi và hiện thị cho thấy sự thay đổi quyền truy cập tập tin myfile. Chú
ý là ta có quyền cấp phát quyền thực hiện (execute) mà không cần biết là tập tin có phải
là một chương trình hay không.
Phương pháp thay đổi tuyệt đối này có một số ưu điểm vì nó là cách định quyền
tuyệt đối, kết quả cuối cùng không phụ thuộc vào quyền truy cập trước đó của tập tin.
Đồng thời, dễ nói "thay quyền tập tin thành bảy-năm-năm" thì dễ hơn là "thay quyền tập
tin thành đọc-viết-thực hiện, đọc-thực hiện, đọc-thực hiện"
Cú pháp 2: chmod [-R] [đối tượng] [+/-] <quyền> <file hoặc thư mục>
- -f : ngăn chặn tất cả các thong báo lỗi trừ các thong báo sử dụng
- -h: thay đổi quyền sở hữu của lien kết tượng trưng nhưng không thay đổi
quyền sở hữu của file mà được chỉ đến bởi lien kết tượng trưng đó.
- -R: thay đổi quyền sở hữu của thư mục, các file và các thư mục con bên trong
thư mục hiện tại được chỉ ra
2.3.2.2.2. Lệnh chgrp
2. Cách xem quyền sở hữu trên một tập tin như thế nào? Phân tích các ký hiệu trên một
tập tin sau khi dùng lệnh xem quyền sở hữu?
3. Với một thư mục cá nhân thì quyền sở hữu gồm những thành phần nào? Tại sao khi
tạo user thì các quyền đó cũng gán cho thư mục cá nhân của user.
4. Lệnh chuyển quyền sở hữu có thể chuyển cho user và group. Khi nào 2 lệnh này tương
đương nhau? Lệnh chuyển quyền sở hữu có 2 dạng. Dạng nào không cần quan tâm đến
cấu hình trước đó của đối tượng?
2.3.3.2. Phần thực hành
1. Tạo user và group sau: tất cả user dùng password 123abc
a. Group: nhanvien, ketoan, quanly
b. User 1: nv01, nv02, nv03, nv04 thuộc nhóm nhanvien
c. User 2: kt01. kt02, kt03, ktt thuộc nhóm ketoan, nhóm phụ nhanvien
d. User 3: gd, pgd, tp, pp thuộc nhóm quanly và nhóm phụ là nhanvien,
ketoan
2. Tạo câu thư mục sau:
3. Phân quyền cho nhánh thư mục quanly như
sau (chuyển quyền sở hữu và phân quyền):
– gd chuyển quyền sở hữu cho user gd,
user được toàn quyền trên thư mục của mình. Các
nhóm và user khác không có quyền nào trên thư
mục của gd.
– pgd chuyển quyền sở hữu cho user pgd,
user được quyền đọc và ghi trên thư mục của
mình. Thành viên trong nhóm và người dùng
khác có quyền đọc và thi hành trên thư mục pgd
– tp (pp) chuyển quyền sở hữu cho user
tp (pp) và nhóm quanly, user tp (pp) được toàn
quyền trên thư mục của mình, thành viên nhóm
được quyền đọc, ghi và thực thi, người dùng khác
không có quyền gì cả.
* Đăng nhập vào từng user và kiểm thử
bằng cách dùng lệnh ls và cat > kiemtra.txt
(nhâp nội dung tuỳ ý, lưu bài Ctrl - D)
4. Phân quyền cho nhánh thư mục ketoan như sau (chuyển quyền sở hữu và phân quyền):
KHOA CÔNG NGHỆ THÔNG TIN Trang 114
Chương 2: Sử dụng hệ điều hành Linux
- ktt: chuyển quyền sở hữu cho ktt và nhóm ketoan, ktt toàn quyền trên thư mục
của mình, các thành viên nhóm được quyền đọc trên ktt, ngoài ra người khác được
quyền thực thi. – kt01 (kt02) chuyển quyền sử dụng cho kt01 (kt02). User kt01 (kt02)
được toàn quyền trên thư mục của mình, các thành viên nhóm được quyền đọc. ngoài ra
nhóm khác không có quyền gì cả.
- ketoan chuyển quyền sở hữu cho nhóm ketoan. Phân quyền toàn quyền cho
user, nhóm sở hữu có quyền đọc, thành viên khác không quyền gì cả.
* Đăng nhập vào từng user và kiểm thử bằng cách dùng lệnh ls và cat >
kiemtra.txt (nhâp nội dung tuỳ ý, lưu bài Ctrl - D)
5. Phân quyền cho nhánh thư mục nhansu như sau (chuyển quyền sở hữu và phân quyền):
- nhansu: chuyển quyền sở hữu cho nhóm nhanvien.
- nv01: chuyển quyền sở hữu cho user nv01, user này được toàn quyền trên thư
mục nv01 (thực hiện tương tự cho nv02)
* Kiểm thử bằng cách đăng nhập vào từng user thực hiện tạo tập tin, duyệt thư
mục.
Lưu ý kết thúc một câu là dấu .! hoặc ? ^D dòng hiện tại ở cuối cửa sổ
Để hiển thị số thứ tự các dòng soạn / kí hiệu chiều tìn xuôi
thảo :
? kí hiêụ chiều tìm ngược
: set nu
/string chuyển con trỏ đến dòng chứa
Xóa bỏ hiển thị trên : dãy kí tự theo chiều
:n<Enter> hoặc nG Chuyển con trỏ ?string chuyển con trỏ đến dòng chứa
đến dòng thứ n dãy kí tự theo chiêu ngược
:s hoặc G Đến cuối dòng văn bản // lặp lại tìm xuôi
x xóa kí tự taịo vị trí con trỏ dd hoặc :d<CR> xóa dòng chứa con trỏ
x xóa kí tự trước vị trí con trỏ d$ hoặc D xóa đến cuối dòng
3dw xóa 3 từ
- Chế độ câu lệnh: Ở chế độ này, bạn có thể thực hiện các thao tác như lưu
tập tin, di chuyển con trỏ đến các vị trí khác nhau trong tập tin, chỉnh sửa,
sắp xếp, xóa bỏ, thay thế, tìm kiếm đoạn văn bản hay thoát khỏi Vim. Để
chuyển sang chế độ lệnh, bạn nhấp ESC.
- Chế độ nhập liệu: Ở chế độ này, bạn có thể thực hiện các thao tác như một
trình soạn thảo đơn thuần như chỉnh sửa, xóa bỏ…nội dung văn bản. Để
chuyển sang chế độ này, bạn chỉ cần nhấp ký tự i hoặc phím Insert trên bàn
phím giống như trình soạn thảo Vi.
- Chế độ trực quan: Chế độ này là một mở rộng của Vim, bạn có thể chọn / bôi
đen văn bản (dùng để copy nhiều dòng).
Chú ý: Trong Vim có phân biệt chữ hoa và chữ thường.
Một số lệnh cơ bản thao tác trên Vim:
- :w – lưu file
- :q – thoát khỏi Vim, lệnh sẽ vô hiệu nếu file chưa được lưu
- :q! – thoát khỏi Vim để cả file chưa được lưu
- :wq – lưu lại và thoát
2.4.2.3. Gedit
Gedit là một trình soạn thảo khá phổ biến trong Linux, trong một số phiên bản nó
được cài đặt sẵn (tuy nhiên nếu hệ thống chưa có thì bạn chạy lệnh sudo apt-get install
gedit để cài đặt). Ngoài việc hỗ trợ người dùng thao tác chỉnh sửa trên các file văn bản
chữ thì gedit còn hỗ trợ trong việc biên tập các chương trình đối với lập trình viên.
Cú pháp: gedit file-name
Gedit hỗ trợ cho bạn các thao tác khá dễ dàng trên giao diện đồ họa như mở file,
lưu file, xóa file, thoát khỏi trình soạn thảo…
Nếu bạn là một lập trình viên thì việc sử dụng gedit là một lựa chọn sáng suốt vì
nó tích hợp nhiều công cụ rất mạnh và hữu ích. Tuy nhiên, để có thể phát huy được hết
những tính năng của nó thì việc cài đặt thêm những plugin là một điều nên làm. Một
Tên phân vùng: Hạt nhân Linux/ Unix xây dựng cơ chế truy xuất tất cả các loại đĩa
và thiết bị đều ở dạng tập tin. “Chú chim cánh cụt” đặt tên cho bé ổ đĩa mềm là fd (floppy
disk), ổ đĩa mềm thứ nhất là fd0, ổ đĩa mềm thứ hai là fd1 (hết rồi, chỉ có tối đa hai ổ
đĩa mềm thôi). Tiếp đến là ổ đĩa cứng, nếu là ổ đĩa IDE thì có tên hd (hard disk), còn
nếu là ổ đĩa SCSI thì có tên là sd (SCSI disk). Bây giờ bàn về ổ đĩa cứng IDE thôi nhé
(ổ SCSI cũng tương tự). Ổ đĩa cứng vật lý thứ nhất với tên hda, thứ hai là hdb, thứ ba là
hdc, nếu còn nữa thì tiếp tục. Trên từng ổ đĩa cứng, mỗi phân vùng cũng có tên riêng,
điển hình là bốn phân vùng chính (Primary) chiếm lấy các tên từ hda1 đến hda4. Phân
cùng mở rộng (Extended) có số từ 5 trở lên (như hda5, hda6…). Điều này khác với DOS/
Windows, vì trên DOS/Windows thì Extended không có tên, nhưng trên Linux thì
Extended có tên hẳn hoi. Dù bạn không chia đủ 4 phân vùng primary thì các phân vùng
Logical cũng vẫn đi từ 5 trở lên.
Phân vùng tráo đổi SWAP (bộ nhớ ảo): Nếu Windows sử dụng tập tin tráo đổi
SWAP/pfile để lưu tạm bộ nhớ thì Linux dùng ngay cả một phân vùng SWAP hẳn hoi
để làm việc này, phân vùng SWAP phải nằm trên Extended tức là Logical, và phải có
kích thước gấp 1,5 đến hai lần kích thước bộ nhớ RAM hiện có trên máy. Tuy vậy, đối
với những máy có dung lượng bộ nhớ RAM từ 32MB trở lên thì Linux khuyến khích
đặt kích thước phân vùng SWAP bằng với dung lượng RAM. Dù thế, bạn vẫn được toàn
quyền đặt kích thước phân vùng SWAP mà.
Giải phân mảnh (Defragment): Khi dùng Windows, bạn phải thường xuyên làm
công việc “dồn đĩa” giải phân mảnh để tăng tốc hệ thống. Thế nhưng ở Linux, ta không
cần vì kiểu phân vùng EXT2 (hoặc EXT3) đã có đoạn chương trình tự động chống phân
mảnh trong khi làm việc. Đây là một đặc tính rất hay của Linux, nhưng bạn phải trả cho
Linux với giá 10% dung lượng phân vùng. Thật ra, đây là cái giá không cao, và bạn
hưởng được tính ổn định và hiệu năng tối ưu.
Lệnh fdisk
Lệnh fdisk dùng để tạo partition. Có các tính năng sau:
[root@blackboard root]# fdisk /dev/sda
The number of cylinders for this disk is set to 4425. There is nothing wrong with
that, but this is larger than 1024, and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)
Command (m for help): m
- Tiến trình với đối thoại (Interactive processes): là tiến trình khởi động và
quản lý bởi shell, kể cả tiến trình forthground hoặc background.
- Tiến trình batch (Batch processes): Tiến trình không gắn liền đến bàn điều
khiển (terminal) và được nằm trong hàng đợi để lần lượt thực hiện.
- Tiến trình ẩn trên bộ nhớ (Daemon processes): Là các tiến trình chạy dưới
nền (background). Các tiến trình này thường được khởi động từ đầu. Đa số
các chương trình server cho các dịch vụ chạy theo phương thức này. Đây là
các chương trình sau khi được gọi lên bộ nhớ, đợi thụ động các yêu cầu
chương trình khách (client) để trả lời sau các cổng xác định (cổng là khái niệm
gắn liền với giao thức TCP/IP BSD socket). Hầu hết các dịch vụ trên Internet
như mail, Web, Domain Name Service … chạy theo nguyên tắc này. Các
chương trình được gọi là các chương trình daemon và tên của nó thường kết
thúc bằng ký tự "d" như named, inetd … Ký tự "d" cuối được phát âm rời ra
như "đê " trong tiếng việt. Ví dụ named được phát âm là "nêm đê".
Cách đơn giản nhất để kiểm tra hệ thống tiến trình đang chạy là sử dụng lệnh ps
(process status). Lệnh ps có nhiều tùy chọn (option) và phụ thuộc một cách mặc định
vào người login vào hệ thống. Ví dụ:
$ ps
PID TTY STAT TIME COMMAND
41 v01 S 0:00 -bash
134 v01 R 0:00 ps
cho phép hiển thị các tiến trình liên quan tới một người sử dụng hệ thống.
Cột đầu tiên là PID (Process IDentification). Mỗi tiến trình của Linux đều mang
một số ID và các thao tác liên quan đến tiến trình đều thông qua số PID này. Gạch nối
– trước bash để thông báo đó là shell khởi động khi người sử dụng login.
Để hiển thị tất cả các process, ta có thể sử dụng lệnh ps –a. Một người sử dụng hệ
thống bình thường có thể thấy tất cả các tiến trình, nhưng chỉ có thể điều khiển dược các
tiến trình của mình tạo ra. Chỉ có superuser mới có quyền điều khiển tất cả các tiến trình
của hệ thống Linux và của người khác. Lệnh ps –ax cho phép hiển thị tất cả các tiến
trình, ngay cả những tiến trình không gắn liền đến có bàn điều khiển (tty). Chúng ta có
KHOA CÔNG NGHỆ THÔNG TIN Trang 127
Chương 2: Sử dụng hệ điều hành Linux
thể coi các tiến trình đang chạy cùng với dòng lệnh đầy đủ để khởi động tiến trình này
bằng ps –axl. Lệnh man ps cho phép coi các tham số tự chọn khác của lệnh ps.
Vd 1: thiết lập lịch vào thời điểm ngày 20/5 lúc 11 giờ sáng.
1 # at 11 am may 20
2 at>
Vd 2: thiết lập thời gian vào lúc 4 giờ chiều sau ngày hôm nay 3 ngày.
– Sau khi bạn thiết lập thời gian sẽ được chuyển vào giao diện console khác để chỉ
định các danh sách chương trình lệnh thực thi.
– Để thoát khỏi console “at” bạn bấm nút CTRL+D, chương trình lệnh sẽ được
thêm vào hàng đợi.
– Output của chương trình thực thi trong hàng đợi “at” sẽ được gửi mail đến bạn,
mặc định là gửi mail local.
2.4.4.4.4.2. Thiết lập lịch với thời gian tương đối
– Bạn có thể thiết lập thời gian với việc cộng thêm thời gian với thời điểm hiện tại.
Cấu trúc lệnh
1 # at now + COUNT UNIT
Vd : thiết lập lịch sẽ thực thi 5 phút sau thời điểm hiện tại
1 # at now + 5 min
1 # at now + 5 seconds
2 syntax error. Last token seen: s
3 Garbled time
– Một số từ ngữ thời gian thông dụng và diễn giải. Một số thời gian 10:00 phía
dưới ví dụ là do tính từ thời điểm hiện tại đang cấu hình thời gian “at” là 10:00 AM.
1 midnight = 12:00 AM
2.4.4.4.4.4. Xem dánh sách các công việc nằm trong hàng đợi thực thi của chương
trình “at”
– Ta sẽ sử dụng chương trình lệnh “atq” hoặc “at -l” để hiển thị tất cả các nội dung
chương trình lệnh đang được sắp lịch hoặc đang thực thi. Thực chất “atq” chỉ là alias
của “at -l“.
1 # at -l
2 2 2016-03-27 14:19 a root
3 1 2016-03-27 14:15 a root
1 # atq
2 2 2016-03-27 14:19 a root
3 1 2016-03-27 14:15 a root
– Với nội dung danh sách chương trình thực thi trên thì cấu trúc để hiểu danh sách
đó như sau. Từ trái qua phải : số thứ tự nhiệm vụ, thời gian sẽ thực thi (ngày/tháng/năm
& thời gian), hàng đợi do chương trình “at” tạo (nếu là “b” thì do chương trình “batch”
tạo) và tên user sẽ thực thi chương trình.
Lưu ý:
– atq chỉ có thể liệt kê danh sách chương trình thực thi bởi “at” của user chạy lệnh
“atq”, không thể liệt kê các chương trình lệnh sẽ chạy khác của các user khác, ngoài trừ
user tối cao root.
2.4.4.4.4.5. Xoá bỏ 1 nội dung chương trình nằm trong danh sách thời gian thực
thi của “at”
- Bạn có thể dùng chương trình lệnh “atrm” hoặc “at -d” để làm cùng 1 nhiệm
vụ đó là xoá bỏ 1 nhiệm vụ thực thi khỏi danh sách hàng đợi của “at”.
- Giả sử để xoá bỏ nhiệm vụ thực thi số 2, thì sẽ làm theo cú pháp sau.
1 # atrm 4
hoặc
2.4.4.4.4.6. Thực thi các chương trình lệnh nằm trong 1 file list
- Chúng ta hoàn toàn có thể tạo 1 file text trong đó chứa các chương trình lệnh
hoặc nội dung một shell script nào đấy mà bạn muốn chúng sẽ được thực thi
chạy nền bằng chương trình “at“.
- Bằng cách sử dụng option hỗ trợ “-f” , ta sẽ yêu cầu “at” sử dụng thông tin
chương trình thực thi được lấy từ 1 file text thay vì stdin.
1 # cat /root/chuongtrinh.txt
2 /home/cuongqc/testing.sh
3 /bin/date -I
2.4.4.4.4.7. Kiểm soát user nào được quyền sử dụng chương trình “at”
- Người quản trị viên có thể kiểm soát user nào có thể đặt lịch thực thi chương
trình bằng “at” hoặc không được phép.
- Đầu tiên, chương trình sẽ kiểm tra file “/etc/at.allow” . Nếu
file /etc/at.allow tồn tại, thì chỉ có user được liệt kê trong file này mới được
phép sử dụng chương trình “at”.
- Kế đến nếu file “/etc/at.allow” không tồn tại, chương trình sẽ kiểm tra
file /etc/at.deny . Nếu file này tồn tại, user nào được liệt kê trong file này sẽ
không có quyền thực thi chương trình “at”.
-Mặc định một số hệ thống thường sử dụng chương trình sử dụng
file /etc/at.deny để ngăn 1 số user không được phép xài “at” như user : www-
data, guest, backup,…
2.4.4.4.4.8. Các file và thư mục được sử dụng bởi chương trình “at”
– Các file được chương trình “at” sử dụng tương tác trong quá trình hoạt động.
1 /var/spool/at
2 /var/spool/at/spool
3 /proc/loadavg
4 /var/run/utmp
Nếu một cột được gán ký tự *, tương ứng là tác vụ sẽ được chạy ở mọi giá trị cho
cột đó. Ngoài ra còn một ký tự đặc biệt được sử dụng trong cú pháp lệnh là dấu “,” dấu
này dùng để xác định tứng giá trị riêng lẻ trong một đoạn
Ví dụ như chúng ta muốn lập lịch chi tiết là phut thứ 5 và 35 của mỗi giờ mỗi
ngày mỗi tháng và mỗi ngày trong tuần sẽ làm tác vụ <A>
5,35 * * * * tác vụ <A>
Ngoài ra còn một ký tự khác là dấu “-“ đại diện cho một dãy giá trị thay vì dấu “,”
là một giá trị tách rời.
Đặc biệt để hỗ trợ đơn giản trong cấu hình cron người ta còn kiến tạo ra 8 chuỗi
ký tự đặc biệt có ý nghĩa xác định như sau:
Bảng 3.4.2. Mẫu định dạng cấu hình cron phổ biến
ví dụ:
Chạy ntpdate mỗi giờ: @hourly /path/to/ntpdate
Chạy backup script mỗi ngày: @daily /path/to/backup/script.sh
Tính năng email
Mặc định khi tới định kỳ kích hoạt một tác vụ thì nội dung out put của tác vụ đó
mặc định sẽ được gửi vào mail cho tài khoản email local của người dùng. Đê ngừng
nhận các thông tin đó qua email chúng ta cần thêm vào sau thiết lập tác vụ đó cú pháp
>/dev/null 2>&1
vi dụ: 0 3 * * * /root/backup.sh >/dev/null 2>&1
Thay vào đó để thiết lập cụ thể lại tính năng mail sẽ gửi mail cho một tài khoản
mail xác định chúng ta cần thiết lập một biến MAILTO như sau trong khi thiết lập cron:
Ví dụ:
MAILTO=”vivek@nixcraft.in”
0 3 * * * /root/backup.sh >/dev/null 2>&1
d. Các ví dụ cụ thể
Giả sử tôi viết một đoạn script backup bookmarks trong Firefox như sau:
Code:
#!/bin/bash
date=`date +%F`
cp
~/.mozilla/firefox/13kee53o.default/bookmarks.html/mnt/dat
a/BACKUP/bookmarks-$date.html
sau đó tôi cho script này chạy định kỳ vào 15h thứ Hai và thứ Năm hàng tuần bằng
cách tạo một file crontab như sau:
$ crontab -e
0 15 * * 1,4 sh /mnt/data/linux/code/backupbookmarks.sh
Cuối cùng, nhớ khởi động lại cron daemon:
/etc/init.d/crond restart
Chú ý: Để muốn “test” ngay xem crontab nó có hoạt động không, bạn có thể sửa
lại đoạn script trên một chút:
#!/bin/bash
Một số lưu ý
Tóm lại:
Trong khi “cron” được sử dụng để thiết lập các nhiệm vụ thực thi định kì trên hệ
thống. Thì chương trình “at” chỉ sử dụng để lên lịch cho 1 hoặc nhiều chương trình lệnh
khác thực thi vào 1 thời điểm cụ thể 1 lần duy nhất, như một nội dung nhắc nhở đơn
giản hoặc một script phức tạp.
Còn “batch” dùng để lên lịch thực thi nhiệm vụ khi mà hệ load hệ thống rớt xuống
dưới 0.8, như vậy “batch” cũng hoạt động giống “at” nhưng có điều kiện kích hoạt là
load hệ thống dưới mức quy định.
Để sử dụng được “at” và “batch“, thì 2 phần mềm này cần được cài đặt trên hệ
thống. Sau đó phải đảm bảo dịch vụ “atd” phải được chạy. Nếu không chương trình sẽ
không chạy theo lịch, tức danh sách lịch thực thi đã có nhưng không có dịch vụ atd kiểm
tra thời gian để thực thi.
1 # rpm -q at
2 at-3.1.10-48.el6.x86_64
3 # service atd start
/var/log/secure
Lưu các thông tin thống kê login, logout và các ipaddress truy cập vào hệ thống
/var/log/boot
Lưu các thông tin khi hệ thống mới khởi động
2.4.6. Bài tập
2.4.6.1. Củng cố lý thuyết
1. So sánh sự khác biệt giữa các lệnh cron, at? Lệnh cron này 5,10 0 10 * 1 có ý nghĩa
như thế nào?
2. Công cụ quản lý tiến trình trong linux ps gồm những chức năng nào tương đương với
task manager trong windows?
3. Thiết lập một cấu hình boot menu grub cho một hệ thống có 4 hệ điều hành Centos,
Ubuntu, Suse, Fedora?
4. Một sinh viên phát biểu như sau: “một đĩa cứng được chi thành 5 phân vùng có tên
lần lượt là had, hdb, hdc, hdd, hde” phát biểu này đúng hay sai? Tại sao?
- interface: là card mạng có tên lưu trữ trong dev theo quy định của linux, ví
dụ: eth0, eth1, eth2,…
- ip_address: là địa chỉ IP cụ thể, nằm trên đường mạng mà máy tính kết nối
vào
- subnet mask: là địa chỉ mask của đường mạng
Ví dụ: đặt địa chỉ ip 10.0.0.1/255.255.255.0 cho card mạng eth0
[root@Cen01]# ifconfig eth0 10.0.0.1 netmask 255.255.255.0
up
Các bạn để ý, ”up” ở cuối câu lệnh ở đây nhằm kích hoạt giao diện mạng. Để thực
hiện điều này thường xuyên mỗi khi bạn khởi động sẽ cần thêm lệnh này trong file
/etc/rc.local của bạn. Nó sẽ giúp bạn kích hoạt giao diện NIC mỗi khi bạn khởi động hệ
thống.
Tuy nhiên, khi muốn đánh lại IP động cho card mạng ta dùng lệnh:
o #ifdown <interface> để xóa ip cũ đang thiết lập
o #ifup <interface> xin cấp lại IP động từ máy chủ cấp IP hoặc trong câu
lệnh đánh IP
Thiết lập một alias cho card mạng
Linux cho phép bạn sử dụng bí danh (alias) cho card mạng, tức là cho phép bạn có
nhiều địa chỉ IP cho cùng một card vật lý. Kết quả nhận được gần giống như bạn có gắn
nhiều card vật lý lên máy. Do đó, bạn có thể dùng một card để nối với nhiều mạng logic
khác nhau. Cú pháp của lệnh này là:
[root@Cen01]# ifconfig eth0:0 208.148.45.58 netmask
255.255.255.248 broadcast 208.148.45.255 up
Các tập tin cấu hình của kết nối mạng là /etc/sysconfig/network-scripts/ifcfg-
ethX với X là 0,1... hay 0:0, 0:1.... Bạn có thể thay đổi cấu hình kết nối mạng bằng cách
sửa đổi lại tập tin này bằng một chương trình soạn thảo text như mc chẳng hạn, sau đó
khởi động lại kết nối mạng bằng
/etc/rc.d/init.d/network restart
Cửa sổ con hiện ra có 2 công cụ set IP cho card mạng, Chọn dòng “Edit a device
params” để đánh IP và GW (enter)
Nếu máy tính có 1 card mạng thì kết quả như giao diện bên dưới (trường hợp có
1 card mạng nhưng có 2 dòng thì không cấu hình dòng có chữ .bak)
Giao diện gán IP và default gateway cho card mạng như sau
Tiến trình đánh IP cho card mạng lần lượt như sau:
Bỏ dấu * trong [ ] bằng cách di chuyển dấu chớp xuống ô [*] gõ thanh dài
Dời xuống dòng Static IP đánh IP cho máy
Xuống dòng netmask đánh vào mask của đường mạng.
Xuống Def GW: đánh GW nếu có yêu cầu.
Bấm tab xuống OK, enter
Trở về màn hình chọn thiết bị
Hình 3.1.5. Màn hình chọn thiết bị sau khi gán xong IP, Gateway
Bấm tab xuống nút save, enter. Lên một cấp về màn hình chọn hoạt động,
dời xuống “Edit DNS configuration”
Kết thúc quá trình gán IP, DNS, Gateway. Bấm Tab Xuống Save&Quit
Hình 3.1.8. Hoàn thành quá trình gán IP, DNS, Gateway
Chọn Quit trong màn hình tiếp theo.
* Sau khi gán IP, Gateway, DNS xong tiến hành khởi động dịch vụ mạng
#service network restart
Kiểm thử: Dùng lệnh ifconfig để kiểm tra địa chỉ vừa đánh cho card mạng
KHOA CÔNG NGHỆ THÔNG TIN Trang 148
Chương 3: Cấu hình mạng và chia sẻ tài nguyên trên Linux
#ifconfig eth0
3.1.1.3. Cấu hình card mạng bằng các tập tin
1.1.3.1. Cấu hình IP tĩnh cho Ubuntu Server
File cấu hình IP cho các card mạng của Ubuntu Server nằm tại
/etc/network/interfaces.
Nội dung ban đầu sẽ như sau
Để kiểm tra địa chỉ IP được gán cho card mạng có 2 cách:
- Trên Dashboard
- Sử dụng câu lệnh trên linux (ip a hoặc ifconfig)
Ví dụ ta muốn cấu hình địa chỉ IP tĩnh cho cả 2 card mạng, ta thực hiện sửa file
cấu hình như sau:
# This file describes the network interfaces
1
available on your system
# and how to activate them. For more
information, see interfaces(5).
# The loopback network interface
2 auto lo
3 iface lo inet loopback
4 auto eth0
5 iface eth0 inet static
6 address 10.5.55.136
7 netmask 255.255.255.0
8
9 auto eth1
10 iface eth1 inet static
11 address 103.56.158.174
12 netmask 255.255.255.0
13 gateway 103.56.158.1
Dòng 1: auto eth0 sẽ cấu hình cho interface eth0 khởi động cùng hệ thống
Dòng 2: iface eth0 inet static tạo 1 đoạn cấu hình tĩnh với tên là eth0 trên card
Ethernet của chúng ta. Các dòng tiếp theo là phần cấu hình IP cho interface:
address: địa chỉ chúng ta muốn đặt cho server
netmask: subnet mask của dải mạng chúng ta sử dụng
Phần cấu hình IP tĩnh cho interface eth1:
1 auto eth1
2 iface eth1 inet static
3 address 103.56.158.174
4 netmask 255.255.255.0
5 gateway 103.56.158.1
6 dns-nameservers 8.8.8.8
1 TYPE="Ethernet"
2 DEVICE="eth0"
3 ONBOOT="yes"
4 BOOTPROTO="dhcp"
5 NM_CONTROLLED="no"
Để đặt địa chỉ IP 10.20.0.13 subnetmask 255.255.255.0 cho card mạng eth0 ta sửa
file ifcfg-eth0 như sau
1 TYPE="Ethernet"
5 NM_CONTROLLED="no"
GATEWAY=<IP_gateway>
DNS1=<IP_DNS_Server>
DNS2=<IP_DNS_Server>
DNS1=8.8.8.8
Hoặc
1 DNS1=8.8.8.8
2 DNS2=8.8.4.4
2. Lệnh ping trong linux khác lệnh ping trong windows ở điểm nào? Muốn cho lệnh
ping www.zing.vn dừng lại ở với số lượng gói tin kiểm thử là 10 ta dùng lệnh ping
www.zing.vn -10, lệnh này chạy như thế nào? Tạo sao?
3. Muốn thêm default gateway cho card mạng etho ta dùng lệnh gì? Lệnh này có chung
đặc điển với lệnh gán ip bằng ifconfig hay không? Giải thích.
3.1.3.2. Phần thực hành
Xây dựng mô hình mạng như sau:
.2
.1
.3
CEN3 CEN1
CEN2
NFS Server
Giá trị của x là số máy + 100 (trong bài dùng máy 1 nên x=101)
1. Thiết lập IP cho máy Cen01 bằng lệnh ifconfig với IP cho card mạng eth0 là
192.168.101.1/24
2. Thêm alias cho card mạng thứ 2 (eth0:0) là 172.16.101.1/24
KHOA CÔNG NGHỆ THÔNG TIN Trang 156
Chương 3: Cấu hình mạng và chia sẻ tài nguyên trên Linux
3. Điều chỉnh GW cho card mạng eth0 hướng về 192.168.101.254. Kiểm tra lại IP vừa
mới gán cho 2 card mạng
4. Trên máy Cen02 đánh IP bằng lệnh Setup với thông tin như sau:
a. IP: 192.168.101.2/24
b. GW: 192.168.101.254
c. DNS: 192.168.101.99
5. Khởi động lại dịch vụ mạng và kiểm tra IP vừa mới gán
6. Từ máy 2: thực hiện ping để tìm đến 2 host Cen01 và Cen03
7. Tại máy Cen03 hãy thực hiện
a. Mở file cấu hình IP ifcfg-eth0 để cấu hình IP cho eth0: 192.168.101.3/24;
GW: 192.168.101.254;
b. Mở file cấu hình DNS (resolv) 192.168.101.99
c. Mở file cấu hình mạng (network) để thiết lập Ipv4 tĩnh
8. Khởi động lại dịch vụ mạng, ping qua máy Cen01 và Cen02 để kiểm tra.
9. Sao chép tập tin ifcfg-eth0 thành ifcfg-eth0:0, dùng trình soạn thảo cấu hình để tạo
ra alias cho card mạng eth0 với IP 172.16.101.3/24
10. Khởi động dịch vụ và tiến hành ping qua 172.16.101.1 để kiểm tra.
- NFS sử dụng RPC của Sun, do đó nó sử dụng portmap trên cổng 111
- NFS server được xây dựng thành hai thành phần chính là
rpc.nfsd: tiến trình NFS server
rpc.mountd: tiến trình quản lý các yêu cầu mount
Để NFS server có thể hoạt động được, ta cần khởi động hai tiến trình kể trên và
tiến trình portmap. NFS server sử dụng file cấu hình /etc/exports để lưu thông tin về
các thư mục chia sẻ và máy có quyền truy cập tới các thư mục đó. Ví dụ ta muốn chia
sẻ thư mục chủ /home cho máy node1, ta thêm dòng sau vào /etc/exports
/home node1(rw,no_root_squash)
Ở phần tên của host, ta có thể sử dụng địa chỉ IP hoặc sử dụng tên host đầy đủ.
Ngoài ra, ta cũng có thể sử dụng dạng rút gọn cho nhiều host trên cùng một dòng như
các ví dụ sau đây: *.site.com hay 172.16.0.0/12 hoặc 172.16.0.0/255.240.0.0.
Các tùy chọn phổ biến:
ro; chỉ đọc; rw: đọc và ghi
Theo mặc định, no_root_squash, thì root tại máy client cũng là root tại máy server,
root_squash cho phép máy chủ chạy NFS server coi root trên client như một người
dùng ngoài hệ thống (nobody), all_squash coi mọi người dùng trên máy client là một
người dùng ngoài hệ thông
Sau khi chỉnh sửa file exports xong, khởi động lại NFS và áp dụng cấu hình mới
như sau:
# /etc/init.d/nfs restart
KHOA CÔNG NGHỆ THÔNG TIN Trang 158
Chương 3: Cấu hình mạng và chia sẻ tài nguyên trên Linux
# exportfs
3.2.1.3. NFS client
NFS client mount thư mục trên NFS server vào một thư mục cục bộ bằng lệnh sau:
# mount server:/share/dir /mount/point -o option,option
Các tùy chọn gồm có:
- soft: theo mặc định, kernel sẽ khóa một tiến trình truy cập NFS server và đặt
nó vào trạng thái disk wait state (D) nếu NFS server bị lỗi. Với tùy chọn soft,
kernel sẽ thông báo lỗi tới tiến trình nếu NFS server không có hồi đáp sau một
khoảng thời gian được thiết lập bởi tham số timeout, ví dụ timeout=60
- hard: nếu NFS server không hồi đáp thì tiến trình truy cập sẽ ở trong trạng
thái disk wait state và chỉ bị ngắt nếu hệ thống file được mount với tùy chọn
intr
- async: mọi thay đổi được ghi vào NFS server bởi tiến trình nền (không đồng
bộ với tiến trình ghi)
- nolock: không chạy NFS lock daemon
- Thông thường, ta sửa file /etc/fstab để việc mount có thể được thực hiện tự
động bằng lênh mount. Trong ví dụ trên, giả sử tên của máy chủ là head, ta
thêm một dòng sau vào file /etc/fstab của máy node1 để node1 mount thư
mục /home trên máy chủ về thư mục /home nội bộ
- head:/home /home nfs defaults 0 0
Tiếp theo, chạy mount -a để mount các thư mục trong /etc/fstab và chạy df để
kiểm tra
# mount –a
# df -h
Trong kết quả của lệnh df, ta sẽ thấy một dòng tương tự như sau:
head:/home 111G 70G 36G 67% /home
Điều này chứng tỏ việc mount đã thành công.
3.2.1.4. Cấu hình NFS
Cấu hình NFS server: File dùng để cấu hình NFS là /etc/exports
/NFS 192.168.1.0/255.255.255.0(rw,sync,no_root_squash)
ro : Read only
rw : Read – write
Lưu ý: sau khi thay đổi file /etc/exports bạn phải restart daemon nfs hay dùng các lệnh
sau:
exportfs –r : Reload lại những thay đổi trong cấu hình cho NFS
- Do NFS cần mở một số port khi chạy như (111, 2049..) nên ta cần cấu hình firewall
mở các port này hay tắt firewall:
.3
CEN3 CEN1
CEN2
NFS Server
read only=yes
thì smbd không hiểu giá trị và phát sinh lỗi cấu hình. Thực chất giá trị read
only=yes chính là ; read only=no.
Tham số path xác định đường dẫn đến thư mục cần được chia sẻ trên server. Tham
số valid users=nampt xác định quyền hạn truy cập vào thư mục nampt - ở ví dụ này chỉ
có user nampt mới đọc được nội dung của thư mục đó.
3.2.2.3. Kiểm soát truy cập
– Chia sẻ file như thế nào:
Sau khi cấu hình phần global setting, chúng ta có thể tự tạo ra một thư mục chia sẻ
và giới hạn truy cập theo nhóm hoặc người dùng có trên hệ thống.
Ví dụ: Để tạo thư mục chia sẻ dungdd trên máy Linux, chúng ta làm như sau:
Thêm vào vùng Sharing Setting những dòng dưới đây:
[sv01]
comment= thu muc cua sv01
path=/home/sv01
valid users =sv01
browseable=yes
public=no
writeable=yes
Như vậy Samba sẽ tạo ra một thư mục chia sẻ dungdd trên máy chủ, do tham số
browseable=yes nên thư mục này sẽ được nhìn thấy khi người dùng mở Windows
Explorer, tuy nhiên do public=no và valid users =dungdd nên chỉ có user dungdd có thể
đăng nhập. Ngoài việc phân cấp theo user Samba cũng có thể thăng quyền truy cập cho
cả nhóm người dùng, với nhóm chúng ta sử dụng dấu @ trước tên nhóm.
Ví dụ:
KHOA CÔNG NGHỆ THÔNG TIN Trang 168
Chương 3: Cấu hình mạng và chia sẻ tài nguyên trên Linux
Valid users=dungdd,@admin
– Kiểm tra cấu hình vừa thiết lập:
Sau khi thiết lập file cấu hình chúng ta nên kiểm tra lại, Samba cung cấp 2 công
cụ là testparm và smbstatus. Để kiểm tra chính xác bạn phải đảm bảo máy trạm và máy
chủ phải nối được với nhau (Kiểm tra bằng lệnh ping).
3.2.2.3.1. Kiểm tra bằng công cụ Testparm:
Testparm là chương trình cho phép kiểm tra giá trị của thông số trong file cấu hình.
Cấu trúc của câu lệnh này là:
Testparm configfile [hostname hostIP]
Configfile là đường dẫn và tên file cấu hình, mặc định nó lấy file smb.conf cất
trong thư mục /etc/Samba/smb.conf (từ Redhat 7.0) và /etc/smb.conf (cho các phiên bản
trước đó).
Hostname và HostIP là hai thông số không nhất thiết phải có, nó hướng dẫn Samba
kiểm tra cả các dịch vụ đã liệt kê trong file smb.conf. trên máy xác định bởi Hostname
và HostIP.
Ví dụ:
# testparm /etc/Samba/smb.conf imail.vitti.edu.vn
172.16.200.2000
Load smb config files from /etc/Samba/smb.conf
Processing section “[homes]”
Processing section “[printers]”
Loaded services file OK.
Allow connection from imail.vitti.edu.vn (172.16.200.2000) to homes
Allow connection from imail.vitti.edu.vn (172.16.200.2000) to printers
b. Kiểm tra bằng công cụ smbstatus:
Smbtatus là chương trình thông báo các kết nối hiện tại, cấu trúc của câu lệnh này
như sau:
Smbstatus [-d][-p][-s config file]
Tham số configfile mặc định được gán là /etc/Samba/smb.conf. Tham số –d cho
ra kết quả đầy đủ.
– Chạy Samba server:
Samba server có hai tiến trình là smbd và nmbd. Tiến trình smbd cung cấp dịch vụ
chia sẻ file và dữ liệu, tiến trình nmbd cung cấp khả năng hỗ trợ NetBIOS name. Cũng
.2
.1
.3
WIN01 CEN1
CEN2
Cài đặt samba (TẠI DẤU NHẮC TERMINAL GÕ CÁC LỆNH SAU)
#rpm –ivh perl-Convert<tab>
#rpm –ivh samba-common <tab>
#rpm –ivh samba-3 <tab>
#rpm –ivh system-config-samba<tab>
Kiểm tra cấu hình file vừa tạo bằng lệnh #testparm
Chuyển hv1, hv2 thành user samba với passoftd mới 123abc bằng lệnh
#smbpasswd -a hv1, đánh vào passwd mới 123abc
Gán quyền truy cập 775 cho thư mục data và chuyển quyền cho nhóm hv. Gán
quyền 555 cho thư mục soft và chuyển quyền truy cập cho nhóm hv.
#chgrp hv /pub/data
#chmod 775 /pub/data
#chgrp hv /pub/soft
#chmod 555 /pub/soft
KHOA CÔNG NGHỆ THÔNG TIN Trang 175
Chương 3: Cấu hình mạng và chia sẻ tài nguyên trên Linux
Kiểm tra truy cập bằng lệnh: #smbclient -L 192.168.x.1
* Máy Windows 192.168.x.2: Start Run, gõ vào \\192.168.x.1, OK
– Nhấp đôi mở ra, nếu máy yêu cầu nhập username/passwd thì nhập vào bằng tài
khoản đã tạo ở trên hv1 hay hv2
– Mở các thư mục nhìn thấy trong máy linux<số máy>
* Mở thêm máy Cen2 192.168.x.3: kết nối vào \\192.168.x.1\data, bằng cách
dùng lệnh smb
- Tạo trong mnt thư mục pc (#mkdir /mnt/pc)
#mount //192.168.x.1/data /mnt/pc -o
username=hv2,passwd=123abc
#mount -t cifs -o username=hv2,password=123abc
//192.168.x.1/data /mnt/pc/
Kiểm tra dữ liệu trong các thư mục đã kết nối
#ls -l /mnt/pc
* Tóm lược chương:
Trong chương này trình bày những vấn đề liên quan đến cấu hình mạng và hai dịch
vụ mạng cơ bản trong Linux.
- Phần cấu hình mạng: chỉ ra những công việc cơ bản như phương pháp gán IP cho
card mạng, thay đổi các thông số card mạng, sử dụng các tiện ích để quản lý mạng trên
máy cá nhân như: ping, tracert, định tuyến (route),..
- Phần chia sẻ tài nguyên: nhằm khai thác ưu điểm của mạng là sử dụng tài nguyên
dùng chung, linux cung cấp hai phương thức chia sẻ tài nguyên cơ bản là NFS và Samba
đây là hai dịch vụ cho phép các máy chạy cùng loại hệ điều hành hoặc khác loại hệ điều
hành có thể truy cập được tài nguyên như tập tin hay máy in.
3.2.3. Câu hỏi cũng cố phần lý thuyết:
1. So sánh dịch vụ samba và dịch vụ NFS? Tại sao người ta nói rằng chỉ cần cài đặt và
cấu hình samba là đủ cho việc chia sẻ trên hệ thống hỗn hợn Windows, Linux.
2. Dùng samba làm domain có được hay không? Hãy nêu quy trình thay đổi những hạng
mục nào để biến máy Linux Centos thành một domain cho các máy Windows Client gia
nhập?
3. Hệ thống chia sẻ tập tin NFS không thể chia sẻ cho các IP cụ thể. Phát biểu này đúng
hay sai? Tại sao?
4. Thực hành 2 samba (máy Centos01 phải có sẵn dhcp hoặc tự gán IP tĩnh cho các
máy Client)
d. Thiết lập truy cập tự động trên máy Centos02, các máy Windows ánh xạ thành ổ đĩa
H cho các user và ổ đĩa P cho thư mục đã chia sẻ
5. Thực hành 3 nfs (máy Centos01 phải có sẵn dhcp hoặc tự gán IP tĩnh cho các máy
Client)
a. Kiểm tra NFS trên máy Centos01, nếu chưa có tiến hành cài đặt
b. Tạo cây thư mục (/data/[vmnet5, vmnet4]), copy các tập tin mẫu trong /etc sang
vmnet4 và vmnet5 (phải có sự khác biệt)
f. Dùng lệnh ls để kiểm tra 2 thư mục được mount vào nfs server