我有2个用户:usr1和usr2。 root用户也不是。
usr1启动一个bash脚本。从脚本中,我想将某些命令作为usr2运行。 我了解这样做的方法是:
su -l <usr2> -c "command"
问题在于密码的传递。这是2个具有不同特权的不同用户,因此,不能跳过usr2的密码。
此脚本可以进行交互,并询问用户密码。 bash脚本中有没有办法做到这一点?
注意:我不是脚本专家。在问这个问题之前,我已经做了一些研究,但是我找不到合适的答案。
答案 0 :(得分:0)
您可以尝试使用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
其中user = $ 1另外的bash参数,在本例中为usr2的用户ID,然后突出运行
$sudo bash -x ./password.sh <target-user>