In a file system where the user's access to the files is dependent on being part of a specific group, setting the group id using setgid() does not allow the user to access the files if the default group is used.
For example, if a user is a member of three groups, users (513), sokl(10001), and ukjd(10002), if a certain path is set to grant access to group sokl and the gid is set to 513, then distmake processes do not have access to those files.
I have modified the code in bldserver.c to use initgroups rather than setgid() and that seems to have fixed the problem. The diff is attached.
Hope this is helpful.
Log in to post a comment.