From: Thomas Müller Date: Wed, 1 Apr 2015 08:31:48 +0000 (+0200) Subject: Cron has to be executed with the correct user - fixes 13912 and others X-Git-Tag: v7.0.6RC1~13^2 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=6ebe04f8d4e2720ef586788d3bae5fc1d54e9a6e;p=nextcloud-server.git Cron has to be executed with the correct user - fixes 13912 and others --- diff --git a/cron.php b/cron.php index b3ba9605d4f..d62650bbe9d 100644 --- a/cron.php +++ b/cron.php @@ -90,6 +90,22 @@ try { } if (OC::$CLI) { + // 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); + } + } + // Create lock file first TemporaryCronClass::$lockfile = OC_Config::getValue("datadirectory", OC::$SERVERROOT . '/data') . '/cron.lock';