Bất kể bạn sử dụng hệ điều hành nào, nếu bạn không phải là người chuyên về giám định máy tính hoặc là người chuyên nghiệp/người đam mê nói chung, bạn có thể sẽ ngạc nhiên khi biết rằng khi bạn xóa một tệp, nội dung tệp thực tế không bị xóa khỏi ổ cứng ngay lập tức.
Tuy nhiên, có những công cụ đảm bảo dữ liệu không thể khôi phục được. Trong Linux, có một tiện ích dòng lệnh - được gọi là shred - được xây dựng cho mục đích này.
Trong hướng dẫn này, chúng ta sẽ thảo luận về shred bằng một số ví dụ dễ hiểu. Nhưng trước khi thực hiện điều đó, cần lưu ý rằng tất cả các ví dụ trong bài viết này đã được thử nghiệm trên máy Ubuntu 18.04 LTS và trên Debian 10, nhưng chúng cũng có thể hoạt động trên các bản phân phối Linux khác như CentOS, Open SuSE, Fedora và Gentoo.
Và đây là cách trang hướng dẫn của công cụ giải thích về lệnh này:
Sau đây là một số ví dụ theo kiểu Hỏi & Đáp có thể giúp bạn hiểu rõ hơn về cách lệnh shred hoạt động.
Ví dụ, tôi đã sử dụng nó trên file1.txt:
Và ảnh chụp màn hình sau đây cho thấy rõ ràng nội dung của tệp đã bị ghi đè bởi công cụ này.
Ví dụ, để đảm bảo công cụ ghi đè tệp 'file1.txt' 10 lần, hãy chạy lệnh sau:
Ví dụ, tôi đã thử chạy lệnh shred theo cách sau:
Và có thể xác nhận rằng tệp thực sự đã bị xóa.
Ví dụ, tệp của tôi chứa văn bản sau:
Và tôi muốn shred chỉ ghi đè 10 byte. Vì vậy, đối với điều này, tôi đã sử dụng shred theo cách sau:
Và đây là cách hoạt động ảnh hưởng đến nội dung tệp:
Vì vậy, bạn có thể thấy chỉ 10 byte đầu tiên bị ghi đè bằng rác bởi lệnh shred.
Sau đây là cách trang hướng dẫn giải thích tùy chọn 'remove':
Tuy nhiên, có những công cụ đảm bảo dữ liệu không thể khôi phục được. Trong Linux, có một tiện ích dòng lệnh - được gọi là shred - được xây dựng cho mục đích này.
Trong hướng dẫn này, chúng ta sẽ thảo luận về shred bằng một số ví dụ dễ hiểu. Nhưng trước khi thực hiện điều đó, cần lưu ý rằng tất cả các ví dụ trong bài viết này đã được thử nghiệm trên máy Ubuntu 18.04 LTS và trên Debian 10, nhưng chúng cũng có thể hoạt động trên các bản phân phối Linux khác như CentOS, Open SuSE, Fedora và Gentoo.
Lệnh shred của Linux
Lệnh shred ghi đè lên tệp để khiến nội dung gốc không thể khôi phục được. Sau đây là cú pháp của lệnh:
Mã:
shred [OPTION]... FILE...
Mã:
shred - ghi đè lên một tệp để ẩn nội dung của tệp đó và tùy chọn xóa tệp đó
Ghi đè nhiều lần vào FILE đã chỉ định để khiến ngay cả
phần cứng rất tốn kém cũng khó khôi phục dữ liệu hơn.
Câu hỏi 1. Lệnh shred hoạt động như thế nào?
Nếu bạn chỉ muốn sử dụng nó để ghi đè lên một tệp, thì tất cả những gì bạn phải làm là thực thi 'shred' với tên tệp làm đầu vào.
Mã:
shred [tên tệp]
Mã:
shred file1.txt
Câu hỏi 2. Làm thế nào để thay đổi số lần tệp bị ghi đè?
Theo mặc định, shred ghi đè lên một tệp 3 lần. Tuy nhiên, nếu muốn, bạn có thể thay đổi số này bằng tùy chọn dòng lệnh -n.Ví dụ, để đảm bảo công cụ ghi đè tệp 'file1.txt' 10 lần, hãy chạy lệnh sau:
Mã:
shred -n 10 file1.txt
Câu hỏi 3. Làm thế nào để đảm bảo Shred cũng xóa tệp?
Nếu bạn muốn shred không chỉ ghi đè mà còn xóa tệp, hãy sử dụng tùy chọn dòng lệnh -u.Ví dụ, tôi đã thử chạy lệnh shred theo cách sau:
Mã:
shred -u file1.txt
Câu hỏi 4. Làm thế nào để ghi đè có chọn lọc bằng shred?
Giả sử yêu cầu chỉ ghi đè một số byte nhất định từ tệp. Điều này có thể được thực hiện bằng tùy chọn dòng lệnh -s, yêu cầu bạn phải truyền số byte làm đầu vào.Ví dụ, tệp của tôi chứa văn bản sau:
Mã:
Howtoforge
FAQForge
Linux
Mã:
shred -s10 file1.txt
Mã:
?uTw?????
FAQForge
Linux
Câu hỏi 5. Làm thế nào để cho shred biết cách xóa?
Chúng ta đã thảo luận về tùy chọn dòng lệnh -u yêu cầu shred xóa tệp ngoài việc ghi đè tệp đó. Nhưng có một tùy chọn khác - được gọi là 'remove' - cho phép bạn yêu cầu shred biết cách bạn muốn xóa tệp.Sau đây là cách trang hướng dẫn giải thích tùy chọn 'remove':
Mã:
--remove[=HOW]
giống như -u nhưng cung cấp quyền kiểm soát CÁCH xóa
Xóa TỆP(s) nếu --remove (-u) được chỉ định. Mặc định là không
xóa các tệp vì thường thao tác trên các tệp thiết bị như
/dev/hda và những tệp đó thường không nên bị xóa. Tham số
HOW tùy chọn chỉ ra cách xóa mục nhập thư mục: 'unlink' =>
sử dụng lệnh gọi unlink chuẩn. 'wipe' => trước tiên cũng làm tối nghĩa các byte trong
tên. 'wipesync' => cũng đồng bộ từng byte được che giấu vào đĩa.
Chế độ mặc định là 'wipesync', nhưng lưu ý rằng nó có thể tốn kém.