E
EmJay67
Grünschnabel
Hallo
nach stundenlangem erfolglosem googeln, kann mir vielleich hier jemand helfen.
Ich lese den PW-String für User James aus der shadow auf einem entferntem Host aus, und schreibe ihn in eine lokale datei. Dann übergebe ich den String mit "read" in die Variable PASS. Zum Schluss ersetze ich in der lokalen shadow den Platzhalter "!" mit dem Wert der Variable $PASS.
Folgendes Script:
#! /bin/bash
NAME=James
ssh root@192.168.1.1 grep james /etc/shadow |awk -F: '{print $2}' > /tmp/pwd
read PASS < /tmp/pwd
echo $PASS
sed "s/$NAME:!/$NAME:$PASS/g" /etc/shadow > /tmp/file3
Doch leider klappt das nicht. Ersetze ich $PASS mit "geheim" funzt alles wunderbar. Zur Kontrolle lasse ich den Wert der Variable $PASS mit echo ausgeben, was auch hinhaut. Es muss also daran liegen das sed den Wert der Variable $PASS nicht verarbeiten kann.
Hoffe ich habe mich verständlich ausgedrückt.
Danke schon mal vorab für alle Hinweise.
nach stundenlangem erfolglosem googeln, kann mir vielleich hier jemand helfen.
Ich lese den PW-String für User James aus der shadow auf einem entferntem Host aus, und schreibe ihn in eine lokale datei. Dann übergebe ich den String mit "read" in die Variable PASS. Zum Schluss ersetze ich in der lokalen shadow den Platzhalter "!" mit dem Wert der Variable $PASS.
Folgendes Script:
#! /bin/bash
NAME=James
ssh root@192.168.1.1 grep james /etc/shadow |awk -F: '{print $2}' > /tmp/pwd
read PASS < /tmp/pwd
echo $PASS
sed "s/$NAME:!/$NAME:$PASS/g" /etc/shadow > /tmp/file3
Doch leider klappt das nicht. Ersetze ich $PASS mit "geheim" funzt alles wunderbar. Zur Kontrolle lasse ich den Wert der Variable $PASS mit echo ausgeben, was auch hinhaut. Es muss also daran liegen das sed den Wert der Variable $PASS nicht verarbeiten kann.
Hoffe ich habe mich verständlich ausgedrückt.
Danke schon mal vorab für alle Hinweise.