Description: Fix chown in cache Ensure files in cache belong to www-data. phpBB tries to set them to the same owner than common.php, that belongs to root under Debian, and then set them world writable because it can’t change the owner (nor group) to root. Author: David Prévot Bug-Debian: http://bugs.debian.org/711172 Forwarded: not-needed Last-Update: 2013-09-28 --- a/includes/functions.php +++ b/includes/functions.php @@ -725,16 +725,16 @@ { global $phpbb_root_path, $phpEx; - // Determine owner/group of common.php file and the filename we want to change here - $common_php_owner = @fileowner($phpbb_root_path . 'common.' . $phpEx); - $common_php_group = @filegroup($phpbb_root_path . 'common.' . $phpEx); + // Determine owner/group of the filename we want to change here + $common_php_owner = (function_exists('posix_getpwnam')) ? @posix_getpwnam('www-data') : false; + $common_php_group = (function_exists('posix_getgrnam')) ? @posix_getgrnam('www-data') : false; // And the owner and the groups PHP is running under. $php_uid = (function_exists('posix_getuid')) ? @posix_getuid() : false; $php_gids = (function_exists('posix_getgroups')) ? @posix_getgroups() : false; // If we are unable to get owner/group, then do not try to set them by guessing - if (!$php_uid || empty($php_gids) || !$common_php_owner || !$common_php_group) + if (!$php_uid || empty($php_gids) || empty($common_php_owner) || empty($common_php_group)) { $_chmod_info['process'] = false; } @@ -742,8 +742,8 @@ { $_chmod_info = array( 'process' => true, - 'common_owner' => $common_php_owner, - 'common_group' => $common_php_group, + 'common_owner' => $common_php_owner[uid], + 'common_group' => $common_php_group[gid], 'php_uid' => $php_uid, 'php_gids' => $php_gids, );