gpt4 book ai didi

sudo - su 将密码传递给脚本

转载 作者:行者123 更新时间:2023-12-02 19:27:14 48 4
gpt4 key购买 nike

我正在尝试编写一个将运行以下命令的脚本:

sudo su
runmqsc_result=`su -c "runmqsc QMGR < /home/rob/query_queue.txt" -m "mqm"`

但是,我的问题是,这些命令是由 sudoers 文件中的用户作为 shell 脚本的一部分运行的。但是,显然 sudo su 要求运行它的用户的密码。

我需要做的是将密码传递给 sudo su 以便脚本自动运行。我怎样才能做到这一点?

p.s:我无法更改运行“runmqsc”的权限...它必须以用户 mqm 身份运行,需要从 root 用户切换到该用户。

最佳答案

来自man sudo:

-S    The -S (stdin) option causes sudo to read the password from the standard
input instead of the terminal device. The password must be followed by a
newline character.

因此,虽然它违背了所有安全原则echo 'password' | sudo -S su [...] 应该可以工作。

<小时/>

或者,您可以使脚本只能由 root 编写,并将以下内容添加到 /etc/sudoers 中,以允许用户 johndoe 使用 root 权限运行它,而无需输入他的密码:

johndoe ALL = NOPASSWD: /full/path/to/your/script

只能由 root 写入部分对于防止 johndoe 修改脚本并以 root 身份执行任意命令非常重要。

关于sudo - su 将密码传递给脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19164222/

48 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com