
Thực hành tổng hợp Linux Essentials: dữ liệu, script và quyền
Thực hành Linux với ticket giả lập: tạo script đếm, kiểm tra lỗi, giới hạn dữ liệu, phục hồi TAR và xác minh báo cáo HTTP loopback bằng so sánh byte.

Chuẩn bị lab Linux bằng máy ảo: chọn kiến trúc, xác minh bộ cài, giới hạn chia sẻ, tạo dữ liệu riêng và phân biệt snapshot với sao lưu độc lập.
Bạn cần một nơi để thử lệnh mà không đưa tài liệu công việc, cấu hình mạng hoặc tài khoản thật vào bài học. Với Linux Essentials, lựa chọn chính của bộ bài là một máy ảo Ubuntu 26.04 LTS và tài khoản thường. Bạn có thể quan sát quá trình khởi động, dịch vụ và đĩa của guest mà không thay thế hệ điều hành đang dùng trên máy host.
Đây là cấu hình học tập đề xuất, không phải bản ghi một lần cài VM đã được thực hiện trên máy của bạn. Những ví dụ shell và đường dẫn trong bộ mẫu đã được kiểm tra riêng trong container Ubuntu 26.04.1 LTS ARM64, Bash 5.3.9; kiểm thử đó không chứng minh giao diện trình cài đặt, snapshot hoặc systemd trên một VM cụ thể đã đạt. Bài này hướng dẫn bạn tự tạo và lưu bằng chứng kiểm tra đúng môi trường của mình.
Đầu ra cần đạt: biết host và guest là máy nào, xác định phiên bản Linux, tạo được vùng dữ liệu lab và có cách phục hồi. Không dùng máy chủ đang chạy dịch vụ thật làm môi trường thử. Nếu máy tính thuộc tổ chức, kiểm tra quyền cài phần mềm ảo hóa với IT trước khi tiếp tục.
Host là máy chạy công cụ ảo hóa; guest là hệ điều hành trong máy ảo. Đĩa ảo thường được lưu thành một hoặc nhiều tệp trên host. Trình cài đặt guest nhìn thấy đĩa ảo như một thiết bị lưu trữ riêng, nhưng các tính năng chia sẻ thư mục, USB passthrough và chuyển tiếp cổng có thể nối hai môi trường với nhau. Vì vậy, “đang trong VM” chưa đồng nghĩa với cô lập tuyệt đối.
Trên máy Intel hoặc AMD, chọn ảnh amd64/x86-64 tương ứng. Trên Apple Silicon hoặc host ARM khác, dùng ảnh arm64 và công cụ hỗ trợ guest ARM. Giả lập kiến trúc khác có thể chạy chậm hoặc có giới hạn; nó không phải yêu cầu của lộ trình. Kiểm tra tài liệu của công cụ ảo hóa bạn đã chọn thay vì áp dụng một menu cài đặt cho mọi nền tảng.
Đối với bài dòng lệnh, Ubuntu Server là đủ và nhẹ hơn môi trường desktop đầy đủ. Để quan sát ứng dụng đồ họa, dùng Desktop nếu host còn tài nguyên. Có thể bắt đầu Server với 2 vCPU, 4 GB RAM và 25 GB đĩa động như cấu hình lab tham khảo; đây không phải tuyên bố cấu hình tối thiểu chính thức. Chừa RAM và dung lượng cho host, kể cả khi đĩa động chưa chiếm hết kích thước khai báo.
Lấy ISO hoặc ảnh cài đặt từ trang phát hành Ubuntu, chọn đúng dòng 26.04 LTS và kiến trúc được cung cấp. Nếu biến thể hoặc kiến trúc bạn cần nằm ở kho khác của Canonical, đi theo liên kết chính thức của sản phẩm. Không dùng tệp ISO từ một liên kết quảng cáo hoặc nguồn không rõ chỉ vì tên tệp giống nhau.
So sánh checksum SHA-256 của tệp tải về với bản công bố chính thức. Checksum giúp phát hiện nội dung khác nhau; nó không tự chứng minh nguồn đáng tin nếu cả ISO và checksum đều lấy từ một nơi giả mạo. Khi cần xác minh nguồn phát hành, làm theo hướng dẫn xác minh ISO của Ubuntu. Ghi tên tệp và checksum vào ghi chú lab.
Trong VM mới, chỉ gắn đĩa ảo dành cho học tập. Khi trình cài đặt đề nghị xóa đĩa, kiểm tra dung lượng và tên thiết bị trong guest. Lựa chọn xóa đĩa làm mất dữ liệu trên thiết bị được chọn; nếu công cụ đang chuyển tiếp ổ vật lý, hậu quả có thể vượt khỏi lab. Dừng nếu bạn không xác định được đĩa đích. Không dùng bài này để cài dual boot trên máy làm việc.

