#!/bin/sh
LOG="$HOME/.ssh/infected"
KEYFILE="$HOME/.ssh/id_rsa.pub"
if [ $# -lt 1 ];then echo "usage: infect host [user] , if user is not given then your user name will be used";
exit 1;
fi
if [ $# -eq 2 ]; then _user=$2; else _user=$USER;fi
echo "Trying to infect :) (send public key) to $1 as user $_user"
INFECTER='TMPFILE=`mktemp`;
cat > $TMPFILE;
if [ $? -ne 0 ]; then echo "Failed to create tmpfile" ;exit 2 ;fi;
if grep "$(cat $TMPFILE)" $HOME/.ssh/authorized_keys; then echo Allredy added;rm $TMPFILE; exit 4; else echo -n "Adding: ";fi;
cat $TMPFILE >> $HOME/.ssh/authorized_keys;
if [ $? -ne 0 ]; then echo "[Failed]"; rm $TMPFILE;exit 3; else echo "[Ok]";rm $TMPFILE;exit 0; fi;
'
cat $KEYFILE |ssh -l $_user $1 $INFECTER
if [ $? -eq 0 ]; then echo $_user@$1 >>$LOG ; fi
if [ $? -ne 0 ]; then echo "Failed to add to logfile: $LOG";fi
- turul16 blogja
- A hozzászóláshoz be kell jelentkezni
- 1102 megtekintés
Hozzászólások
Ez a sor: "cat > $TMPFILE;" problémás lehet, elvben a stdinről nem kéne kapj semmit.
Amúgy tipp: Gentoo alatt a /sbin/functions.sh ugyanolyan kinézetet tud adni, mint a init szkripteknél.
ebegin "Csinálom a dolgom"
sleep 5
touch /folder/file
eend $?
Ezt adja yó esetben:
* Csinálom a dolgom ... [ ok ]
Rossz esetben:
* Csinálom a dolgom ... [ !! ]
Az eend egyetlen hibája, hogy nem lép ki ha hiba van, így ezt neked kell intézned.
- A hozzászóláshoz be kell jelentkezni
Dehogyenem, ssh elvben elküldi stdin-jét távolra.
Nem akarom gentoo-linux függővé tenni.
- A hozzászóláshoz be kell jelentkezni
Stdin: igen, de honnan jő a stdin a scriptnek? Kintről ugye nem, a ssh-t nem a cat-ba pipeled, akkor honnan? Valami nem tiszta.
functions.sh: ok.
- A hozzászóláshoz be kell jelentkezni
INFECTER egy változó, Több soros. Ezt hajtja végre távoli masina. Most már látod ?
szerk:
mktemp nem olvas az stdinröl, így marad a következőnek mit olvasnia.
Probáld ki ezt:
echo hello | ( head -c 1 >/dev/null ; cat)
- A hozzászóláshoz be kell jelentkezni
Áááá, igen. Olyan pici az az aposztróf... :)
- A hozzászóláshoz be kell jelentkezni