Skip to content

Commit

Permalink
feat: check datadirectory owner instead of config.php owner
Browse files Browse the repository at this point in the history
Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
  • Loading branch information
Dreamsorcerer authored and skjnldsv committed Feb 28, 2024
1 parent 455a209 commit ae3b9cc
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 11 deletions.
16 changes: 9 additions & 7 deletions console.php
Original file line number Diff line number Diff line change
Expand Up @@ -59,18 +59,20 @@ function exceptionHandler($exception) {

set_exception_handler('exceptionHandler');

$config = \OC::$server->getConfig();

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;
$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 "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;
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);
}

Expand All @@ -90,7 +92,7 @@ function exceptionHandler($exception) {
}

$application = new Application(
\OC::$server->getConfig(),
$config,
\OC::$server->get(\OCP\EventDispatcher\IEventDispatcher::class),
\OC::$server->getRequest(),
\OC::$server->get(\Psr\Log\LoggerInterface::class),
Expand Down
8 changes: 4 additions & 4 deletions cron.php
Original file line number Diff line number Diff line change
Expand Up @@ -115,11 +115,11 @@
}

$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);
}

Expand Down

0 comments on commit ae3b9cc

Please sign in to comment.