vita2333_瓶子 2018-12-06 13:47 采纳率: 0%
浏览 810

webhook问题:如果不想给www用户项目文件的修改权限,要怎么实现webhook自动部署?

RT,常规webhook部署方式是:

1.本地git push代码后,请求webhook地址

2.服务器以www.www用户执行git pull 更新代码

我的网站用户为usertest,分组为www,权限为640。www用户只有读权限没有写权限。
为了安全方面的原因,我不想给www用户修改网站项目的权限,那么我要怎么要实现webhook自动部署呢?

可以以www用户请求webhook地址,然后切换成其他用户吗?这样好像也不太安全。。。

自己的基础很差,想的也多,知道的少,望大神指点!

  • 写回答

1条回答

  • 尘缘.. 全栈领域新星创作者 2023-05-02 11:40
    关注
    1. 使用sudo命令:在服务器上创建一个新用户,将其加入到www组中。在该用户的家目录下放置你的项目文件,并使用sudo运行git pull命令以更新代码。然后,将Webhook地址直接指向执行sudo git pull命令的脚本或命令即可。这样可以避免直接将修改权限分配给www用户,同时还能保证更新的权限。

    2. 使用Git hook: 在项目的.git/hooks目录下通过Shell脚本编写post-receive钩子。在将代码push到服务器时,它会自动触发并执行相应的操作,这样就不需要外部的Webhook工具了。对于权限问题,可以通过设置该脚本的用户和用户权限来控制。

    3. 使用自定义Shell脚本: 在服务器上创建一个新的Shell脚本,并赋予执行权限。在该脚本中执行筛选有效payload数据,并切换至其他有合适权限的用户再进行代码更新和部署。通过配置Webhook的执行路径和传递参数,可以指定执行该脚本。

    总结一下,在保证安全性的基础上实现Webhook自动部署可以采取以上几种方式。其中方案的选择应考虑到自身项目的需求和实际情况。比如当前项目的规模,安全性要求,是否有内部技术人员等等都是需要考虑到的因素。

    评论

报告相同问题?

悬赏问题

  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作