Hallo allerseits Ich möchte das Kontextmenü vom fvwm2 mit ein paar sinnvollen Einträgen aufwerten. Da wäre zum Beispiel das mounten bzw. unmounten von CD-ROM Floppy oder des Syquest EZ-Drive (Wechselfestplatte).
Ich habe nach langen probieren folgende 2 Scripte (die Scripte/Dateien gehören zusammen) laufen bekommen (Kopien der Dateien siehe am Ende der Mail).
Frage 1: Das erste Problem was ich habe ist, das ich für diesen bischen Kram 2 Dateien brauche, weil ich es nicht hinbekomme im ersten Script den Out- put von grep -c $LW /etc/mtab der Variable "var" zuzuweisen damit ich sie im Script weiterverwenden kann. Wie mache ich das?
Frage 2: Ich habe eine SuSE 7.1 Wie kann ich mir als User das Recht einräumen den Befehl mount /dev/hdc1 /ezdrive auszuführen. Wenn ich das Laufwerk in die fstab eintrage und als User per "mount /ezdrive" aufrufe bin ich berechtigt das Laufwerk zu mounten. Gebe ich direkt "mount /dev/hdc1 /ezdrive" ein bekomme ich nur die Meldung das ich das nur als root darf. Ich habe in /etc/sudoers andreaso ALL=(ALL) NOPASSWD :ALL eingetragen. Bei der Datei /bin/mount und dem Mountpoint /ezdrive habe ich testweise die UserID, die GroupID und das sticky bit (was auch immer das sein mag) gesetzt. Trotzdem darf ich nicht. Wo ist das Problem. (Eine Antwort wäre zum Beispiel "an der Tastatur" :) )
Danke für Eure Hilfe Andreas
Anhang:
Der Aufruf des Scripts erfolgt mit: mlw cdrom mlw floppy mlw ezdrive
------Datei-"mlw"---------------------------------------------------------- #!/bin/bash # Der erste Teil des Script's testet mittels mtab ob das Laufwerk gemountet # ist oder nicht. Es übergibt dem Script "mlw" dann 1 (gemountet) # oder 0 (nicht gemountet) LW=$1 grep -c $LW /etc/mtab |mlw2 $LW `cat`
--------------------------------------------------------------------------- ------Datei-"mlw2"--------------------------------------------------------- #!/bin/bash # Der zweite Teil des Mount/Unmount-Scripts entscheidet ob das Laufwerk # gemountet werden muss oder nicht und führt die entsprechenden Befehle # aus. Das EZ-Drive muss etwas gesondert behandelt werden. LW=$1 var=$2
if test $LW = ezdrive then if test $var -eq 1 then echo 'Das Laufwerk ('$LW') wird entfernt' umount /$LW echo 'fertig' else echo 'Das Laufwerk ('$LW') wird eingebunden' mount /dev/hdc1 /ezdrive mount /dev/hdc5 /ezdrive echo 'fertig' fi
else if test $var -eq 1 then echo 'Das Laufwerk ('$LW') wird entfernt' umount /$LW echo 'fertig' else echo 'Das Laufwerk ('$LW') wird eingebunden' mount /$LW echo 'fertig' fi fi ---------------------------------------------------------------------------
On Tue, Aug 14, 2001 at 05:14:07PM +0100, Andreas Oettel wrote:
Hallo allerseits Ich möchte das Kontextmenü vom fvwm2 mit ein paar sinnvollen Einträgen aufwerten. Da wäre zum Beispiel das mounten bzw. unmounten von CD-ROM Floppy oder des Syquest EZ-Drive (Wechselfestplatte).
Ich habe nach langen probieren folgende 2 Scripte (die Scripte/Dateien gehören zusammen) laufen bekommen (Kopien der Dateien siehe am Ende der Mail).
Frage 1: Das erste Problem was ich habe ist, das ich für diesen bischen Kram 2 Dateien brauche, weil ich es nicht hinbekomme im ersten Script den Out- put von grep -c $LW /etc/mtab der Variable "var" zuzuweisen damit ich sie im Script weiterverwenden kann. Wie mache ich das?
(1) var=$(grep -c $LW /etc/mtab)
oder classic:
(2) var=`grep -c $LW /etc/mtab`
(1) kann man schachteln.
Ich habe eine SuSE 7.1 Wie kann ich mir als User das Recht einräumen den Befehl mount /dev/hdc1 /ezdrive auszuführen. Wenn ich das Laufwerk in die fstab eintrage und als User per "mount /ezdrive" aufrufe bin ich berechtigt das Laufwerk zu mounten. Gebe ich direkt "mount /dev/hdc1 /ezdrive" ein bekomme ich nur die Meldung das ich das nur als root darf.
Korrekt.
Mit sudo hab' ich nie was gemacht.
Heiko
On Tue, Aug 14, 2001 at 05:14:07PM +0100, Andreas Oettel wrote:
Frage 1: Das erste Problem was ich habe ist, das ich für diesen bischen Kram 2 Dateien brauche, weil ich es nicht hinbekomme im ersten Script den Out- put von grep -c $LW /etc/mtab der Variable "var" zuzuweisen damit ich sie im Script weiterverwenden kann. Wie mache ich das?
var=`grep -c dev /etc/mtab` echo $var
oder
var=$(grep -c dev /etc/mtab) echo $var
Frage 2: Ich habe eine SuSE 7.1 Wie kann ich mir als User das Recht einräumen den Befehl mount /dev/hdc1 /ezdrive auszuführen. Wenn ich das Laufwerk in die fstab eintrage und als User per "mount /ezdrive" aufrufe bin ich berechtigt das Laufwerk zu mounten. Gebe ich direkt "mount /dev/hdc1 /ezdrive" ein bekomme ich nur die Meldung das ich das nur als root darf. Ich habe in /etc/sudoers
Schreib einfach bei den entsprechenden einträgen in die fstab ins Options-feld die option 'user' mit rein. Dann darf das Ding jeder (un-)mounten. Bsp:
/dev/cdrom /cdrom iso9660 defaults,ro,user,noauto 0
Reinhard
var=`grep -c dev /etc/mtab` echo $var
oder
var=$(grep -c dev /etc/mtab) echo $var
Danke Euch, das klappt
Schreib einfach bei den entsprechenden einträgen in die fstab ins Options-feld die option 'user' mit rein. Dann darf das Ding jeder (un-)mounten. Bsp:
/dev/cdrom /cdrom iso9660 defaults,ro,user,noauto
Das stand schon drin, funktionierte aber trotzdem nicht. Ich kann die fstab so nicht nutzen, weil ich auf den Mountpoint /ezdrive 2 verschiedene Laufwerke mounten will (abwechselnd, nicht gleichzeitig). In der fstab wird aber nur der erste Eintrag ausgewertet
Ich habe mittlerweile die (eine) Lösung gefunden
Man muß im Script die folgenden Zeilen von mount /dev/hdc1 /ezdrive mount /dev/hdc5 /ezdrive zu sudo mount /dev/hdc1 /ezdrive sudo mount /dev/hdc5 /ezdrive ändern.
Natürlich muß in der Datei sudoers folgender Eintrag (so oder ähnlich) stehen: Benutzer Rechner= NOPASSWD : /bin/mount
Danke nochmals Andreas
On Tue, Aug 14, 2001 at 11:15:13PM +0100, Andreas Oettel wrote:
/dev/cdrom /cdrom iso9660 defaults,ro,user,noauto
Das stand schon drin, funktionierte aber trotzdem nicht. Ich kann die fstab so nicht nutzen, weil ich auf den Mountpoint /ezdrive 2 verschiedene Laufwerke mounten will (abwechselnd, nicht gleichzeitig). In der fstab wird aber nur der erste Eintrag ausgewertet
(a) Warum müssen die auf den selben Mount-Point? (b) Wenn in der /etc/fstab z.B. 2 Einträge sind, die sich wenigstens durch das Device unterscheiden (das tun sie ja hoffentlich, wenn schon der Mount-Point der selbe ist), dann kann die Nutzerin nicht nur
mount <MOUNTPOINT>
sondern auch
mount <DEVICE>
benutzen. Und dann sollten all Deine Probleme gelöst sein.
Ich habe mittlerweile die (eine) Lösung gefunden
Nein, es ist nicht die (eine) Lösung. Es ist nur _eine_ Lösung ;-)
Benutzer Rechner= NOPASSWD : /bin/mount
Wenn ich das richtig verstehe, kann dann jeder mounten, was ihm gefällt, oder? Also z.B. über /usr/bin einen Loopmount mit eigens hergestellten Binaries in einem Image ... Und sudo liegt in /usr/bin. [Ich weiß jetzt nicht, ob das /usr/bin busy ist während des Aufrufs, weil ja sudo läuft, aber es gibt sicher noch viele andere Möglichkeiten.]
Mach doch einen suid-Perl-Script. Oder gib dem sudo auch die erlaubten Parameter beim mount an, ich denke, das wird man können.
Best regards from currently Schwerin/Germany Viele Gruesse aus Schwerin/Mecklenburg-Vorpommern Heiko Schlittermann
Heiko Schlittermann schrieb:
(a) Warum müssen die auf den selben Mount-Point?
Kurz zur Erklärung: die Wechselmedien können ohne Einschränkungen partitioniert werden. Man kann primäre Partitionen und erweiterte Partitionen mit logischen Laufwerken anlegen. Primäre Part. haben die Nummern 1-3, die erweiterte Part. 4 und die logischen Laufwerke fangen bei der Nummer 5 an. Ich hab nur eine Partition auf den Medium, bei manchen ist es eine primäre bei den anderen eine erweiterte Part. mit einen logischen Laufwerk. Deswegen möchte ich entweder hdc1 oder hdc5 mounten. Bisher habe ich immer mit unterschiedlichen Mountpoints gearbeitet. Das nervt aber, weil man mitdenken muss. Bei der jetzigen Lösung wirf man das Medium ein, führt das Script aus und finden den Inhalt unter /ezdrive.
(b) Wenn in der /etc/fstab z.B. 2 Einträge sind, die sich wenigstens
...
mount <DEVICE> benutzen. Und dann sollten all Deine Probleme gelöst sein.
Ich wusste gar nicht das das auch geht.
Benutzer Rechner= NOPASSWD : /bin/mount
Wenn ich das richtig verstehe, kann dann jeder mounten, was ihm gefällt, oder?
Ja. Ein Sicherheitsloch so groß wie ein Scheunentor. Aber was solls, ich bin der einzige hier der mit den Wort Linux was anfangen kann. Und wer meine Daten klauen will der muss sich noch nicht mal die Mühe machen und den Rechner knacken, der braucht einfach nur die Backup-CD's mitzunehmen. Der Rest ist Standard-SuSE, Nichts lohnenswertes also.
Mach doch einen suid-Perl-Script. Oder gib dem sudo auch die erlaubten Parameter beim mount an, ich denke, das wird man können.
Ich stehe mit sämtliche Programmiersprachen auf Kriegsfuß. Ich bin froh wenn das klappt was ich erreichen will.
Es gibt auch noch ein paar andere Fehler. Wenn man das Script ohne Parameter aufruft hängt es sich auf. Man müsste eigentlich auch fehlerhafte Parameter abfangen.
Aber was solls Es tut sein Ding
Vielen Dank nochmal für Eure Hilfe Andreas
Hallo,
Andreas, bei Deinen Problemen koennte sich ein Blick auf einen der verfuegbaren Automounter (z.B. amd oder autofs) schon lohnen.
Holger
lug-dd@mailman.schlittermann.de