• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

iso Image als User mounten

Kennt jemand ne Möglichkeit wie ich ein Iso Image als User (nicht als root) mounten kann ohne den Umweg über die fstab zu gehen?
Ich brauch das für nen Skript, welches natürlich nicht als root ausgeführt werden soll und auf verschiedenen Systemen laufen muss.
 
Wenn ich bei Google "iso-image +mounten" als Suchbegriffe eingebe, findet er da jede Menge. Schon mal da gesucht? :wink:
 

Chris

Member
Gib mal unter root visudo ein.
Am Ende sind 2 Zeilen, die dir helfen sollten.
Schätze eine Zeile wie
Code:
<user-name> localhost=(root) NOPASSWD: /bin/mount -o loop /pfad/zum/image /pfad/zum/mountpunkt, /bin/umount /pfad/zum/mountpunkt
sollte gehen.

MfG
Christian
 
Hallo Christian!

Danke, ich habs jetzt selbst schon rausgefunden wies funktioniert. :)

Hab mir auch ein Skript geschrieben, das mir im Verzeichnis des ISO-Files einen Ordner erstellt und das ISO auf diesen mountet bzw. unmountet. Hab mir das ganze auch im KDE so erstellt, dass mit Klick auf ein ISO das automatisch funktioniert.

2 Dinge habe ich aber nicht geschafft:
1.) Die Rechte beim Mounten gehen auf root:root, was über sudo zwar logisch ist, aber vielleicht nicht unbedingt erwünscht. Hätte lieber wenn mir das auf username:group gemountet würde, weiß aber nicht, wie ich das machen soll (kann das der mount-Befehl?)
2.) Wie frage ich ab, ob das iso gemountet ist? Das ganze steht ja in der /etc/mtab soweit ich weiß, aber gibts da einen Befehl, der mir das explizit sagt und das ich im Skript in eine if-Abfrage bauen kann?

Vielleicht kann mir von den Experten noch jemand Tipps zu diesen beiden Problemen geben, dann bin ich wunschlos glücklich. (es funktioniert zwar jetzt auch, aber irgendwie strebt man ja immer nach Perfektion *g*)

Danke
Markus
 

Chris

Member
Markus Wagner schrieb:
2 Dinge habe ich aber nicht geschafft:
1.) Die Rechte beim Mounten gehen auf root:root, was über sudo zwar logisch ist, aber vielleicht nicht unbedingt erwünscht. Hätte lieber wenn mir das auf username:group gemountet würde, weiß aber nicht, wie ich das machen soll (kann das der mount-Befehl?)
sudo führt ein Programm mit Rechten von root aus, also (fast) so als würde root den Befehl ausführen.
Denke aber das sollte das bewirken, was du willst:
Code:
mount -o uid=500,gid=100,loop /pfad/zum/image /Pfad/zum/Einhängepunkt
Jetzt wird das Dateisystem mit der User-ID 500 und der Group-ID 100 eingehängt. (siehe auch man mount)

Markus Wagner schrieb:
2.) Wie frage ich ab, ob das iso gemountet ist? Das ganze steht ja in der /etc/mtab soweit ich weiß, aber gibts da einen Befehl, der mir das explizit sagt und das ich im Skript in eine if-Abfrage bauen kann?
Ein Experte bin ich zwar nicht, aber mit mount kann man sich alle eingehängten Dateisysteme anzeigen lassen.
Vielleicht lässt sich was realisieren wie:
Code:
if [ `mount | grep /pfad/zum/image ` = "/pfad/zum/image" ]; then
	do_something
fi
MfG
Christian
 
Chris schrieb:
Ein Experte bin ich zwar nicht

Also für meine Verhältnisse schon, aber das ist ja sowieso immer alles relativ. ;)

Hab jetzt alles was ich brauche und funktioniert wunderbar. Vielleicht brauchts ja noch jemand, ich stell das Script "mountiso" mal hier rein:

Code:
#!/bin/bash

function mymount()
{
	$(mkdir "$1.temp") 
	$(sudo mount -o uid=1000,gid=100,loop "$1" "$1.temp")
}

function myumount()
{
	$(fuser -k "$1")
        $(sudo umount "$1")
	$(rm -r "$1.temp") 
}

if [[ $1 == "-m" ]]; then
	$(mymount $2)
fi

if [[ $1 == "-u" ]]; then
	$(myumount $2)
fi

if [[ $(mount | grep "$1") ]]; then 
	$(myumount $1)
else
	$(mymount $1)
fi

Das Skript öffnet im selben Ordner, in dem sich das ISO befindet einen Ordner, auf das das ISO gemountet wird. Nochmaliges Aufrufen unmountet und löscht den Ordner wieder.

Danke für deine Hilfe Christian!
 
Oben