diff options
author | Johannes Leuker <j.leuker@hosting.de> | 2020-12-08 15:12:04 +0100 |
---|---|---|
committer | Johannes Leuker <j.leuker@hosting.de> | 2021-01-12 10:38:39 +0100 |
commit | ac88bcbd5f03419e149dac2a080f8f206876547e (patch) | |
tree | 3448cc127bc4bdc55276d123ccaa96b3dcfe291e | |
parent | 15924b8832fef063f78ba189b1f2d68049e36779 (diff) | |
download | nextcloud-server-ac88bcbd5f03419e149dac2a080f8f206876547e.tar.gz nextcloud-server-ac88bcbd5f03419e149dac2a080f8f206876547e.zip |
Add 'allow Symlinks' as an option to config.php
Signed-off-by: Johannes Leuker <j.leuker@hosting.de>
-rw-r--r-- | config/config.sample.php | 9 | ||||
-rw-r--r-- | 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 1560fe8ac39..216a32c8ebd 100644 --- a/config/config.sample.php +++ b/config/config.sample.php @@ -1620,6 +1620,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 5d0ce596b11..81d1d083eb8 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; |