diff --git a/config/config.sample.php b/config/config.sample.php index 874fbc04e5..9a5648c95d 100644 --- a/config/config.sample.php +++ b/config/config.sample.php @@ -728,6 +728,13 @@ $CONFIG = array( */ 'logfile' => '/var/log/nextcloud.log', +/** + * Log file mode for the Nextcloud loggin type in octal notation. + * + * Defaults to 0640 (writeable by user, readable by group). + */ +'logfilemode' => 0640, + /** * Loglevel to start logging at. Valid values are: 0 = Debug, 1 = Info, 2 = * Warning, 3 = Error, and 4 = Fatal. The default value is Warning. diff --git a/lib/private/Log/File.php b/lib/private/Log/File.php index c881c6dd9d..6810e2598c 100644 --- a/lib/private/Log/File.php +++ b/lib/private/Log/File.php @@ -50,6 +50,8 @@ use OCP\ILogger; class File implements IWriter, IFileBased { /** @var string */ protected $logFile; + /** @var int */ + protected $logFileMode; /** @var SystemConfig */ private $config; @@ -67,6 +69,7 @@ class File implements IWriter, IFileBased { } } $this->config = $config; + $this->logFileMode = $config->getValue('logfilemode', 0640); } /** @@ -134,8 +137,8 @@ class File implements IWriter, IFileBased { } $entry = json_encode($entry, JSON_PARTIAL_OUTPUT_ON_ERROR); $handle = @fopen($this->logFile, 'a'); - if ((fileperms($this->logFile) & 0777) != 0640) { - @chmod($this->logFile, 0640); + if ($this->logFileMode > 0 && (fileperms($this->logFile) & 0777) != $this->logFileMode) { + @chmod($this->logFile, $this->logFileMode); } if ($handle) { fwrite($handle, $entry."\n");