xóa một 'tập tin' dưới / Proc hoặc / dev


8

Tôi đang sử dụng một thiết lập cowdancer / debootstrap để tạo ra một chroot.

Tất nhiên, khi tôi lặp lại, tôi tạo ra một số cấu hình chroot là xấu.

Tôi đã thấy mình trong một tình huống khó xử khi tôi có một loạt các tập tin dưới / Proc đang từ chối bị xóa.

Khi tôi sudo rm -rf z_needs_to_be_deleted, tôi nhận được rất nhiều tin nhắn tương tự như thế này:

rm: cannot remove 'z_needs_to_be_deleted/var/cache/pbuilder/build/cow.13620/
proc/6352/task/6358/loginuid':  Permission denied

Làm thế nào để tôi giết chroot này?

Câu trả lời:


16

/procvà (thường) phần lớn /devchỉ đọc "hệ thống tập tin" được tạo bởi kernel. Bạn không xóa chúng, bạn chỉ umountlà hệ thống tập tin. Nếu rm -r /proc/6352hoạt động, nó sẽ phải tương đương về mặt ngữ nghĩa kill -9 6352, vì nó thực sự chỉ trình bày thông tin về pid 6352, chứ không phải các tệp thực tế ở bất cứ đâu.

Sử dụng mountđể xem những gì hệ thống tập tin được gắn kết nằm dưới chrootumountchúng trước khi loại bỏ bất kỳ tập tin. Điều này có lẽ còn quan trọng hơn khi nó là một thú bindcưỡi, vì rm -rsẽ loại bỏ các tệp gốc bên ngoài trại giam.


Trên Linux, /devthường là một ví dụ có thể ghi của tmpfs , được duy trì bởi udev.
dùng1686

@grawity: Tôi đã suy nghĩ nhiều hơn về những thứ như /dev/fd, thường là một liên kết tượng trưng /proc/self/fd. IIRC có một số liên kết ALSA xung quanh là tốt.
geekizard
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.