Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Verwendung von Passwörtern in Shell Skripten

Frage Linux RedHat, CentOS, Fedora

Mitglied: winlin

winlin (Level 2) - Jetzt verbinden

08.04.2013, aktualisiert 09:39 Uhr, 1748 Aufrufe, 18 Kommentare, 1 Danke

Hallo Leute,

wie kann ich in meinem Shell Skript die Angabe von root und dessen Passwort so einstellen das es beim ausführen des Skriptes abgefragt wird?

Ich möchte nicht das es im Klartext drinsteht, so wie hier
01.
... 
02.
USER=root 
03.
PASSWORT=xxxx 
04.
...
Mitglied: 106543
08.04.2013 um 10:08 Uhr
Hi,

ich kenn mich jetzt nur wenig aus, aber z.B. in Powershel kommt da automatisch eine Abfrage, wenn ich z.B. ein Netzlaufwerk mappen will und da ´ne Berechtigung braucht

Grüße
Exze
Bitte warten ..
Mitglied: hmarkus
08.04.2013 um 10:36 Uhr
Hallo,

01.
#!/bin/sh 
02.
if [ $UID != 0 ]; then 
03.
    su -c kommandoxyz   # hier wird dann das root-Passwort abgefragt und muss eingegeben werden 
04.
fi
Mit anderen Worten, der Befehl su mit der -c Option führt genau das folgende Kommando also root aus und fragt ggf. nach dem Passwort von root.

Je nachdem, was Du machen möchtest, wäre es hilfreich, stattdessen sudo zu nutzen.

Markus
Bitte warten ..
Mitglied: bytecounter
08.04.2013 um 10:45 Uhr
Mit read:

01.
read "Benutzer: " name 
02.
read -p "Passwort: " password 
03.
 
04.
echo "Name: $name" 
05.
echo "Passwort: $password"
vg
Bytecounter
Bitte warten ..
Mitglied: 106543
08.04.2013 um 11:00 Uhr
Hi,

der Befehl mit Read ist nicht zu empfehlen, weil dadurch ein Abbruch der Shell zustande kommt, wenn er ein falsches Kennwort eingibt, bei Markus Version wird er direkt authentifiziert und wenn die Authentifizierung fehlschlägt, wird evt. nochmal nach dem PW gefragt.

Grüße
Exze
Bitte warten ..
Mitglied: winlin
08.04.2013 um 11:09 Uhr
Hi,

den root User sowie das Passwort benötige ich da das Shell Skript das Laufwerk einer anderen Maschine mountet. Vorschlag von Markus funktioniert so nicht, da im Logfile isufficeint permission steht. Sobald ich dann den root user und pwd im Skript hinterlege gehts wieder
Bitte warten ..
Mitglied: 106543
08.04.2013 um 11:10 Uhr
Ok dann doch @bytecounter Lösung :D
Sollte zumindest funktionieren, auch wenn´s net hübsch ist.

Grüße
Exze
Bitte warten ..
Mitglied: hmarkus
08.04.2013 um 11:26 Uhr
Das Hinterlegen des root-Passworts in einem Skript ist extrem gefährlich. Es gibt under Unix/Linux viele andere Möglichkeiten, das Problem zu lösen. z.B. kannst Du die Berechtigung zum Mounten der Laufwerke anders vergeben.

Markus
Bitte warten ..
Mitglied: winlin
08.04.2013 um 11:29 Uhr
code sieht so aus:
01.
#MNT-Platte wird gemountet 
02.
for i in $(seq 1 $PLATTEN); do 
03.
    if [ $MOUNTED = 0 ]; then 
04.
        echo "Datum: "$DATUM >> $LOG 
05.
        echo "Zeit: "$(date +%H:%M) >> $LOG 
06.
        echo | mount HOSTNAME:/DATA2/TEST/ /mnt/cdrom/ 
07.
        if [ $? = 0 ]; then 
08.
            ZIEL=$MNT"/"$BACKUPORDNER 
09.
            MOUNTED=1 
10.
            echo "${MNT}${DEVICE} gemountet." >>$LOG 
11.
        else 
12.
            DEVICE=$(( $DEVICE + 1 )) 
13.
        fi 
14.
    fi 
15.
done
Bitte warten ..
Mitglied: hmarkus
08.04.2013 um 11:43 Uhr
Wer führt denn das Skript aus?

