PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Als User Image mounten



wurf
20.10.03, 15:32
Hallo!

Ich hätte gern, dass wenn ein User auf eine Image Datei (*.img, *.iso) Doppelklickt die Datei automatisch gemountet wird. Doch leider kommt wenn ich 'mount -o loop /home/user/temp diedatei.img' ausfühe immer nur: mount: Nur »root« kann dies tun

Wie kann ich das machen, dass das auch User dürfen? Und wie schaffe ich es, dass das gemountete Image auch am Desktop von Nautilus erscheint (so wie wenn eine CD eingelegt ist)

Danke für eure Hilfe schon mal!

Michi

sticky bit
20.10.03, 17:19
Hmm, du könntest das ganze in die /etc/fstab eintragen mit entsprechenden Otionen (users oder user) aber dann geht das nicht bei jeder Image Datei die irgendwo rum liegt sondern nur bei der die eingetragen ist.
Du könntest natürlich auch ein Skrip machen, in etwa so:


#!/bin/sh

mount -o loop /mnt/image $1
# $1 ist das ertse auf der Kommandozeile übergebene Argument

Dem Skript müsstest du dann 'root' (oder wer auch immer UID 0 auf deinem System hat) als Bestitzer zu weisen und auf den Modus '4755' (setuid, das Skript hat dann bei der Ausführung root-Rechte kann baer von jedem ausgeführt werden) setzen. Solche Dinge sind aber generell gefährlich, könnte aber dein Problem so lösen...

wurf
20.10.03, 22:23
Hallo! Danke für die Antwort.

Ich habe jetzt folgendes Script:

#!/bin/sh
mkdir ~/.gnome-desktop/$1 #macht einen Ordner mit dem imagenamen am desktop
mount -o loop $1 ~/.gnome-desktop/$1 #mountet das image dorthin

Das funktioniert auch soweit, außer: 'mount: Nur »root« kann dies tun'

Ich habe aber wie du gesagt hast vorher als root das gemacht:

chown root script
chmod 4755 script

Was kann ich da noch machen? Und hat wer eine Idee wie ich es machen kann, dass der Ordner nach dem unmounten automatisch gelöscht wird?

Danke für eure Hilfe,

Michi

HackThor
20.10.03, 22:41
Wird auch nicht gehen. Bei Scripten wird das SUID und das SGID-Bit aus Sicherheitsgründen ignoriert...
Hab so auch keine Idee wie man es machen könnte - außer du schreibst ein kleines Programm in C oder ähnlich welches mit nem "exec*()" den "mount" aufruft. Das Programm kannst du dann sehr wahrscheinlich SUID root machen.

ciao

Michael

sticky bit
21.10.03, 17:54
Original geschrieben von HackThor
Wird auch nicht gehen. Bei Scripten wird das SUID und das SGID-Bit aus Sicherheitsgründen ignoriert... Echt? Wusst ich gar nicht... bleibt wohl nur ne 'suid-bash' o. Ä. ( ;) Nein keine wirklich gute Idee!)...

HackThor
21.10.03, 18:07
Stimmt - keine gute Idee. Aber wie wäre es mit "sudo"? Damit wird der Mount (oder das Script, aber ob das geht weiß ich nicht) als echter "root" ausgeführt. Du kannst das auch so konfigurieren das der Nutzer wirklich nur das Script ausführen darf, und das dann ohne Passwort.

ciao

Michael

wurf
22.10.03, 18:29
Hallo!

Ich habs geschafft. Ich habe eine Gruppe imagemount gemacht, alle Benutzer, die Images mounten dürfen dort hineingetan, und dann in der /etc/sudoers folgendes eingetragen: (habe ich mit visudo bearbeitet)

%imagemount localhost=/bin/mount -o loop * # Die Grupper imagemount darf auf localhost '/usr/mount -loop irgendwas irgendwohin' als root ausführen (also mit 'sudo /usr/mount -loop irgendwas irgendwohin')
%imagemount localhost=/bin/umount * # Und die Gruppe imagemount darfs natürlich auch wieder unmounten

Danke für eure Hilfe!

Michi