linux - 提供用于以不同用户身份在另一个脚本中运行脚本的密码

标签 linux bash shell unix sudo

假设您以用户 A 身份运行脚本:sudo -u A ./script.shscript.sh 中,我们有一行使用不同的用户 B 调用另一个脚本 script2.sh:sudo -u B ./script2。嘘。现在系统提示我输入用户 B 的密码。有什么方法可以在调用时提供该密码吗?

附注我知道它可能造成的所有安全漏洞。请不要提到我。

最佳答案

是的,您可以选择。但是您必须在执行脚本时提供该密码或将其硬编码在脚本本身中。尝试以下示例:-

echo 'passwordofB' | sudo -u B -S ./script2.sh

你也可以这样做:-

 sudo -u A ./script.sh passwordofB #as a command line parameter

现在在里面script.sh :-

echo $1 | sudo -u B -S ./script2.sh

您正在执行另一个脚本sudo -u B ./script2.sh来自脚本 ./script.sh正确的?因此,将该行更改为 echo $1 | sudo -u B -S ./script2.sh并运行您的第一个脚本 sudo -u A ./script.sh passwordofB哪里passwordofB是用户“B”的密码

关于linux - 提供用于以不同用户身份在另一个脚本中运行脚本的密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49130399/

相关文章:

c - 如何在Linux中获取显示设备名称

php - 从旧的 Windows 主机移动到运行 Linux 的新主机后,PHP 代码出现问题。

linux - 提取文件 a 的两个范围的行,并使用 shell 命令将它们作为数据 block

java - 重定向应用程序(java)的输入但仍然允许 BASH 中的标准输入

shell - 如何使用 jenkins 作业通过 ssh 在远程计算机上运行 shell 脚本

shell - 命令行/shell 帮助文本是否有 "standard"格式?

mysql - 本地 shell 中的 ssh 连接和远程输出

linux - 在 Linux 中安装 Icecast

c - 当作为后台进程运行时,防止 read() 系统调用返回 0

bash - 将 xinit 与我作为参数传递的 bash 结合起来,可能吗?