GNU/Linux >> Belajar Linux >  >> Linux

Menjalankan File Skrip Melalui Ssh Melalui Sudo?

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


Linux
  1. Mencegah skrip bash berjalan secara bersamaan

  2. Ssh – Melewati Kata Sandi ke Skrip?

  3. Bash Script:Periksa Apakah File Adalah File Teks?

  1. Ssh – Terowongan Lalu Lintas Melalui Mesin Lain Melalui Ssh?

  2. Jalankan Script Yang Sama Pada Beberapa Server Melalui Ssh?

  3. Skrip Bash:juru bahasa yang buruk

  1. Jalankan file teks sebagai perintah di Bash

  2. Cara memasukkan file dalam skrip bash shell

  3. Mendorong prompt PS1 saya melalui ssh