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 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog