diff --git a/nixos/modules/services/backup/postgresql-backup.nix b/nixos/modules/services/backup/postgresql-backup.nix index 2ec78ce6f2cf..f9f9568faa5c 100644 --- a/nixos/modules/services/backup/postgresql-backup.nix +++ b/nixos/modules/services/backup/postgresql-backup.nix @@ -20,6 +20,8 @@ let ''; script = '' + umask 0077 # ensure backup is only readable by postgres user + if [ -e ${cfg.location}/${db}.sql.gz ]; then ${pkgs.coreutils}/bin/mv ${cfg.location}/${db}.sql.gz ${cfg.location}/${db}.prev.sql.gz fi diff --git a/nixos/tests/postgresql.nix b/nixos/tests/postgresql.nix index f1f09277f342..d2ea0aa899f8 100644 --- a/nixos/tests/postgresql.nix +++ b/nixos/tests/postgresql.nix @@ -53,6 +53,7 @@ let # Check backup service $machine->succeed("systemctl start postgresqlBackup-postgres.service"); $machine->succeed("zcat /var/backup/postgresql/postgres.sql.gz | grep 'ok'"); + $machine->succeed("stat -c '%a' /var/backup/postgresql/postgres.sql.gz | grep 600"); $machine->shutdown; '';