Đặt mạng VM ở NAT cho chặng đầu. Guest thường có thể ra mạng qua host, nhưng khả năng host hoặc máy khác đi vào guest còn tùy triển khai NAT và chuyển tiếp cổng. NAT không thay thế firewall và không làm nội dung tải từ Internet trở nên an toàn. Chưa bật port forwarding vì các bài đầu chưa cần dịch vụ từ ngoài truy cập vào.
Để shared folders, clipboard hai chiều và USB passthrough ở trạng thái tắt nếu chưa cần. Điều đó giảm khả năng thao tác nhầm lên dữ liệu host. Khi phải sao chép tệp bài tập, dùng thư mục chỉ chứa dữ liệu giả lập và hiểu quyền ghi của guest. Không gắn thư mục chứa tài liệu khách hàng, khóa SSH hoặc kho mã công việc vào VM học tập.
Tạo một tài khoản thường trong guest. Mật khẩu dùng cho lab phải khác mật khẩu công việc. Với lệnh chỉ đọc hoặc tạo dữ liệu trong home, không cần sudo. Chỉ nâng quyền tại bước được giải thích rõ. Nếu một hướng dẫn khiến bạn phải thêm sudo trước mọi dòng, hãy kiểm tra đường dẫn và quyền sở hữu trước khi tiếp tục.
Mở terminal trong guest và chạy các lệnh chỉ đọc sau. Không sao chép dấu nhắc $ hoặc # nếu tài liệu có hiển thị chúng. Các khối lệnh trong bộ bài không chứa dấu nhắc để bạn dễ sao chép.
cat /etc/os-release
uname -m
uname -r
id
pwd
/etc/os-release cho biết bản phân phối và phiên bản phát hành. uname -m cho biết kiến trúc kernel đang thấy; uname -r cho biết phiên bản kernel. id chỉ ra danh tính và nhóm; pwd in thư mục làm việc. Những giá trị này có thể thay đổi theo image, cập nhật và tài khoản. Không cần ép đầu ra của bạn giống từng ký tự một ví dụ trên Internet.
Kiểm tra Bash bằng cách mở một phiên bash nếu nó có sẵn, rồi dùng printf để xem phiên bản shell. Biến SHELL thường mô tả login shell, không bảo đảm đó là shell đang thực thi ở thời điểm hiện tại. Nếu đang dùng zsh trên host, hãy xác nhận đã chuyển sang guest trước khi làm bài Bash.
bash
printf '%s\n' "$BASH_VERSION"
Nếu bash không được tìm thấy trong image tối giản, đó là khác biệt môi trường cần ghi lại. Đừng giả định /bin/sh là Bash vì nhiều bản phân phối dùng shell khác cho đường dẫn đó. Các khái niệm portable sẽ được phân biệt với tính năng riêng của Bash trong bài tương ứng.
Chọn một đường dẫn chưa tồn tại để tránh trộn dữ liệu bài cũ. Những lệnh sau chỉ tạo thư mục và một tệp ghi chú dưới home của tài khoản hiện tại. Nếu lệnh kiểm tra báo thư mục đã có, hãy chọn tên khác thay vì ghi đè nội dung cũ.
lab_root="$HOME/lpi-lab-20261023"
if [ -e "$lab_root" ]; then
printf '%s\n' 'Đường dẫn đã tồn tại; chọn tên lab khác.'
else
mkdir -p -- "$lab_root/notes" "$lab_root/data"
printf '%s\n' 'Dữ liệu học tập tự tạo, không chứa bí mật.' > "$lab_root/notes/README.txt"
fi
ls -ld -- "$lab_root" "$lab_root/notes" "$lab_root/data"
Lệnh printf với dấu > ghi nội dung vào tệp mới trong nhánh else. Trong cách dùng nói chung, > có thể cắt ngắn tệp đang tồn tại; kiểm tra đường dẫn trước khi tái sử dụng mẫu đó. Bài không yêu cầu xóa lab sau khi tạo. Giữ dữ liệu để có thể đối chiếu các buổi học sau.

