Löschen einer 'Datei' unter / proc oder / dev


8

Ich verwende ein Cowdancer / Debootstrap-Setup, um eine Chroot zu generieren.

Natürlich generiere ich beim Iterieren einige schlechte Chroot-Konfigurationen.

Ich befand mich in einer unangenehmen Situation, in der ich eine Reihe von Dateien unter / proc habe, die sich weigern, gelöscht zu werden.

Wenn ich sudo rm -rf z_needs_to_be_deleted, bekomme ich eine Menge Nachrichten, die analog dazu aussehen:

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

Wie töte ich diese Chroot?

Antworten:


16

/procund (normalerweise) viele von ihnen /devsind schreibgeschützte "Dateisysteme". Sie löschen sie nicht, sondern nur umountdas Dateisystem. Wenn es rm -r /proc/6352funktioniert, müsste es semantisch äquivalent zu sein kill -9 6352, da es wirklich nur Informationen über pid 6352 enthält, keine tatsächlichen Dateien irgendwo.

Verwenden Sie mountdiese Option, um zu sehen, welche gemounteten Dateisysteme sich unter chrootund befinden umount, bevor Sie Dateien entfernen. Dies ist vielleicht noch wichtiger, wenn es sich um ein bindMount handelt, da rm -rdie Originaldateien außerhalb des Gefängnisses entfernt werden.


Unter Linux /devist dies normalerweise eine beschreibbare Instanz von tmpfs , die von udev verwaltet wird.
user1686

@grawity: Ich habe mehr über Dinge nachgedacht /dev/fd, die normalerweise ein Symlink zu sind /proc/self/fd. IIRC gibt es auch einige ALSA-Symlinks.
Geekosaurier
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.