Add 'allow Symlinks' as an option to config.php

Signed-off-by: Johannes Leuker <j.leuker@hosting.de>
This commit is contained in:
Johannes Leuker 2020-12-08 15:12:04 +01:00
parent 15924b8832
commit ac88bcbd5f
2 changed files with 11 additions and 3 deletions

View File

@ -1619,6 +1619,15 @@ $CONFIG = [
*/ */
'minimum.supported.desktop.version' => '2.0.0', '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 * EXPERIMENTAL: option whether to include external storage in quota
* calculation, defaults to false. * calculation, defaults to false.

View File

@ -58,8 +58,6 @@ class Local extends \OC\Files\Storage\Common {
protected $dataDirLength; protected $dataDirLength;
protected $allowSymlinks = false;
protected $realDataDir; protected $realDataDir;
public function __construct($arguments) { public function __construct($arguments) {
@ -441,7 +439,8 @@ class Local extends \OC\Files\Storage\Common {
$fullPath = $this->datadir . $path; $fullPath = $this->datadir . $path;
$currentPath = $path; $currentPath = $path;
if ($this->allowSymlinks || $currentPath === '') { $allowSymlinks = \OC::$server->getConfig()->getSystemValue('localstorage.allowsymlinks', false);
if ($allowSymlinks || $currentPath === '') {
return $fullPath; return $fullPath;
} }
$pathToResolve = $fullPath; $pathToResolve = $fullPath;