#28812 [Fbk->Opn]: getgid/getuid usage

From: Date: Thu, 17 Jun 2004 14:26:34 +0000
Subject: #28812 [Fbk->Opn]: getgid/getuid usage
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-61032@lists.php.net to get a copy of this message
ID: 28812 User updated by: liquid at haveheart dot com Reported By: liquid at haveheart dot com -Status: Feedback +Status: Open Bug Type: *Directory/Filesystem functions Operating System: linux PHP Version: 4.3.6 New Comment: basically, it boils down to this. the real id is the uid of user who actually ran the process. the effective id is the uid that is assigned to new files (any file that would be created), is used (as the owner check) to check file access. the real id is also used to compare against the effective id and is the only match that is allowed to kill(1) the process. also, just for clarity, when getgroups(2) is used... it is undefined (based on different unix variants) as to whether the effective gid is returned. following is an exert from man 2 getgroups on linux. getgroups Up to size supplementary group IDs are returned in list. It is unspecified whether the effective group ID of the calling process is included in the returned list. (Thus, an application should also call getegid(2) and add or remove the resulting value.) If size is zero, list is not modified, but the total number of supplementary group IDs for the process is returned. also, yes.. getegid/geteuid are posix and bsd 4.3 defined, so they are implemented everywhere. hope this helps. Previous Comments: ------------------------------------------------------------------------ [2004-06-17 09:08:18] derick@php.net WHy is this needed? And do you know for sure that all Unix-like operating systems have this systemcall? ------------------------------------------------------------------------ [2004-06-17 01:44:46] liquid at haveheart dot com Description: ------------ in a lot of the code, php does checks using getuid or getgid. one should actually be checking with geteuid and getegid, especially in situations where you are looking at getgroups. one might look at ext/standard/filestat.c for examples (FS_IS_W st_mode checks as an example). an example function that is potentially affected by this is is_writeable('filename') when combined with the User and Group directives in apache's httpd.conf file. ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=28812&edit=1

« previous php.bugs (#61032) next »