Запуск команд от имени другого пользователя от скрипта bash - PullRequest
0 голосов
/ 20 сентября 2018

У меня 2 пользователя: usr1 и usr2.Ни один из них не является пользователем root.

usr1 запускает скрипт bash.И из скрипта я хочу запустить некоторые команды от имени usr2.Я понимаю, что способ сделать это:

su -l <usr2> -c "command"

Проблема с передачей пароля.Это 2 разных пользователя с разными привилегиями, поэтому пропуск пароля для usr2 невозможен.

Этот скрипт может быть интерактивным и запрашивать пароль у пользователя.Есть ли способ сделать это в скрипте bash?

Примечание: я не специалист по написанию скриптов.И я провел некоторое исследование, прежде чем задавать этот вопрос, но не смог найти подходящий ответ.

1 Ответ

0 голосов
/ 20 сентября 2018

Вы можете попробовать использовать команду read read man page , см. Пример ниже:

#!/bin/bash

read -s -p "Enter your password: " pass
echo $pass

В этом случае вам нужно будет использовать / bin / su -c вместе с sudo -S

#!/bin/bash 

user=$1
read -s -p "Enter pass: " pass
cmd=$(echo $pass|sudo -S <some-command>)
su -c '$cmd' - $user

Где пользователь = дополнительный аргумент bash $ 1, в этом случае идентификатор пользователя для usr2, затем просто запустите его

$sudo bash -x ./password.sh <target-user>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...