每当有人推动时,我需要Jenkins执行一些shell命令。其中一个是grunt prod
,但只有当我以root
用户身份执行时,它才有效。如果我尝试将其用作jenkins
用户,我会得到以下内容:
[4mRunning "ngAnnotate:production" (ngAnnotate) task[24m
[33mWarning: Unable to write "public/dist/application.js" file (Error code:
EACCES).
Use --force to continue.[39m
任何人都知道如何解决这个问题?
谢谢!
答案 0 :(得分:0)
您可以将您的jenkins用户jenkins
添加到/etc/sudoers
,并允许其执行sudo
而无需通过以下方式输入密码:
jenkins ALL = NOPASSWD: /bin/sh, /path/to/your/script
然后您可以使用sudo
来运行脚本:
sudo /path/to/your/script
如果您必须与用户root
一起执行,我认为首先您应该允许root
通过SSH
登录,然后使用Jenkins SSH插件以root
登录执行你的脚本。
希望它有所帮助。