diff options
author | John Molakvoæ <skjnldsv@users.noreply.github.com> | 2024-02-28 18:40:23 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-02-28 18:40:23 +0100 |
commit | 6fc9fec456f9f26c641203eae94b1070f82ca6f1 (patch) | |
tree | 288821b8453a59d1393c933052e6a496b3e1a06d | |
parent | f2f1074396b12be31f84a3db30f7e95c501c4aab (diff) | |
parent | 9123d6fffeec7bf20bea26a30121f578164d72bb (diff) | |
download | nextcloud-server-6fc9fec456f9f26c641203eae94b1070f82ca6f1.tar.gz nextcloud-server-6fc9fec456f9f26c641203eae94b1070f82ca6f1.zip |
Merge pull request #27613 from Dreamsorcerer/patch-2
-rw-r--r-- | console.php | 31 | ||||
-rw-r--r-- | cron.php | 8 |
2 files changed, 26 insertions, 13 deletions
diff --git a/console.php b/console.php index d30db9adb6e..68647a874c4 100644 --- a/console.php +++ b/console.php @@ -57,23 +57,36 @@ try { exit(1); } + $config = \OC::$server->getConfig(); set_exception_handler('exceptionHandler'); if (!function_exists('posix_getuid')) { echo "The posix extensions are required - see https://www.php.net/manual/en/book.posix.php" . PHP_EOL; exit(1); } - $user = posix_getuid(); - $configUser = fileowner(OC::$configDir . 'config.php'); - if ($user !== $configUser) { - echo "Console has to be executed with the user that owns the file config/config.php" . PHP_EOL; - echo "Current user id: " . $user . PHP_EOL; - echo "Owner id of config.php: " . $configUser . PHP_EOL; - echo "Try adding 'sudo -u #" . $configUser . "' to the beginning of the command (without the single quotes)" . PHP_EOL; - echo "If running with 'docker exec' try adding the option '-u " . $configUser . "' to the docker command (without the single quotes)" . PHP_EOL; + + // Check if the data directory is available and the server is installed + $dataDirectory = $config->getSystemValueString('datadirectory', \OC::$SERVERROOT . '/data'); + if ($config->getSystemValueBool('installed', false) && !is_dir($dataDirectory)) { + echo "Data directory (" . $dataDirectory . ") not found" . PHP_EOL; exit(1); } + // Check if the user running the console is the same as the user that owns the data directory + // If the data directory does not exist, the server is not setup yet and we can skip. + if (is_dir($dataDirectory)) { + $user = posix_getuid(); + $dataDirectoryUser = fileowner($dataDirectory); + if ($user !== $dataDirectoryUser) { + echo "Console has to be executed with the user that owns the data directory" . PHP_EOL; + echo "Current user id: " . $user . PHP_EOL; + echo "Owner id of the data directory: " . $dataDirectoryUser . PHP_EOL; + echo "Try adding 'sudo -u #" . $dataDirectoryUser . "' to the beginning of the command (without the single quotes)" . PHP_EOL; + echo "If running with 'docker exec' try adding the option '-u " . $dataDirectoryUser . "' to the docker command (without the single quotes)" . PHP_EOL; + exit(1); + } + } + $oldWorkingDir = getcwd(); if ($oldWorkingDir === false) { echo "This script can be run from the Nextcloud root directory only." . PHP_EOL; @@ -90,7 +103,7 @@ try { } $application = new Application( - \OC::$server->getConfig(), + $config, \OC::$server->get(\OCP\EventDispatcher\IEventDispatcher::class), \OC::$server->getRequest(), \OC::$server->get(\Psr\Log\LoggerInterface::class), @@ -115,11 +115,11 @@ try { } $user = posix_getuid(); - $configUser = fileowner(OC::$configDir . 'config.php'); - if ($user !== $configUser) { - echo "Console has to be executed with the user that owns the file config/config.php" . PHP_EOL; + $dataDirectoryUser = fileowner($config->getSystemValueString('datadirectory', \OC::$SERVERROOT . '/data')); + if ($user !== $dataDirectoryUser) { + echo "Console has to be executed with the user that owns the data directory" . PHP_EOL; echo "Current user id: " . $user . PHP_EOL; - echo "Owner id of config.php: " . $configUser . PHP_EOL; + echo "Owner id of the data directory: " . $dataDirectoryUser . PHP_EOL; exit(1); } |