php - git這樣設定是否會有安全風險?
曾经蜡笔没有小新
曾经蜡笔没有小新 2017-05-24 11:30:50
0
2
549

軟體版本

  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學習者快速成長!