Cron has to be executed with the correct user - fixes 13912 and others

This commit is contained in:
Thomas Müller 2015-04-01 10:31:48 +02:00
parent 0edeefd031
commit 5ebd3a9e89
1 changed files with 16 additions and 0 deletions

View File

@ -73,6 +73,22 @@ try {
// set to run indefinitely if needed
set_time_limit(0);
// the cron job must be executed with the right user
if (!OC_Util::runningOnWindows()) {
if (!function_exists('posix_getuid')) {
echo "The posix extensions are required - see http://php.net/manual/en/book.posix.php" . PHP_EOL;
exit(0);
}
$user = posix_getpwuid(posix_getuid());
$configUser = posix_getpwuid(fileowner(OC::$SERVERROOT . '/config/config.php'));
if ($user['name'] !== $configUser['name']) {
echo "Console has to be executed with the same user as the web server is operated" . PHP_EOL;
echo "Current user: " . $user['name'] . PHP_EOL;
echo "Web server user: " . $configUser['name'] . PHP_EOL;
exit(0);
}
}
$config = OC::$server->getConfig();
$instanceId = $config->getSystemValue('instanceid');
$lockFileName = 'owncloud-server-' . $instanceId . '-cron.lock';