我正在尝试编写一个运行以下命令的脚本:
sudo su
runmqsc_result=`su -c "runmqsc QMGR < /home/rob/query_queue.txt" -m "mqm"`
Run Code Online (Sandbox Code Playgroud)
但是,我的问题是这些命令是由sudoers文件中的用户作为shell脚本的一部分运行的.但是,显然sudo su要求运行它的用户的密码.
我需要做的是将密码传递给sudo su,以便脚本自动运行.我怎样才能做到这一点?
ps:我无法更改运行"runmqsc"的权限...它必须作为用户mqm运行,需要从root用户切换到.
n.s*_*.st 14
来自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.
Run Code Online (Sandbox Code Playgroud)
因此,虽然它违背了所有安全原则,但echo 'password' | sudo -S su [...]应该有效.
或者,您可以使脚本只能由root写入,并添加以下内容/etc/sudoers以允许用户johndoe使用root权限运行它而无需输入密码:
johndoe ALL = NOPASSWD: /full/path/to/your/script
Run Code Online (Sandbox Code Playgroud)
只能由root写入的部分对于防止johndoe修改脚本和以root身份执行任意命令非常重要.
| 归档时间: |
|
| 查看次数: |
28761 次 |
| 最近记录: |