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

軟體版本

  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外面,這樣完全不會影響惹。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板