Saya dapat masuk ke mesin jarak jauh sebagai pengguna yang dapat melakukan sudo su -
. Saya tidak bisa login sebagai root.
Saya memiliki skrip lokal yang ingin saya jalankan di mesin jarak jauh. Selain itu, skrip dikirim ke sana melalui skrip lain.
Saya tidak tahu bagaimana caranya. Saya telah menghapus beberapa T&J di sini tetapi tidak berhasil. Yang paling dekat dengan saya:
COMMAND_SSH="sudo -i <<'EOF'"`cat ./unifyServiceNode.sh`"\nEOF\n" ;;
...
while read HOST; do
echo -e "nn======== [email protected]$HOST <-- $COMMAND_SSH =================nn";
ssh -n -tt [email protected]$HOST "'$COMMAND_SSH'";
done < hosts.txt
Ini berakhir dengan output ini:
======== [email protected] <-- sudo -i <<'EOF'
##
## Creates a few links and scripts to unify the nodes maintainance.
##
BB="/bb"
NAME="bpds-api"
NAME2="bpds-"
mkdir -p $BB
ln -s /opt/$NAME/logs/*.log $BB/log
ln -s /opt/$NAME/conf/api/$NAME.yml $BB/conf.yml || ln -s /opt/$NAME/conf/api/$NAME2.yml $BB/conf.yml
echo "systemctl ${1:-restart} "${@:2}" $NAME" > $BB/Sys
echo "tail -${1:-500f} $BB/log" > $BB/Tail
echo "nano $BB/conf.yml" > $BB/Conf
chmod a+x $BB/Sys $BB/Tail $BB/Conf
echo "export PATH=$PATH:$BB" >> ~/.bashrc
EOF
=====================================
bash: sudo -i <<EOF': command not found
bash: line 14: /bb/Sys: Permission denied
bash: line 15: /bb/Tail: Permission denied
bash: line 16: /bb/Conf: Permission denied
chmod: changing permissions of ‘/bb/Sys’: Operation not permitted
chmod: changing permissions of ‘/bb/Tail’: Operation not permitted
chmod: changing permissions of ‘/bb/Conf’: Operation not permitted
bash: -c: line 18: unexpected EOF while looking for matching `''
bash: -c: line 19: syntax error: unexpected end of file
Connection to somehost.com closed.
Ini adalah "paling dekat" karena melihat perintah individu tetapi tidak di bawah sudo
, karena <<EOF
baris pertama tidak (tidak) lolos dengan benar.
**Bagaimana saya harus menjalankan skrip arbitrer di bawah sudo
melalui ssh
?”
Jawaban yang Diterima:
Saya telah mengetahuinya segera setelah memposting.
COMMAND_SSH="sudo -i <<'EOF'"`cat ./unifyServiceNode.sh``echo -e 'nEOF'` ;;
ssh -n -tt [email protected]$HOST "$COMMAND_SSH"; ## -n prevents reading the input. -tt forces TTY.
'
extra ekstra s di sekitar perintah SSH tampaknya menjadi masalah, dan saya juga perlu membuat baris baru melalui echo
.
Saya tidak yakin apakah itu hanya peretasan keberuntungan atau cara yang tepat untuk melakukannya. Sejujurnya, saya benar-benar tersesat dalam evaluasi kutipan Bash