keep file permissions and try to keep user/group on supported systems (fixes #1467)

This commit is contained in:
Stefan Breunig
2017-06-25 09:05:24 +02:00
parent 2d2778eabf
commit 52b042971a
3 changed files with 57 additions and 1 deletions

View File

@@ -652,7 +652,18 @@ func SaveConfig() {
log.Fatalf("Failed to close config file: %v", err)
}
err = os.Chmod(f.Name(), 0600)
var fileMode os.FileMode = 0600
info, err := os.Stat(ConfigPath)
if err != nil {
Debugf(nil, "Using default permissions for config file: %v", fileMode)
} else if info.Mode() != fileMode {
Debugf(nil, "Keeping previous permissions for config file: %v", info.Mode())
fileMode = info.Mode()
}
attemptCopyGroup(ConfigPath, f.Name())
err = os.Chmod(f.Name(), fileMode)
if err != nil {
Errorf(nil, "Failed to set permissions on config file: %v", err)
}