Tôi đã chạy một lệnh trong Linux mà bạn không bao giờ nên chạy

Tác giả T-X, T.M.Hai 19, 2025, 09:00:08 CHIỀU

« Chủ đề trước - Chủ đề tiếp »

0 Thành viên và 3 Khách đang xem chủ đề.

Đây là những gì đã xảy ra. Phá hủy Linux vì mục đích khoa học!

Trong tất cả các lệnh Linux, rm nổi tiếng là nguy hiểm nhất. Chỉ cần một lệnh rm bị gõ sai khi dùng quyền root, bạn có thể dễ dàng xóa sạch toàn bộ hệ thống. Tôi biết không nên làm vậy, nhưng tôi vẫn cố tình chạy lệnh đó. Sau đây là lý do.


1. Tại sao phải chạy lệnh rm -rf?

Việc này chỉ là một thử nghiệm nhỏ. Tôi đã sử dụng Linux đủ lâu để biết rằng không nên chạy các lệnh nguy hiểm như rm mà không có kế hoạch. Tôi muốn xem điều gì sẽ xảy ra trên một hệ thống Linux hiện đại nếu tôi thử điều này. Tôi sẽ có một mức độ an toàn nhất định vì tôi chỉ chạy nó trong một máy ảo Linux dùng một lần trong VirtualBox. Tôi sẽ không thử làm điều tương tự trên máy tính mà tôi dùng hàng ngày.

Tôi cũng muốn xem mình có thể phục hồi tốt đến mức nào nếu điều tồi tệ nhất xảy ra với một máy Linux. Tôi sẽ tận dụng khả năng của VirtualBox để sao chép máy ảo và khôi phục lại các ảnh chụp nhanh trước đó.

Trên một hệ thống thông thường, điều này có thể bao gồm việc khôi phục từ các bản sao lưu.

2. Hệ thống Linux mà tôi đang phá hủy

Như tôi đã đề cập trước đó, tôi sẽ chạy lệnh này trên một máy ảo. Đây là một bản cài đặt Debian hoàn toàn bình thường được tạo trong VirtualBox, bản phân phối mà tôi lựa chọn. Nó hoàn toàn nguyên bản, đã trải qua quy trình cài đặt Debian tiêu chuẩn. Đó là một máy tính lõi kép với 4GB RAM. Tôi không nghĩ một hệ thống mà tôi định xóa mọi thứ lại cần nhiều sức mạnh xử lý đến vậy.

Phần mềm này cũng khá nhẹ. Tôi đã chọn môi trường desktop Xfce quen thuộc của mình, cùng với các phần mềm desktop tiêu chuẩn của Debian.

3. Điều gì đã xảy ra khi tôi chạy lệnh đó?

Mặc dù đang sử dụng máy ảo, tôi vẫn cảm thấy hơi lo lắng về những gì mình sắp làm. Tôi hít một hơi thật sâu, mở cửa sổ dòng lệnh và gõ ra lệnh trông có vẻ vô hại này:

Mã nguồn [Chọn]
sudo rm -rf /
Đừng làm vậy.

Lệnh này có nghĩa là sẽ xóa mọi tập tin bắt đầu từ thư mục gốc, hay "/" (không nên nhầm lẫn với người dùng root), xóa đệ quy qua mọi thư mục con và "buộc" xóa, nghĩa là tiến hành mà không cần bất kỳ lời nhắc nào, bất kể tập tin có tồn tại hay không. Nói tóm lại, lệnh này sẽ xóa mọi tập tin trong hệ thống Linux đã cài đặt.

Tôi gõ đoạn mã này và nhấn Enter. Tôi đã nghĩ rằng hệ điều hành Linux sẽ bị phá hủy hoàn toàn. Thay vào đó, tôi chỉ nhận được một thông báo lỗi đơn giản:

Mã nguồn [Chọn]
rm: it is dangerous to operate recursively on '/'
rm: use --no-preserve-root to override this failsafe


Có vẻ như các nhà phát triển phiên bản GNU cuối cùng cũng đã làm được điều gì đó để khắc phục hành vi nổi tiếng là không an toàn của lệnh rm, ít nhất là khi chạy nó trên thư mục gốc.

