【问题标题】:Jenkins installation on Linux, executing shell command gives permission denied.在 Linux 上安装 Jenkins,执行 shell 命令给出权限被拒绝。
【发布时间】:2017-04-17 13:38:01
【问题描述】:
我已经在 linux 机器上安装了 jenkins 并进行了配置。
作为构建过程自动化的一部分,我想将我的战争形式从一个目录复制到另一个目录。我尝试使用 PRE BUILD ACTION 并执行 shell 命令。
cp /from 目录 /to 目录
构建失败,权限被拒绝。我尝试了几种方法,为我登录詹金斯的用户提供根级别权限。
没有任何效果。
无论我是否向正确的用户授予权限,我都不是。
任何帮助将不胜感激。
请注意,我是 LINUX/UNIX 新手。
【问题讨论】:
标签:
linux
shell
unix
jenkins
【解决方案1】:
要找出启动 Jenkins 的用户,请在预构建操作中使用 whoami 并查看构建日志以查看执行构建脚本的用户。它可能与拥有您试图让詹金斯将战争复制到其中的文件夹的用户不同。
您可以将该用户添加到拥有该文件夹的用户所在的同一组中,而不是将 jenkins 运行的用户设置为 root 用户(这是一个安全风险,因为现在您的 jenkins 脚本可以执行特权操作)。
假设我在 jenkins 脚本中运行了whoami,结果用户是user1,而拥有您试图将战争复制到的文件夹的用户user2。您可能希望将 user1 添加到 user2 所在的同一组中,并修改文件夹权限以允许修改同一组中的人员。
要将user1 添加到与user2 相同的组中:
usermod -a -G user2 user1
然后修改你要复制到的文件夹的权限:
chmod g+w /path/to/directory