使用A帐户提交的Git到中心仓库,再部署到网站目录,文件的权限还是A的,但是网站文件权限一般设置一个www帐户,只用来做这个,如果这个A帐户是root的话,那么这些文件的权限就都是最高权限了,可能会严重影响到安全问题。是专门给Git配置个git用户来干这个事呢,还是直接用www?还是其它方式?

1 cabbala Jan 2, 2013 via Android rsync + git hooks |
2 cute Jan 2, 2013 via iPhone 也遇到这个问题 |
3 summic Jan 2, 2013 |
4 summic Jan 2, 2013 怎么贴 gist 来着? |
5 summic Jan 2, 2013 <script src="https://gist.github.com/4433947.js"></script> |
6 harmy Jan 2, 2013 用http开头就能正常显示gist |
7 panxianhai Jan 2, 2013 |
8 anyforever OP 以上各位,我明白是用git钩子来做的,我本帖的问题专门指的权限分配如何做更优 @summic @panxianhai 你那里www-data的帐户与网站目录下的文件所属用户是同一个么?nginx下的,一般配置成www |
9 Kymair Jan 2, 2013 试试专门弄一个group把git和www的用户都塞进去,然后用group权限来管理? *nix的文件权限系统确实有些古老了... |
10 summic Jan 3, 2013 @anyforever 我的nginx 是给的 www-data 用户 |
11 daweiba Jan 3, 2013 root 用户不会影响安全问题 只是有可能会令其他用户无法正常的操作这些文件 我们这边目前是root用户提交的 一切运行正常 有洁癖的话 把设置www设置密码(没有密码的用户不能登录) 然后把测试环境设置成公钥登陆 最后取消密码 以后都用www用户提交push到服务器上即可 |
12 anyforever OP @summic 突然又想到一个,如果是pull到远程服务器,就没办法cd了。还有就是部署到N台服务器的话。 |
14 anyforever OP @daweiba www用户一般给设置nologin了,如果要让它登陆,那要多设置不少权限来控制吧 |
15 summic Jan 3, 2013 @anyforever 我们多台服务器,会有一台机器做发布服务器,pull之后rsync |
16 daweiba Jan 3, 2013 @anyforever 没有密码,默认就是不能通过密码登录的,你可以建一个账号试一下。 先建立密码只是为了设置公钥,设置完了就可以通过公钥登陆,而不用通过口令登陆了。 这时候就可以删除密码了。 这样其他人也是无法通过口令登陆www用户的。 @gamexg 你可以试下ubuntu下sudo 能否设定SUID,我这边用的CentOS 新建用户默认没有sudo权限,无法测试。 如果sudo无法设定SUID的话 ,那么就没有问题了。 因为这样的话只有root用户才能设置SUID,如果人家得到你root用户权限了,也就没有必要再去设置SUID了 如果sudo可以设置SUID , 那么用上一种方法即可。 |
17 sdlearn Mar 1, 2018 老铁,这个问题杂解决的,我也在这里蛋疼了 |
18 anyforever OP @sdlearn 用 www 用户 git push,或者在钩子里 pull 完,更改文件权限 |