Giới thiệu
Trong lab này, bạn sẽ học cách sử dụng lệnh chroot
của Linux với các ví dụ thực tế. Lab này bao gồm việc tìm hiểu mục đích và các trường hợp sử dụng của chroot
, tạo môi trường chroot với Ubuntu 22.04, và quản lý các tiến trình và hệ thống tập tin trong môi trường chroot. Bạn sẽ khám phá cách chroot
có thể được sử dụng cho bảo mật, kiểm thử và phát triển phần mềm, bảo trì và phục hồi hệ thống, cũng như vai trò của nó trong các công nghệ containerization. Lab này cung cấp hướng dẫn từng bước để giúp bạn thành thạo trong việc sử dụng lệnh chroot
một cách hiệu quả.
Tìm hiểu Mục đích và Các trường hợp Sử dụng của chroot
Trong bước này, chúng ta sẽ khám phá mục đích và các trường hợp sử dụng của lệnh chroot
trong Linux. Lệnh chroot
được sử dụng để thay đổi thư mục gốc của một tiến trình và các tiến trình con của nó. Điều này cho phép bạn tạo một môi trường cô lập, được gọi là chroot jail, nơi tiến trình chỉ có thể truy cập các tập tin và tài nguyên trong thư mục gốc được chỉ định.
Các trường hợp sử dụng chính của chroot
bao gồm:
-
Bảo mật: Bằng cách cô lập một tiến trình hoặc ứng dụng trong một môi trường chroot, bạn có thể giới hạn quyền truy cập của nó vào các tập tin và tài nguyên hệ thống nhạy cảm, giảm tác động tiềm tàng của các lỗ hổng bảo mật hoặc các hoạt động độc hại.
-
Kiểm thử và phát triển phần mềm: Các nhà phát triển có thể sử dụng
chroot
để kiểm tra các ứng dụng trong một môi trường được kiểm soát, đảm bảo rằng phần mềm hoạt động như mong đợi mà không can thiệp vào hệ thống host. -
Bảo trì và phục hồi hệ thống:
chroot
có thể được sử dụng để truy cập và sửa chữa một hệ thống tập tin bị hỏng, chẳng hạn như khi hệ thống không khởi động đúng cách. Bằng cách khởi động từ một Live CD/USB và chroot vào hệ thống tập tin bị hỏng, bạn có thể thực hiện các tác vụ phục hồi khác nhau. -
Containerization: Lệnh
chroot
là một khối xây dựng cơ bản cho các công nghệ container, chẳng hạn như Docker, sử dụng nó để tạo các môi trường cô lập để chạy các ứng dụng.
Hãy bắt đầu bằng cách xác minh thư mục gốc hiện tại:
pwd
Ví dụ đầu ra:
/home/labex/project
Như bạn có thể thấy, thư mục gốc hiện tại là /home/labex/project
. Bây giờ, hãy thử thay đổi thư mục gốc bằng lệnh chroot
:
sudo chroot /
Điều này sẽ thay đổi thư mục gốc thành /
, tạo ra một môi trường gốc mới một cách hiệu quả. Bạn có thể xác minh điều này bằng cách chạy lại lệnh pwd
:
pwd
Ví dụ đầu ra:
/
Để thoát khỏi môi trường chroot, chỉ cần gõ exit
:
exit
Điều này sẽ đưa bạn trở lại thư mục gốc ban đầu.
Tạo Môi trường Chroot với Ubuntu 22.04
Trong bước này, chúng ta sẽ tạo một môi trường chroot bằng Ubuntu 22.04 làm hệ thống cơ sở. Điều này sẽ cho phép chúng ta khám phá các khả năng và hạn chế của môi trường chroot.
Đầu tiên, hãy tạo một thư mục để làm gốc của môi trường chroot của chúng ta:
sudo mkdir -p ~/project/chroot
Tiếp theo, chúng ta sẽ cài đặt các gói cần thiết để tạo môi trường chroot:
sudo apt-get update
sudo apt-get install -y debootstrap
Bây giờ, chúng ta có thể sử dụng lệnh debootstrap
để tạo môi trường chroot Ubuntu 22.04:
sudo debootstrap --variant=minbase --arch=amd64 jammy ~/project/chroot http://archive.ubuntu.com/ubuntu
Điều này sẽ tải xuống hệ thống cơ sở Ubuntu 22.04 tối thiểu và thiết lập nó trong thư mục ~/project/chroot
.
Khi quá trình hoàn tất, hãy nhập môi trường chroot:
sudo chroot ~/project/chroot
Bây giờ bạn sẽ thấy rằng dấu nhắc đã thay đổi, cho biết rằng bạn hiện đang ở trong môi trường chroot.
Để xác minh rằng bạn đang ở trong môi trường chroot, hãy chạy lệnh sau:
pwd
Đầu ra sẽ là:
/
Điều này xác nhận rằng thư mục gốc đã được thay đổi thành môi trường chroot.
Để thoát khỏi môi trường chroot, chỉ cần gõ exit
:
exit
Điều này sẽ đưa bạn trở lại thư mục gốc ban đầu.
Quản lý Tiến trình và Hệ thống Tập tin trong Môi trường Chroot
Trong bước này, chúng ta sẽ khám phá cách quản lý các tiến trình và hệ thống tập tin trong môi trường chroot mà chúng ta đã tạo ở bước trước.
Đầu tiên, hãy nhập môi trường chroot:
sudo chroot ~/project/chroot
Bây giờ, hãy thử chạy một lệnh đơn giản bên trong môi trường chroot:
ls -l /
Điều này sẽ liệt kê nội dung của thư mục gốc (/
) bên trong môi trường chroot.
Tiếp theo, hãy thử chạy một tiến trình tương tác với hệ thống tập tin. Chúng ta sẽ tạo một tập tin mới bên trong môi trường chroot:
touch /test_file.txt
Để xác minh rằng tập tin đã được tạo, hãy chạy:
ls -l /
Bạn sẽ thấy tập tin test_file.txt
được liệt kê.
Bây giờ, hãy thử chạy một tiến trình tương tác với thế giới bên ngoài. Chúng ta sẽ cố gắng ping một host từ xa:
ping -c 3 google.com
Bạn có thể nhận thấy rằng lệnh ping không thành công, vì môi trường chroot bị cô lập khỏi mạng bên ngoài chroot.
Để thoát khỏi môi trường chroot, chỉ cần gõ exit
:
exit
Điều này sẽ đưa bạn trở lại thư mục gốc ban đầu.
Tóm tắt
Trong lab này, chúng ta đã khám phá mục đích và các trường hợp sử dụng của lệnh chroot
trong Linux. Chúng ta đã học được rằng chroot
được sử dụng để thay đổi thư mục gốc của một tiến trình và các tiến trình con của nó, cho phép tạo ra một môi trường cô lập được gọi là chroot jail. Điều này đặc biệt hữu ích cho bảo mật, kiểm thử và phát triển phần mềm, bảo trì và phục hồi hệ thống, cũng như containerization. Sau đó, chúng ta đã chứng minh cách tạo một môi trường chroot bằng Ubuntu 22.04 và quản lý các tiến trình và hệ thống tập tin bên trong nó.
Tiếp theo, chúng ta sẽ tìm hiểu cách quản lý các tiến trình và hệ thống tập tin trong môi trường chroot, từ đó mở rộng hơn nữa sự hiểu biết của chúng ta về công cụ Linux mạnh mẽ này.