so werden bei mir IMAGES von normalen Usern gemountet...
happy schrieb:
was muss ich machen damit das image ein User mounten kann? den das anlegen von den virtuellen devices gehts bereits, nur das mounten klappt nicht! der root muss erstmal nach dem anlegen von dem md0 durch den user das hier "/etc/rc.d/devfs restart" machen. und in der devfs.conf sind ist natürlich das laufwerk md0 richtig gesetzt. dann kann der user auch das image mounten, vorher nicht.
wie kann ich das umgehen ?
Also, wie immer führen viele Wege nach Rom, ich gehe davon nur einen und den kann ich hier mal vorstellen, da ich ihn für sehr elegant halte. Denn bei dieser Methode braucht im System nichts konfiguriert werden und man mountet mit einem Knopfdruck immer das was man will, ohne grosse Befehlseingaben. Man wird gefragt und man antwortet, fertig.
Ich mache das bei mir mit "sudo", das mounten wird bei mir mit nem Script gemacht und das Script wird mit "sudo" ausgeführt. Für interessierte lege ich mein Script mal hier rein, da es recht flexibel aurbeitet und alle arten von IMAGES mountet. Natürlich muss der Mountpoint "/IMAGE" vorher angelegt worden sein und "sudo" muss installiert und konfiguriert sein! Dieses Script funktioniert unter FreeBSD 4.x UND FreeBSD 5.x!!!
Der Aufruf durch den Button in meiner Grafischen Oberfläche sieht so aus:
/usr/X11R6/bin/xterm -T "Image-mount + Midnight Commander" -n "Image-mount + Midnight Commander" -fg black -bg white -e sudo /home/bin/mimg k
Das Script selbst (/home/bin/mimg) sieht so aus:
#!/bin/sh
#
################################################################################
# /home/bin/mimg m # mounten eines Images
# /home/bin/mimg k # mounten eines Images und starten von "midc"
# /home/bin/mimg u # umount des gemounteten Images
# /home/bin/mimg f # erzwungenes umounten des gemounteten Images
# /home/bin/mimg c # cfs - mount (Verschlüsseltes Verzeichnis mounten)
################################################################################
#
# Diese Schritte sind nur als "root" ausfuehrbar!
# Ein MS-DOS-Disketten-Image soll gemountet werden:
#
# Beispiel fuer FreeBSD bis zur Version 4:
# ========================================
#
# vnconfig -c /dev/vn0c ~/kontor/SYS/msdos622.img
# mount -t msdos /dev/vn0c /IMAGE
#
#
# Unmounten des Images (loesen vom Image):
#
# umount /IMAGE
# vnconfig -u /dev/vn0c
#
#
# Beispiel fuer FreeBSD ab der Version 5:
# =======================================
#
# mdconfig -a -t vnode -u 1 -f ~/kontor/SYS/msdos622.img
# mount -t msdos /dev/md2 /IMAGE
#
#
# Unmounten des Images (loesen vom Image):
#
# umount /IMAGE
# mdconfig -d -u 1
#
################################################################################
if [ `uname -s` != "FreeBSD" ] ; then
echo ""
echo "Dieses Script laeft nur auf FreeBSD!"
echo "ABBRUCH!"
exit 1
fi
MOUNTPOINT="/IMAGE"
VERSION=`uname -r|tr -s '\.' ' '|tr -s '-' ' '|tr -s '_' ' '|cut -f1 -d' '`
if [ "x${1}" != "x" ] ; then
case "${1}" in
[Mm])
# mounten
echo "find * -name \"*.iso\" -print"
cd
find * -name "*.iso" -print
echo ""
echo "Image Datei mit Pfad eingeben:"
read IMAGEFILE
echo ""
echo "[cd9660] [linux] [msdos] [ntfs] [ufs]"
echo "Welches Dateisystem ist auf der Imagedatei:"
read FILESYSTEM
#echo "Welcher Mountpoint soll verwendet werden (z.B. /IMAGE):"
#read MOUNTPOINT
if [ "${VERSION}" > "4" ] ; then
mdconfig -a -t vnode -u 2 -f "${IMAGEFILE}"
mount -t "${FILESYSTEM}" /dev/md2 "${MOUNTPOINT}"
else
vnconfig -c /dev/vn0c "${IMAGEFILE}"
mount -t "${FILESYSTEM}" /dev/vn0c "${MOUNTPOINT}"
fi
;;
[Kk])
# mounten
echo "find ~/ -name \"*.iso\" -print"
find ~/ -name "*.iso" -print
echo ""
echo "Image Datei mit Pfad eingeben:"
read IMAGEFILE
echo ""
echo "[cd9660] [linux] [msdos] [ntfs] [ufs]"
echo "Welches Dateisystem ist auf der Imagedatei:"
read FILESYSTEM
if [ "${VERSION}" > "4" ] ; then
mdconfig -a -t vnode -u 2 -f "${IMAGEFILE}"
mount -t "${FILESYSTEM}" /dev/md2 "${MOUNTPOINT}"
else
vnconfig -c /dev/vn0c "${IMAGEFILE}"
mount -t "${FILESYSTEM}" /dev/vn0c "${MOUNTPOINT}"
fi
midc "${MOUNTPOINT}"
if [ "${VERSION}" > "4" ] ; then
umount -f "${MOUNTPOINT}"
mdconfig -d -u 2
else
umount -f "${MOUNTPOINT}"
vnconfig -u /dev/vn0c
fi
;;
[Uu])
# normales unmounten
#echo "Welcher Mountpoint soll geloest werden (z.B. /IMAGE):"
#read MOUNTPOINT
if [ "${VERSION}" > "4" ] ; then
umount "${MOUNTPOINT}"
mdconfig -d -u 2
else
umount "${MOUNTPOINT}"
vnconfig -u /dev/vn0c
fi
;;
[Ff])
# erzwungenes unmounten
#echo "Welcher Mountpoint soll geloest werden (z.B. /IMAGE):"
#read MOUNTPOINT
if [ "${VERSION}" > "4" ] ; then
umount -f "${MOUNTPOINT}"
mdconfig -d -u 2
else
umount -f "${MOUNTPOINT}"
vnconfig -u /dev/vn0c
fi
;;
[Cc])
# cfs - mount
/sbin/mount -o port=3049,intr,nfsv2,noinet6 localhost:/var/tmp/crypt /home/crypt
;;
*)
echo "
/home/bin/mimg m # mounten eines Images
/home/bin/mimg u # umount des gemounteten Images
/home/bin/mimg f # erzwungenes umounten des gemounteten Images
/home/bin/mimg c # cfs - mount
"
;;
esac
else
echo "
/home/bin/mimg m # mounten eines Images
/home/bin/mimg u # umount des gemounteten Images
/home/bin/mimg f # erzwungenes umounten des gemounteten Images
/home/bin/mimg c # cfs - mount
"
fi