From ac88bcbd5f03419e149dac2a080f8f206876547e Mon Sep 17 00:00:00 2001 From: Johannes Leuker Date: Tue, 8 Dec 2020 15:12:04 +0100 Subject: [PATCH] Add 'allow Symlinks' as an option to config.php Signed-off-by: Johannes Leuker --- config/config.sample.php | 9 +++++++++ lib/private/Files/Storage/Local.php | 5 ++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/config/config.sample.php b/config/config.sample.php index 1560fe8ac3..216a32c8eb 100644 --- a/config/config.sample.php +++ b/config/config.sample.php @@ -1619,6 +1619,15 @@ $CONFIG = [ */ 'minimum.supported.desktop.version' => '2.0.0', +/** + * Option to allow local storage to contain symlinks. + * WARNING: Not recommended. This would make it possible for Nextcloud to access + * files outside the data directory and could be considered a security risk. + * + * Defaults to ``false`` + */ +'localstorage.allowsymlinks' => false, + /** * EXPERIMENTAL: option whether to include external storage in quota * calculation, defaults to false. diff --git a/lib/private/Files/Storage/Local.php b/lib/private/Files/Storage/Local.php index 5d0ce596b1..81d1d083eb 100644 --- a/lib/private/Files/Storage/Local.php +++ b/lib/private/Files/Storage/Local.php @@ -58,8 +58,6 @@ class Local extends \OC\Files\Storage\Common { protected $dataDirLength; - protected $allowSymlinks = false; - protected $realDataDir; public function __construct($arguments) { @@ -441,7 +439,8 @@ class Local extends \OC\Files\Storage\Common { $fullPath = $this->datadir . $path; $currentPath = $path; - if ($this->allowSymlinks || $currentPath === '') { + $allowSymlinks = \OC::$server->getConfig()->getSystemValue('localstorage.allowsymlinks', false); + if ($allowSymlinks || $currentPath === '') { return $fullPath; } $pathToResolve = $fullPath;