使用Git部署网站,大家是如何配置权限问题的?

2013-01-02 17:33:41 +08:00
 anyforever
使用A帐户提交的Git到中心仓库,再部署到网站目录,文件的权限还是A的,但是网站文件权限一般设置一个www帐户,只用来做这个,如果这个A帐户是root的话,那么这些文件的权限就都是最高权限了,可能会严重影响到安全问题。是专门给Git配置个git用户来干这个事呢,还是直接用www?还是其它方式?
10810 次点击
所在节点    git
18 条回复
cabbala
2013-01-02 17:36:16 +08:00
rsync + git hooks
cute
2013-01-02 19:15:42 +08:00
也遇到这个问题
summic
2013-01-02 19:26:48 +08:00
我是用 git hooks 这么做的:

https://gist.github.com/4433947
summic
2013-01-02 19:27:12 +08:00
怎么贴 gist 来着?
summic
2013-01-02 19:27:49 +08:00
<script src="https://gist.github.com/4433947.js"></script>
harmy
2013-01-02 19:32:32 +08:00
用http开头就能正常显示gist
panxianhai
2013-01-02 19:44:33 +08:00
anyforever
2013-01-02 20:58:23 +08:00
以上各位,我明白是用git钩子来做的,我本帖的问题专门指的权限分配如何做更优
@summic @panxianhai 你那里www-data的帐户与网站目录下的文件所属用户是同一个么?nginx下的,一般配置成www
Kymair
2013-01-02 21:55:05 +08:00
试试专门弄一个group把git和www的用户都塞进去,然后用group权限来管理?
*nix的文件权限系统确实有些古老了...
summic
2013-01-03 00:45:07 +08:00
@anyforever 我的nginx 是给的 www-data 用户
daweiba
2013-01-03 03:54:57 +08:00
root 用户不会影响安全问题
只是有可能会令其他用户无法正常的操作这些文件

我们这边目前是root用户提交的
一切运行正常

有洁癖的话 把设置www设置密码(没有密码的用户不能登录)
然后把测试环境设置成公钥登陆
最后取消密码

以后都用www用户提交push到服务器上即可
anyforever
2013-01-03 09:00:17 +08:00
@summic 突然又想到一个,如果是pull到远程服务器,就没办法cd了。还有就是部署到N台服务器的话。
gamexg
2013-01-03 09:16:41 +08:00
@daweiba 会不会被人用 SUID 权限的可执行文件来获得root权限?
anyforever
2013-01-03 10:02:38 +08:00
@daweiba www用户一般给设置nologin了,如果要让它登陆,那要多设置不少权限来控制吧
summic
2013-01-03 10:44:53 +08:00
@anyforever 我们多台服务器,会有一台机器做发布服务器,pull之后rsync
daweiba
2013-01-03 15:41:50 +08:00
@anyforever 没有密码,默认就是不能通过密码登录的,你可以建一个账号试一下。
先建立密码只是为了设置公钥,设置完了就可以通过公钥登陆,而不用通过口令登陆了。
这时候就可以删除密码了。
这样其他人也是无法通过口令登陆www用户的。

@gamexg 你可以试下ubuntu下sudo 能否设定SUID,我这边用的CentOS 新建用户默认没有sudo权限,无法测试。
如果sudo无法设定SUID的话 ,那么就没有问题了。
因为这样的话只有root用户才能设置SUID,如果人家得到你root用户权限了,也就没有必要再去设置SUID了

如果sudo可以设置SUID , 那么用上一种方法即可。
sdlearn
2018-03-01 02:24:43 +08:00
老铁,这个问题杂解决的,我也在这里蛋疼了
anyforever
2018-03-02 16:01:12 +08:00
@sdlearn 用 www 用户 git push,或者在钩子里 pull 完,更改文件权限

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/56413

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX