我看到許多開源項目這樣的邏輯:爲什麼很多服務器改變它的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