Переключение, многопользовательское сразу

У меня есть потребность в моем сценарии удара, где пользователь должен выполнить один сценарий на нескольких хостах. Позволяет говорят user1 , user2, & user3. User1 имеют доступ для переключения на user2, но не user3, и сценарий должен быть, выполняются через user3. Для выполнения в одном хосте - его возможное как ниже - позволяет, я - user1 и выполнюсь ниже команд.

sudo -i -u user2
sudo -u user3 script <hostname>

Но не мог выполниться на нескольких хостах через для цикла как ниже

#!/bin/bash
sudo -i -u user2;
for i in `cat /tmp/hostlist`;do
  echo $i
  sudo -u user3 script.sh $i
  echo "----------------"
done
1
задан 4 April 2019 в 11:41

1 ответ

Необходимо выполнить второй sudo как аргумент первому sudo. Это будет быть похожим на это:

#!/usr/bin/env bash
sudo -i -u user2 /bin/bash <<EOF
#commands here will be executed as user=user2
while IFS='' read -r i || [[ -n "$i" ]]; do 
  echo "$i"
  sudo -u user3 script.sh "$i"
  echo "----------------"
done </tmp/hostlist
EOF

Тестирование:

$ echo 111 >/tmp/hostlist
$ echo 222 >>/tmp/hostlist
$ echo 333 >>/tmp/hostlist
$ ./loophosts 
111
----------------
222
----------------
333
----------------
1
ответ дан 7 December 2019 в 15:05

Другие вопросы по тегам:

Похожие вопросы: