2018-9-30 19:31:41 星期日
今天遇到一個問題, 給gitlab配置webhook的時候, 一個目錄總是不能正確執行git pull 命令, 無任何輸出, 根據之前經驗, 感覺是權限的問題
因為hook觸發的腳本是以nginx用戶來執行 git pull 的
於是我就切換成nginx 在項目目錄里手動執行 git pull, 但是出錯了, 切換不了....
網上找了一大堆解決辦法, 終於解決了, 總結在下邊:
切換到root用戶:
1. 看/home下有沒有nginx目錄, 如果沒有就創建, 並執行 cp -a /etc/skel/. /home/nginx 將一些命令和文件復制到這里, 給nginx用
2. 執行 chown -R nginx:nginx /home/nginx 把復制過去的這些東西的所有者都改成nginx, 如果有必要就改一下訪問權限 chmod
3. 執行 usermod -d /home/nginx nginx 設置nginx的用戶目錄為/home/nginx, 這樣一旦切換為nginx用戶, 他就會去/home/nginx目錄下去加載相關的東西
4. 切換到root用戶, 執行 usermod -s /bin/bash nginx 讓他可以執行shell命令
5. 如果有必要, 去root的.ssh下把 id_rsa和id_rsa.pub兩個文件也復制到/home/nginx/.ssh目錄下, 注意訪問權限跟root一樣