Markus
Bitte warten ..
Mitglied: winlin
08.04.2013 um 11:47 Uhr
der root User führt es aus und der gleiche root user mounted dann das ganze
Bitte warten ..
Mitglied: hmarkus
08.04.2013 um 11:57 Uhr
Aber wenn root das Skript ausführt, dann hat das Skript doch alle Berechtigungen. Wieso willst denn dann noch den Benutzer und das Passwort hinterlegen?

Markus
Bitte warten ..
Mitglied: winlin
08.04.2013 um 12:00 Uhr
Keine Ahnung dachte auch wenn ich es mit root ausführe und mit root mounten will das ich keine Authenifizierung brauch. Braucht er aber doch?!?!?!?
Bitte warten ..
Mitglied: hmarkus
08.04.2013 um 12:04 Uhr
was meinst Du denn mit ?!?!?!?

Wenn ein Skript vom user root aufgerufen wird, dann werden alle dort aufgeführten Befehle als root ausgeführt. Kommt denn eine Fehlermeldung? wenn ja, dann poste die mal bitte hier.

Markus
Bitte warten ..
Mitglied: winlin
08.04.2013 um 12:15 Uhr
Wenn ich im Skript nicht den User und das Passwort angebe bekomme ich folgenden Error:
01.
Unable to connect to host. 
02.
Error: Insufficient permissions in the host operating system
Wenn ich aber im Skript USER=root und PWD=xxx angebe dann gehts komischerweise
Bitte warten ..
Mitglied: hmarkus
08.04.2013 um 12:35 Uhr
Also hast Du eine remote-Verbindung, das Skript versucht also auf einem anderen Rechner die Partitionen zu mounten?

Das geht mit ssh.
ssh root@remotecomputer "mount /this/device /to/this/directory"
auch hier wird nach dem root-Passwort gefragt.

Markus
Bitte warten ..
Mitglied: winlin
08.04.2013, aktualisiert um 13:23 Uhr
ahaaaa das habe ich nun mal oben in zeile 06 eingegeben und jetzt werde ich nach dem Passwort gefragt. Jetzt habe ich lediglich einen mount Fehler:
01.
mount: /scr2/vm/ is not a block device
Bitte warten ..
Mitglied: hmarkus
08.04.2013, aktualisiert um 13:22 Uhr
Es müsste dann
ssh root@$HOSTNAME "mount /DATA2/TEST/ /mnt/cdrom/" 
so aussehen (nicht nochmal $HOSTNAME: für den Pfad, Du bist ja mit ssh schon auf dem Server). Wobei ich fast vermute, dass $HOSTNAME in Deinem Skript eine Variable ist, dann fehlt oben in dem Skript das '$' Zeichen.

Markus
Bitte warten ..
Mitglied: winlin
08.04.2013 um 13:27 Uhr
Sieht grad so aus:
01.
#MNT-Platten werden gemountet 
02.
for i in $(seq 1 $PLATTEN); do 
03.
    if [ $MOUNTED = 0 ]; then 
04.
        echo "Datum: "$DATUM >> $LOG 
05.
        echo "Zeit: "$(date +%H:%M) >> $LOG 
06.
        #echo | mount ceplx270:/scr2/vm/ /mnt/cdrom/ 
07.
        echo | ssh root@lxhost013 "mount /DATA1/test /mnt/cdrom" 
08.
        if [ $? = 0 ]; then 
09.
            ZIEL=$MNT"/"$BACKUPORDNER 
10.
            MOUNTED=1 
11.
            echo "${MNT}${DEVICE} gemountet." >>$LOG 
12.
        else 
13.
            DEVICE=$(( $DEVICE + 1 )) 
14.
        fi 
15.
    fi 
16.
done
Bitte warten ..
Neuester Wissensbeitrag
Festplatten, SSD, Raid

12TB written pro SSD in 2 Jahren mit RAID5 auf Hyper-VServer

Erfahrungsbericht von Lochkartenstanzer zum Thema Festplatten, SSD, Raid ...

Ähnliche Inhalte
Batch & Shell
gelöst Crontab mit Shell Probleme (9)

Frage von mschaedler1982 zum Thema Batch & Shell ...

Batch & Shell
Dateinamen nach Zeichnen abschneiden - Batch-Shell (9)

Frage von cberndt zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (34)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...