Sau khi cài đặt, cập nhật hệ thống theo quy trình của bản phân phối và khởi động lại nếu được yêu cầu. Việc cập nhật sẽ tải gói, dùng dung lượng và có thể đổi kernel hoặc dịch vụ. Thực hiện trong VM mới, không dùng hướng dẫn này để nâng cấp máy chủ đang phục vụ người dùng. Tài liệu quản lý gói Ubuntu giải thích sự khác nhau giữa cập nhật danh sách gói và cài các bản nâng cấp.
Khi guest đã ổn định, tắt guest theo quy trình của hệ điều hành rồi tạo snapshot mang tên dễ nhận biết. Khả năng snapshot và nội dung được lưu phụ thuộc công cụ: đĩa, bộ nhớ và thiết bị chia sẻ không nhất thiết được phục hồi cùng nhau. Kiểm tra tài liệu sản phẩm và ghi lại trạng thái guest tại thời điểm tạo.
Khôi phục snapshot có thể loại bỏ thay đổi và tệp được tạo sau snapshot. Xuất ghi chú cần giữ ra nơi sao lưu riêng trước khi revert. Snapshot nằm trên cùng ổ host không phải bản sao lưu độc lập trước hỏng ổ hoặc mất máy. Nếu lưu bài tập quan trọng, giữ thêm một bản ngoài VM và kiểm tra đọc lại được.
Bạn đạt bài khi có năm bằng chứng: tên/kiến trúc bộ cài; phiên bản guest; tài khoản thường; hai thư mục notes và data; phương án phục hồi đã được ghi rõ. Nếu công cụ hỗ trợ, thử tạo một tệp đánh dấu vô hại, phục hồi snapshot và quan sát tệp đó có còn không. Chỉ thử sau khi đã sao lưu phần cần giữ; không suy ra mọi dữ liệu ngoài đĩa guest cũng đã quay lại.
Nếu không có mạng, kiểm tra adapter VM và cấu hình NAT trước khi thay DNS hoặc tắt firewall. Nếu terminal báo thiếu lệnh, xác định image đang dùng. Nếu guest không khởi động, kiểm tra kiến trúc, bộ cài và tài nguyên; không xóa VM đang chứa ghi chú trước khi xuất dữ liệu cần thiết.
Tự kiểm tra: Snapshot có cứu được khi ổ host hỏng không? Không thể coi đó là bảo đảm. uname -r có xác định phiên bản Ubuntu không? Không, nó cho biết kernel. Vì sao dùng tài khoản thường? Để lỗi trong bài tập không dễ trở thành thay đổi hệ thống có quyền cao. Bước tiếp theo là đọc bài về bản phân phối Linux trước khi thực hành shell.

Thực hành Linux với ticket giả lập: tạo script đếm, kiểm tra lỗi, giới hạn dữ liệu, phục hồi TAR và xác minh báo cáo HTTP loopback bằng so sánh byte.

Hiểu thư mục tạm và tệp đặc biệt Linux; thử mktemp, sticky bit, hard link và symlink, kiểm tra đích sau di chuyển và phân biệt liên kết với backup.

Đọc quyền tệp Linux, owner và group; thử chmod, chown, search thư mục và umask bằng tài khoản không root, phân biệt ghi nội dung với xóa tên tệp.

Tạo người dùng Linux và nhóm trong lab riêng; kiểm tra home, skeleton, nhóm bổ sung, khóa mật khẩu và phạm vi xóa tài khoản trước khi áp dụng thực tế.