Greifen Sie auf Daten von einer Linux-Partition in einem Image ohne Root-Berechtigungen zu

2646
dronus

Ich habe eine Image-Datei mit einem ganzen Laufwerk, die eine Partitionstabelle und einige Partitionen enthält. Ich möchte in dieser Datei Dateien von einer ext2 / ext3-Partition auflisten und lesen.

Bei der Verwendung von Root-Privilegien ist es irgendwie kompliziert, jedoch in ein gewisses Maß an Versatz der Image-Datei einzuhängen, wodurch eine Partition wie eine echte in das Image eingebunden wird.

Gibt es eine Möglichkeit, ohne Root-Berechtigungen auf die Daten zuzugreifen?

4
Die Berechtigung zum Mounten ist ein Root-Privileg, da das Mounten die Sicherheit beeinträchtigen kann (beispielsweise wenn Sie etwas über / etc / mounten, das Ihre eigenen Kennwortdateien enthält). Es gibt jedoch eine Reihe von Möglichkeiten, einem normalen Benutzer Mount-Rechte zu erteilen, aber der Administrator muss ihnen Rechte geben. Ist das möglich? Paul vor 10 Jahren 0
Würde ein Zugriff auf etwas nicht durch den Benutzerzugriff verweigert? Und was ist daran falsch, wenn ein Benutzer über Ordner verfügt, die er besitzt? dronus vor 10 Jahren 0
Nichts. Sie können dies jedoch nicht ohne Erlaubnis eines Root-Administrators tun - über fstab, udisks, polkit oder eine andere Methode. Paul vor 10 Jahren 0
Vielleicht gibt es eine Möglichkeit, dies über FUSE zu tun? dronus vor 10 Jahren 0
Ja, auch durch FUSE, aber sobald Sie die Autorisierung vom Administrator erhalten haben. Die beste Wette ist die Antwort unten. Extrahieren Sie einfach den Inhalt der ISO, wenn Sie den Inhalt benötigen, anstatt ihn zu mounten Paul vor 10 Jahren 0

4 Antworten auf die Frage

1
lemonsqueeze

e2tools

Ah, ich wusste, dass es einen besseren Weg geben musste. Auf Ubuntu:

$ sudo apt-get install e2tools 

Dann:

$ e2ls image.ext2 myfile foo bar baz $ e2cp image.ext2:/myfile /tmp 

usw

Wenn Sie nicht root sind, können Sie das natürlich nicht verwenden apt-get: Laden Sie das e2tools-Binärpaket von packages.ubuntu.com herunter und installieren Sie es in Ihrem Heimatverzeichnis wie in der Antwort von fs-utils.

0
lemonsqueeze

Qemu

Ein einfacher (aber schwerer) Weg, dies zu tun, besteht darin, mit qemu eine virtuelle Maschine zu starten und von dort aus auf die Dateien zuzugreifen. Sie benötigen kein root und dies funktioniert auch, wenn Sie nur Lesezugriff auf das Image haben. Es wird aber sehr langsam sein ...

Verwenden Sie Ihre Lieblings-Mini-Distribution:

qemu -cdrom tomsrtbt.iso -hda disk_image -boot order=d 
0
lemonsqueeze

Andere Maschine + Netzwerk

Wenn Sie Root auf einem anderen Computer sind und über Netzwerkzugriff auf den Server verfügen, auf dem das Disk-Image gespeichert ist, besteht eine gute Chance, dass Sie ein Netzwerk-Dateisystem (sshfs, httpfs, ftpfs, samba, nfs ...) verwenden, um das zuzuordnen Datei lokal, an diesem Punkt können Sie es wie gewohnt als root einhängen.

0
lemonsqueeze

FS-Hilfsmittel

Sieht aus, als könnten fs-utils hier die generische Lösung sein:

Das Ziel dieses Projekts besteht darin, über eine Reihe von Dienstprogrammen zu verfügen, um auf ein Dateisystem-Image zuzugreifen und es zu ändern, ohne es zu mounten. Um fs-utils verwenden zu können, müssen Sie nicht root sein, Sie benötigen lediglich Lese- und Schreibzugriff auf das Image oder das Gerät. Der Vorteil von fs-utils gegenüber ähnlichen Projekten wie mtools besteht darin, die Verwendung bekannter Unix-Tools (ls, cp, mv usw.) für eine Vielzahl von Dateisystemen zu unterstützen.

Linux wird unterstützt und es sind Binärpakete verfügbar (stellen Sie sicher, dass Sie auch die Rump-Kernel-Komponenten erhalten, auf denen er basiert). Da wir nicht root sind, müssen wir sie in unserem Home-Verzeichnis installieren ( ~/usrzum Beispiel):

$ mkdir ~/usr ; cd ~/usr $ dpkg-deb --fsys-tarfile ../netbsd-rump_20140405_i386.deb | tar -xvf - $ dpkg-deb --fsys-tarfile ../netbsd-fs-utils_1.10_i386.deb | tar -xvf - 

Fügen Sie dies zu ~/.bashrc:

export PATH="$HOME/usr/bin:$PATH" export LD_LIBRARY_PATH="$HOME/usr/lib" 

Dann kannst du:

$ fsu_ls -t ext2fs image.ext2 -l total 2 -rw-r--r-- 1 0 0 12 Apr 9 12:45 a_file.txt $ fsu_cat -t ext2fs image.ext2 a_file.txt just a demo 

Die Namen der Dateisysteme sind etwas anders als üblich: Msdos statt vfat, ext2fs statt ext2, cd9660 statt iso9660 usw.

Hinweise:
- Auf meinem System funktioniert es irgendwie mit vfat, aber nicht mit ext2-Bildern. Ich habe jedoch kein vollständiges Fs-Tools-Build erstellt und stattdessen ein Binärpaket ausprobiert, das nicht genau mit meiner Distribution übereinstimmt (was vielleicht der Grund dafür ist ...)
- Es scheint, als würde die offset=...Mount-Option nicht unterstützt. Für den Zugriff auf eine Partition innerhalb eines ganzen Festplattenabbilds scheint es wenig Auswahl zu geben, aber es muss zuerst kopiert werden ...