Skip to content

Commit e2597d4

Browse files
author
Judah MW
committed
6628: Fix web backup dir permissions to allow web user mod/delete
1 parent cbea27e commit e2597d4

File tree

3 files changed

+9
-2
lines changed

3 files changed

+9
-2
lines changed

server/lib/classes/backup.inc.php

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -632,7 +632,14 @@ public static function downloadBackup($backup_format, $password, $backup_dir, $f
632632
elseif(file_exists($backup_dir.'/'.$filename) && file_exists($domain['document_root'].'/backup/') && !stristr($backup_dir.'/'.$filename, '..') && !stristr($backup_dir.'/'.$filename, 'etc')) {
633633
$success = copy($backup_dir.'/'.$filename, $domain['document_root'].'/backup/'.$filename);
634634
}
635+
if (file_exists($domain['document_root'].'/backup') && fileowner($domain['document_root'].'/backup') === 0) {
636+
// Fix old web backup dir permissions from before #6628
637+
chown($domain['document_root'].'/backup', $domain['system_user']);
638+
chgrp($domain['document_root'].'/backup', $domain['system_group']);
639+
$app->log('Fixed old directory permissions from root:root to '.$domain['system_user'].':'.$domain['system_group'].' for backup dir '.$domain['document_root'].'/backup/', LOGLEVEL_DEBUG);
640+
}
635641
if (file_exists($domain['document_root'].'/backup/'.$filename)) {
642+
// Change backup file permissions
636643
chgrp($domain['document_root'].'/backup/'.$filename, $domain['system_group']);
637644
chown($domain['document_root'].'/backup/'.$filename, $domain['system_user']);
638645
chmod($domain['document_root'].'/backup/'.$filename,0600);

server/plugins-available/apache2_plugin.inc.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -717,7 +717,7 @@ function update($event_name, $data) {
717717
if(!is_dir($data['new']['document_root'].'/cgi-bin')) $app->system->mkdirpath($data['new']['document_root'].'/cgi-bin');
718718
if(!is_dir($data['new']['document_root'].'/tmp')) $app->system->mkdirpath($data['new']['document_root'].'/tmp', 0770);
719719
if(!is_dir($data['new']['document_root'].'/webdav')) $app->system->mkdirpath($data['new']['document_root'].'/webdav');
720-
if(!is_dir($data['new']['document_root'].'/backup')) $app->system->mkdirpath($data['new']['document_root'].'/backup');
720+
if(!is_dir($data['new']['document_root'].'/backup')) $app->system->mkdirpath($data['new']['document_root'].'/backup', 0755, $username, $groupname);
721721

722722
if(!is_dir($data['new']['document_root'].'/.ssh')) {
723723
$app->system->mkdirpath($data['new']['document_root'].'/.ssh');

server/plugins-available/nginx_plugin.inc.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -561,7 +561,7 @@ function update($event_name, $data) {
561561
if(!is_dir($data['new']['document_root'].'/ssl')) $app->system->mkdirpath($data['new']['document_root'].'/ssl');
562562
if(!is_dir($data['new']['document_root'].'/cgi-bin')) $app->system->mkdirpath($data['new']['document_root'].'/cgi-bin');
563563
if(!is_dir($data['new']['document_root'].'/tmp')) $app->system->mkdirpath($data['new']['document_root'].'/tmp');
564-
if(!is_dir($data['new']['document_root'].'/backup')) $app->system->mkdirpath($data['new']['document_root'].'/backup');
564+
if(!is_dir($data['new']['document_root'].'/backup')) $app->system->mkdirpath($data['new']['document_root'].'/backup', 0755, $username, $groupname);
565565

566566
if(!is_dir($data['new']['document_root'].'/.ssh')) {
567567
$app->system->mkdirpath($data['new']['document_root'].'/.ssh');

0 commit comments

Comments
 (0)