php - git这样配置是否会有安全风险?
曾经蜡笔没有小新
曾经蜡笔没有小新 2017-05-24 11:30:50
0
2
548

软件版本

  1. CentOS 6.8

  2. PHP 7.0.7

  3. Git 1.7.1

环境配置

  1. 在目录/home/work/repositories/下创建了一个裸仓test.git

  2. git clone到网站根目录/home/work/www/

  3. PHP运行用户为www-data/home/work/www/目录的权限为755,属于www-data用户和www-data用户组

  4. 配置了post-receive钩子,开发环境执行git push的时候,自动到/home/work/www/test目录下执行git pull操作

    #!/bin/sh cd /home/work/www/test sudo -u www-data env -i git pull

问题描述

  1. 当完成上述配置的时候,开发环境执行git push,出现了如下报错

    Counting objects: 3, done. Delta compression using up to 8 threads. Compressing objects: 100% (3/3), done. Writing objects: 100% (3/3), 790 bytes | 0 bytes/s, done. Total 3 (delta 1), reused 0 (delta 0) remote: sudo: no tty present and no askpass program specified remote: Gogs: Internal error To ssh://xxx/test.git 6250615..3e4555d master -> master
  2. 按照网上的教程,在/etc/sudoers里面加了这行

    %git ALL=(ALL) NOPASSWD: ALL
  3. 按照这样配置后,每次git push之后也都会到/home/work/www/test目录下执行git pull操作,达到了预期的效果。

想请教下大家,按照上面的配置,会不会有什么安全风险或者配置方面的漏洞?
谢谢!

曾经蜡笔没有小新
曾经蜡笔没有小新

全部回复 (2)
伊谢尔伦

个人觉得在生产服务器放代码(包括 git 仓库)是不大好的,尤其还放在 web 目录里面,一旦出现一些权限问题,很有可能代码被拖

    巴扎黑

    其实你可以把php的入口文件和.git文件夹分开,这样就可以了呀。
    像Laravel,入口文件在public里,.git在public外面,这样完全不会影响惹。

      最新下载
      更多>
      网站特效
      网站源码
      网站素材
      前端模板
      关于我们 免责声明 Sitemap
      PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!