im Script als root anmelden..

faber38

faber38

Tripel-As
hi...
ich möchte mich "im" script als root anmelden um einen vorgang zu starten der nur als root möglich ist..

danach soll die shell wieder geschlossen werden...
nur weiss ich noch nicht wie ich die variable $passwd (wird per inputbox ermittelt)
in der shell mit "su -l root " übergeben kann !
 
Aus dem Bauch raus würde ich mal sagen, geht so nicht, ist auch viel zu unsicher. Andere Benutzer könnten über "ps" die Argumente sehen.
Schon mal "sudo" angesehen, dort könntest DU viel sicherer etwas von root oder anderen usern machen lassen.

Gruss
Heiko
 
das ist schlecht....
dann werde ich umdenken müssen...und dem user die rechte zuweisen...
 
faber38 schrieb:
das ist schlecht....
dann werde ich umdenken müssen...und dem user die rechte zuweisen...

Nein, musst Du nicht. hwj hat Dir doch bereits den Tipp sudo gegeben. Das ist genau für Deine Zwecke gedacht.

Gruss, Xanti
 
mmmh...ich poste mal den script..
ich würde gerne noch eine abfrage dazu packen oder eben diesen als root ausführen lassen...
meine Frau und meine Tochter kennen sich mit Linux nicht aus..und wenn die eine diskette einlegen ..tut sich ja nichts...

daher dieser script.
PHP:
#!/bin/sh
# by Faber38
# Laufwerk A Floppy oder LS120 mounten/umounten


Xdialog --yesno "1.44MB(Yes) oder LS120(No) ?" 0 0 
# 0=1.44MB ; 1=LS120
antwort=$?

#Bildschirm löschen
clear
if [ $antwort = 0 ]
then 
 Xdialog --yesno "Diskette (ja)mounten/(nein)umounten" 0 0
 #0=mounten ; 1=umounten
 antwort=$?

 # Bildschirm löschen
 clear
 if [ $antwort = 0 ]
 then
  Xdialog --yesno "Diskette eingelegt ??" 0 0
  antwort=$?
  if [ $antwort = 0 ]
  then
   mount /dev/fd0 /media/floppy/
   Xdialog --infobox "Diskette erfolgreich eingebunden !" 5 40
   sleep 3
    else
     exit
   fi
  else
   umount /dev/fd0 /media/floopy/
   Xdialog --infobox "Diskette bitte entfernen !" 5 40
   sleep 3
 fi
else

# ----------------------------------------------------------------


Xdialog --yesno "Diskette (ja)mounten/(nein)umounten" 0 0
#0=mounten ; 1=umounten
antwort=$?

# Bildschirm löschen
clear
if [ $antwort = 0 ]
then
 Xdialog --yesno "Diskette eingelegt ??" 0 0
 antwort=$?
 if [ $antwort = 0 ]
 then
  mount /dev/hdb /media/LS120/
  Xdialog --infobox "Diskette erfolgreich eingebunden !" 5 40
  sleep 3
   else
    exit
  fi
 else
  umount /dev/hdb /media/LS120/
  Xdialog --infobox "Diskette bitte entfernen !" 5 40
  sleep 3
fi
fi
 
Wenn ich es richtig erkannt habe, geht es in dem Skript nur um das Einhaengen eines Mediums, oder? Dazu brauch man nicht root zu sein, wenn man in der fstab 'user' oder 'users' den Optionen beifuegt.

Vielleicht habe ich ja auch was uebersehen.
 
Wie gesagt: sudo mount und sudo umount. Wenn Dir dies zu allgemein ist, schau Dir /etc/devfs.conf an. Hier (unter FreeBSD) kann man darin den Zugriff auf Geräte steuern (ich hoffe, dass es auch unter Linux so ist).

Gruss, Xanti

edit: oder so, wie rikola es beschreibt.
 
dachte ich auch...
nur wenn ich in der shell "mount /dev/hdb /media/LS120" eintippe
kommt immer
mount: Nur „root“ kann dies tun

melde ich mich als root an funktionierts..

sudo mount .. fragt mich nach dem passwort... und das hat meine Famiolie nicht...
daher suche ich ja eine lösung das passwort per variable zu übergeben

fstab:
/dev/fd0 /media/floppy auto noauto,user,sync 0 0
/dev/hdb /media/LS120 auto noauto,user,sync 0 0
 
Zuletzt bearbeitet:
Um als user die Eintraege in der fstab zu nutzen, darf man nur ein Argument (device oder mount-Punkt) angeben, also entweder 'mount /dev/hdb' oder 'mount /media/LS120' (welches, ist egal).
 
faber38 schrieb:
...
sudo mount .. fragt mich nach dem passwort... und das hat meine Famiolie nicht...
daher suche ich ja eine lösung das passwort per variable zu übergeben

fstab:
/dev/fd0 /media/floppy auto noauto,user,sync 0 0
/dev/hdb /media/LS120 auto noauto,user,sync 0 0
man sudo + visudo.
 
rikola schrieb:
Um als user die Eintraege in der fstab zu nutzen, darf man nur ein Argument (device oder mount-Punkt) angeben, also entweder 'mount /dev/hdb' oder 'mount /media/LS120' (welches, ist egal).


super.. das wars... danke.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1:oldman

hier nun eine kurze variante...
mir gefällt diese besser
PHP:
#!/bin/sh
# by Faber38
# Laufwerk A Floppy oder LS120 mounten/umounten

udisk=`dialog --radiolist "Welches Medium ....?" 0 0 2 /dev/fd0 "" off /dev/hdb "" on 3>&1 1>&2 2>&3` 
umnt=`dialog --radiolist "welcher Vorgang ...?" 0 0 2 mount "" on umount "" off 3>&1 1>&2 2>&3`


dialog --clear
$umnt $udisk

man lernt jeden tag mehr
 
Zuletzt bearbeitet:
faber38 schrieb:
PHP:
udisk=`dialog --radiolist "Welches Medium ....?" 0 0 2 /dev/fd0 "" off /dev/hdb "" on 3>&1 1>&2 2>&3` 
umnt=`dialog --radiolist "welcher Vorgang ...?" 0 0 2 mount "" on umount "" off 3>&1 1>&2 2>&3`
Aus reiner Neugier: Welcher Stream hat denn die Nummer 3? Oder ist das etwas dialog-Spezifisches?
 
3>&1 1>&2 2>&3

ist soweit ich weiß dialog spezifisch... man kann hier auch 5 oder mehr einträge machen.. ohne die 3>&1 1>&2 2>&3 zu verändern

ich lerne gerade aus dem Buch
Shell-Programmierung von Jürgen Wolf
http://www.edv-buchversand.de/suse/product.php?cnt=product&id=gp-683&lng=

ps:
Auszug:
Dies ist ein nachteil von "dialog", weil hierbei das Ergebnis immer auf die Standartfehlerausgabe statt auf die Standartausgabe erfolgt.
und um die Dialogausgabe zu weiteren Verarbeitung in eine Variable zu schreiben,muss man ebenso vorgehen.
 
Zuletzt bearbeitet:
Das ist ein eigener und nicht Dialog-spezifisch. Anders als bei den Standard-Kanälen (STDIN, STDOUT oder STDERR) sind die eigenen aber immer mit einem File verbunden.

BEGIN EDIT
Obiges ist gelogen. Du kannst sie auch direkt mit STDOUT verbinden (siehe Beispiele im Link unten). Was ich behauptet habe, ist nur in meinen Skripten so ;-)
END EDIT

Man kann sie anlegen mit dem exec-Kommando:

Code:
prompt:~ > exec 3>/tmp/meinfilet

und anschließend den STDOUT mit Kanal 3 zusammen legen:

Code:
bla-irgend-ein-kommando 1>&3

Auflösen kann man sie auch wieder:

Code:
exec 3>&-

Siehe auch: http://www.faqs.org/docs/abs/HTML/io-redirection.html


Gruß
 
Zuletzt bearbeitet:
cool... danke für die ausführliche beschreibung...

man merkt immer wieder..."wissen ist macht"
auch wenn man ein Buch liest...versteht man ohne hilfe nicht immer alles
 

Ähnliche Themen

Console I/O mit loggen

Keine grafische Oberfläche (Debian Installation)

iptables Konfigurationsdatei

Zugriff Ubuntu 16.04. auf Freigabe 18.04. LTS nicht möglich

smb.conf

Zurück
Oben