我看到许多开源项目这样的逻辑:为什么很多服务器改变它的uid和gid,有什么好处?
if (setuid() == 0) {
if (setgid(ccf->group) == -1) {
...
if (initgroups(ccf->username, ccf->group) == -1) {
我对此有2个问题:
- 什么的benifit切换到其它GID和UID?
- 什么是
initgroups
?海事组织,改变gid和uid,setuid()
和setgid()
就足够了。
@FrédéricHamidi,initgroups呢,为什么这里需要? – cpuer 2011-06-03 06:02:48
@cpuer,如果还不是这样的话,可能会将该用户设置为该组的成员。看到我更新的答案。 – 2011-06-03 06:07:33
但是当'setgid()'成功时,nginx调用'initgroups' .. – cpuer 2011-06-03 06:08:58