首页 > 解决方案 > 如何通过 SSH 将 Sudo 与 Jenkins bash 脚本一起使用?

问题描述

我有一台物理机 (Win7) 和一台虚拟机 (Red Hat) 共享一个网络。我正在使用 Jenkins 的 SSH 插件将 bash 脚本作为 Jenkins 作业执行,以将应用程序从物理机部署到虚拟机。

由于我希望在其上执行脚本的机器上的安全策略,我无法使用 Root 用户,而是仅限于使用具有 sudo 访问权限的标准用户。

但是,我希望脚本能够不间断地运行(我认为 Jenkins 甚至不允许您在运行 bash 脚本时输入用户密码?而且,这似乎不是最佳实践)。

是否有任何方法可以绕过脚本的 sudo 请求或配置,以使该进程以我希望的方式运行?

标签: linuxbashjenkinssshredhat

解决方案


您可以在;中使用NOPASSWD指令 /etc/sudoers请参阅sudoers 手册页

如果这不可能,您始终可以使用expect将密码(存储在帐户中的某处)提供给 sudo 进程。这也可能违反您的安全策略。您需要与制定政策的人交谈,以获取有关如何使这些工作自动化(“数字化转型”等)的建议。


推荐阅读