Rào cản duy nhất giữa tôi và sự hủy diệt hoàn toàn Linux chỉ là một tùy chọn dòng lệnh. Tôi giả vờ như mình đủ liều lĩnh để tiếp tục bằng cách thêm tùy chọn đó:

Mã nguồn [Chọn]
sudo rm -rf / --no-preserve-root
Điều này có nghĩa là lệnh rm giờ đây sẽ xóa các tệp trong thư mục gốc.

Thật sự, đừng làm điều này.

4. Hệ thống đã gặp sự cố gì vậy?

Tôi đã mong đợi một sự phá hủy Linux ngoạn mục hơn. Thay vào đó, tôi nhận được một thông báo lỗi trên màn hình nền, và màn hình chuyển sang màu đen ngoại trừ con trỏ nhấp nháy. Tôi đã mong đợi môi trường hiện tại sẽ vẫn còn trong bộ nhớ, bao gồm cả Xfce và shell. Khi tôi cố tình làm điều này nhiều năm trước đây khi chuyển một máy sang bản phân phối khác trong những ngày đầu sử dụng Linux, đó là những gì tôi nhớ đã xảy ra.


Tôi đã thử chuyển đổi giữa các cửa sổ terminal ảo để xem có thể đăng nhập được không, nhưng khi tôi nhấn phím Alt và các phím chức năng khác, không có gì xảy ra. Tôi không hoảng sợ, vì tôi đã dự đoán hệ thống sẽ không thể sử dụng được nữa, vả lại tôi cũng chỉ đang ở trong một máy ảo. Tôi không hoảng sợ. Tôi chỉ đơn giản là tắt máy.

5. Tôi có thể hồi phục được không?

Tôi muốn thử nghiệm chiến lược phục hồi mà mình đã nghĩ ra. Đây rõ ràng là một chiến lược đơn giản. Tôi chỉ sử dụng chức năng chụp ảnh nhanh của VirtualBox. Trước khi bắt đầu nỗ lực phá hủy hoàn toàn hệ thống Linux, tôi đã tạo một bản sao chụp nhanh trạng thái của máy ảo. Tôi muốn xem liệu mình có thể khôi phục lại được không. Hơn nữa, tôi chỉ đang phá hủy một bản sao của môi trường, vì vậy tôi sẽ không mất gì nếu không thể khôi phục được.


Menu tắt máy khi tôi tắt máy ảo đã có sẵn một tùy chọn hữu ích là khôi phục về ảnh chụp nhanh trước đó, và tôi đã chọn tùy chọn đó. Máy ảo khởi động lại vào ảnh chụp nhanh mà tôi đã tạo, và tôi đã trở lại màn hình nền Debian Xfce như trước, như thể chưa có chuyện gì xảy ra.

6. Những bài học từ thí nghiệm của tôi

Toàn bộ thí nghiệm phá hoại hệ điều hành Linux này cho thấy lý do tại sao Linux lại được giới lập trình viên và những người làm kỹ thuật ưa chuộng đến vậy. Nó không đặt ra nhiều rào cản giữa bạn và những gì bạn muốn làm, ngay cả khi có nguy cơ gây ra hậu quả thảm khốc nếu bạn không cẩn thận, chẳng hạn như xóa tất cả các tệp của mình. Linux thừa hưởng rất nhiều ý tưởng từ Unix, và điều đó bao gồm cả việc "được tạo ra bởi lập trình viên, dành cho lập trình viên". Bài học quan trọng nhất là bạn cần phải cẩn thận trước khi nhấn Enter khi gõ lệnh, đặc biệt khi bạn là người dùng root và đang chạy các lệnh có khả năng gây hại như lệnh rm.

Tập phim này cũng cho thấy bạn có thể phục hồi nếu có chiến lược đúng đắn. Trên một hệ thống thực tế, chẳng hạn như một máy chủ quan trọng, tôi sẽ triển khai một chiến lược sao lưu thực sự. Khả năng khôi phục từ các bản sao lưu cho thấy bạn có thể phục hồi sau những sự cố như thế này nếu bạn đã có kế hoạch từ trước. Nó giống như một hợp đồng bảo hiểm: bạn hy vọng mình sẽ không bao giờ cần đến nó, nhưng bạn sẽ rất vui vì đã có nó nếu điều tồi tệ nhất xảy ra.