我有 2 个用户:usr1 和 usr2。根用户也不是。
usr1 启动一个 bash 脚本。从脚本中,我想以 usr2 身份运行一些命令。 我知道这样做的方法是:
su -l <usr2> -c "command"
问题在于传递密码。这是 2 个具有不同权限的不同用户,因此,跳过 usr2 的密码不是一个选项。
此脚本可以进行交互,并要求用户输入密码。有没有办法在 bash 脚本中执行此操作?
注意:我不是脚本专家。在问这个问题之前我做了一些研究,但我找不到合适的答案。
最佳答案
您可以尝试使用读取 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>
关于linux - 以与 bash 脚本不同的用户身份运行命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52427308/