linux - Git hooks 可能需要更高的权限

标签 linux node.js git githooks forever

我正在使用 node.js 作为我的网络服务器,并且我希望永远(或类似的东西)运行该服务器。

我还使用 git 来管理网站。我在服务器上有一个裸存储库,可以在本地计算机上推送/pull 。当我推送到存储库时,我希望存储库能够执行三件事。

  1. CD 到我的工作目录(在服务器上)
  2. 从裸存储库中提取工作目录
  3. 重新启动正在运行的网络服务器。

以下脚本似乎是我应该在我的裸存储库中用作 post-receive Hook 的脚本。

cd ~/site
git pull
sudo forever stopall
sudo forever start main.js

但是,我认为让 git hook 像这样使用 sudo 并不明智。该脚本需要提升才能在端口 80 上运行。

我应该怎么做?我的 git 接收后应该是什么样子?

谢谢!

最佳答案

好吧,对于我的特殊情况,出于安全原因,我不应该以 super 用户身份运行 Node 。我希望将其提升为在端口 80 上运行,但不需要提升为在端口 8000 上运行。

所以我将端口 80 转发到端口 8000,现在在端口 8000 上运行 Node 。它的工作方式仍然与之前相同。

我特别用来将端口 80 转发到 8000 的命令是

sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8000

关于linux - Git hooks 可能需要更高的权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22704455/

相关文章:

git 错误消息 : rebase_head does not exist

Github推送错误: unpack failed: index-pack abnormal exit

git - 如何在 Diff 的结果中导航

linux - Linux 3.19 中的 CPU 亲和性

linux - qdel 和 kill 命令的区别

linux - 在 bash (awk) 中导入新文件时删除点和斜杠

c - 某些程序在退出前无法从共享内存段分离后如何删除共享内存段?

javascript - 如何使 HTML/NodeJS 表单根据响应转到另一个表单,有点像 Google 表单的 "Go to section based on answer?"

mysql - 安装旧版本的 MySQL brew 报错

node.js - 编译 Node 给出 “No-old-style-declaration”标志错误