Khi bạn xóa một tệp trên máy tính của mình, hệ thống sẽ dọn các khối trong bộ nhớ của bạn bằng cách xóa tham chiếu (reference) đến tệp. Tệp không biến mất đột ngột và vẫn có thể truy cập được bằng phần mềm nâng cao.
Bất kỳ ai có công cụ khôi phục tệp đều có thể trích xuất các tệp đã xóa đó khỏi bộ nhớ của bạn và xem nội dung của chúng. Nhưng nếu bạn không muốn điều này xảy ra thì sao? Và liệu có cách nào để xóa các tệp trên Linux để không ai có thể khôi phục chúng?
Tiện ích shred có thể giúp bạn. Bài viết này sẽ thảo luận chi tiết về lệnh shred, những hạn chế của nó và cách sử dụng nó để xóa các tệp trên Linux một cách an toàn.
Shred là gì và nó hoạt động như thế nào?
Shred là một tiện ích dòng lệnh ghi đè nội dung của một tệp nhiều lần với dữ liệu ngẫu nhiên để làm cho nó không thể khôi phục được. Nó cũng cho phép bạn xóa tệp sau khi ghi đè dữ liệu của nó.
Bạn có thể thắc mắc “Tại sao lại cần ghi đè lên nội dung tệp?”. Lấy một ví dụ, bạn cần phải ẩn hoặc “xóa” nội dung được viết trên một tờ giấy. Bạn có thể vò nát nó và ném vào thùng rác. Nhưng bất kỳ ai cũng có thể lấy tờ giấy đó ra, vuốt phẳng phiu và đọc nội dung trên đó.
Mặt khác, máy hủy giấy sẽ cắt tờ giấy thành các dải hoặc mảnh nhỏ, khiến cho hầu như không ai có thể sắp xếp chúng lại và xem nội dung trên tài liệu.
Đây chính là cách hoạt động của lệnh shred trong Linux. Nó ghi đè nội dung của một tệp nhiều lần bằng các chuỗi số 0, khiến bất kỳ ai cũng không thể xem nội dung gốc. Và sau đó, nó có thể xóa tệp khỏi bộ nhớ hệ thống một cách an toàn nếu bạn muốn.
Khi nào không nên sử dụng shred?
Lưu ý rằng shred không hoạt động hiệu quả trong mọi tình huống. Tiện ích này không hiệu quả khi được sử dụng trên một số hệ thống tệp nhất định:
- Hệ thống tệp có cấu trúc nhật ký (log-structured hoặc journaled) (ext3, XFS và JFS).
- Hệ thống tệp dựa trên RAID.
- Hệ thống tệp lưu trữ snapshot (ảnh chụp nhanh).
- Hệ thống tệp lưu trữ bộ nhớ cache.
- Hệ thống tệp nén.
Lệnh không hoạt động với ext3 chỉ khi nó ở chế độ journal. Tuy nhiên, trong chế độ data=writeback và data=ordered, công cụ này vẫn có thể hoạt động tốt.
Ngoài ra, bạn không nên sử dụng tiện ích shred trên SSD vì quá trình xóa và ghi bổ sung có thể làm hỏng bộ nhớ của bạn.
Cách sử dụng lệnh shred
Với shred, bạn có thể chọn ghi đè và xóa tệp hoặc chỉ cần ghi đè tệp mà không xóa.
Cú pháp cơ bản
Cú pháp cơ bản của lệnh là:
shred options filename
… trong đó options là các cờ (flag) khác nhau được sử dụng để gọi các phương thức của lệnh và filename là đường dẫn tuyệt đối hoặc tương đối đến tệp mà bạn muốn xóa.
Xóa tệp vĩnh viễn
Để xóa vĩnh viễn một tệp bằng cách sử dụng shred, hãy sử dụng cờ -uvz với lệnh mặc định.
- u: Xóa tệp khỏi bộ nhớ
- v: Hiển thị đầu ra ở chế độ chi tiết (verbose mode)
- z: Ghi đè tệp bằng các số 0
shred -uvz textfile.txt
Theo mặc định, shred ghi đè tệp bốn lần. Trong ba lần đầu tiên, nó ghi đè nội dung tệp bằng dữ liệu ngẫu nhiên. Trong lần cuối cùng, do cờ -z , nó ghi đè dữ liệu bằng các số 0. Shred cũng ghi đè inode để loại bỏ bất kỳ siêu dữ liệu nào được liên kết với tệp.
Đầu ra:
Ghi đè tệp bằng số 0
Để chỉ cần ghi đè tệp bằng các số 0 mà không xóa tệp đó khỏi hệ thống của bạn, hãy xóa cờ -u khỏi lệnh trước đó.
shred -vz textfile.txt
Đầu ra:
Đặt số lần ghi đè
Như đã đề cập ở trên, shred ghi đè dữ liệu trong tệp bốn lần. Nếu bạn muốn chỉ định một số lần ghi đè cụ thể, bạn có thể làm như vậy bằng cách sử dụng cờ -n hoặc –iterations.
Tuy nhiên, lưu ý rằng shred sẽ luôn thêm một lần nữa vào số bạn chỉ định. Do đó, để ghi đè tệp sáu lần, hãy gõ số 5 vào lệnh:
shred -uvz -n 5 textfile.txt
shred -uvz --iterations 5 textfile.txt
Ghi đè các tệp ba lần là quá đủ để đảm bảo rằng không ai có thể khôi phục dữ liệu. Ghi đè nhiều lần hơn chỉ đơn giản là gây mất thời gian hơn mà không có bất kỳ hiệu quả đáng kể nào.
Xóa nhiều tệp bằng cách sử dụng shred
Để xóa nhiều tệp, chỉ cần gõ tên của các tệp được phân tách bằng ký tự Dấu cách.
shred -uvz file1.txt file2.txt file3.txt
Nếu bạn có một thư mục chứa các loại tệp tương tự, bạn có thể sử dụng các ký tự đại diện như dấu hoa thị (*) để xóa hoặc ghi đè tệp. Ví dụ: để xóa tất cả các tệp TXT trong thư mục làm việc hiện tại của bạn:
shred -uvz *.txt
“shed” một phần của tệp
Bạn cũng có thể sử dụng shred để làm cho một tệp bị hỏng bằng cách cắt nhỏ các byte bắt đầu (starting bytes) của tệp. Ví dụ: bạn có thể ghi đè hoặc xóa 1KB bắt đầu của tệp. Để làm như vậy, dùng cờ -s hoặc –size.
Mặc dù bạn sẽ có thể hiển thị tệp văn bản ngay cả sau khi cắt nhỏ nó một phần, nhưng tệp gói hoặc tệp thực thi sẽ không chạy sau khi phát lệnh.
shred -vz -s 1K textfile.txt
shred -vz --size 1K textfile.txt
Tệp văn bản gốc:
Thực hiện lệnh:
Tệp văn bản sau khi phát lệnh:
Shred chấp nhận ba hậu tố sau trong lệnh:
- K: Kilobyte
- M: Megabyte
- G: Gigabyte
Tìm hiểu thêm về lệnh shred
Mặc dù lệnh shred không có nhiều phương thức và tùy chọn mà bạn cần ghi nhớ, nhưng đôi khi bạn có thể truy cập trang hướng dẫn sử dụng để tham khảo.
Cờ –help hiển thị trang hướng dẫn sử dụng của shred:
shred --help
Đầu ra:
Xóa tệp vĩnh viễn trên Linux
Linux cung cấp cho bạn một cách dễ dàng để xóa các tệp và thư mục khỏi bộ nhớ của bạn. Nhưng điều đó không hoàn toàn an toàn. Chỉ mất một vài cú nhấp chuột để truy cập các tệp đã xóa này bằng phần mềm khôi phục dữ liệu. Hãy sử dụng shred để xóa hoàn toàn các tệp trên Linux.
Vân Nguyễn
Dịch từ: https://www.makeuseof.com/fix-error-formatting-volume-ubuntu/
Bình luận (0
)