diff options
author | Frank Karlitschek <karlitschek@users.noreply.github.com> | 2022-08-15 18:04:03 +0200 |
---|---|---|
committer | Joas Schilling <coding@schilljs.com> | 2025-02-27 20:42:09 +0100 |
commit | 53c083ea2af3a7191e7cb64f0c3ddf91aea6422e (patch) | |
tree | 892b182307e8400ded935582306ae8d5ff720d0b | |
parent | 001b12c482c24d43226afeb4164d0fc410383819 (diff) | |
download | nextcloud-server-53c083ea2af3a7191e7cb64f0c3ddf91aea6422e.tar.gz nextcloud-server-53c083ea2af3a7191e7cb64f0c3ddf91aea6422e.zip |
fix(occ): Make it possible to run as rootocc-as-root
Signed-off-by: Frank Karlitschek <karlitschek@users.noreply.github.com>
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
-rwxr-xr-x | occ | 32 |
1 files changed, 27 insertions, 5 deletions
@@ -1,11 +1,33 @@ #!/usr/bin/env php <?php + +declare(strict_types=1); + +/** + * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + /** - * SPDX-FileCopyrightText: 2014 ownCloud, Inc. - * SPDX-FileCopyrightText: 2014 Olivier Paroz - * SPDX-FileCopyrightText: 2013 Thomas Müller <thomas.mueller@tmit.eu> - * SPDX-License-Identifier: AGPL-3.0-only + * Drop privileges when run as root */ +function dropPrivileges(): void { + if (posix_getuid() !== 0) { + return; + } + + $configPath = __DIR__ . '/config/config.php'; + $uid = fileowner($configPath); + if ($uid === false) { + return; + } + $info = posix_getpwuid($uid); + if ($info === false) { + return; + } + posix_setuid($uid); + posix_setgid($info['gid']); +} -//$argv = $_SERVER['argv']; +dropPrivileges(); require_once __DIR__ . '/console.php'; |