I am using restic for backups. I would like to use a non-root user to backup my docker volumes. As the files in the volumes have very different access rights and groups, accessing them is difficult without root rights.

Chowning the files doesn’t help sustainably, as new files are created with a different group again.

What recommendation do you have to smoothly backup files from the docker volumes?

Tags #restic #backup #docker

  • Illecors@lemmy.cafe
    link
    fedilink
    English
    arrow-up
    9
    ·
    7 months ago

    You could just have a dedicated backup user that is in all the groups of you docker volumes.

    • BearOfaTime@lemm.ee
      link
      fedilink
      English
      arrow-up
      9
      arrow-down
      1
      ·
      7 months ago

      This is a common strategy in enterprise, they’re called Service Accounts.

      Rather than let all services/apps run under one admin account (windows) or a single account with root (*Nix), an account is created for each service/app, with only the minimum necessary permissions. These accounts are also limited, sometimes they’re local accounts on a given server (rather than a domain/directory account), usually with no login capability (so couldn’t run in a user context).

      This way you prevent a 3rd party service/app from having change access to other services/apps (in Windows services run as system by default, a terrible security hole). It also prevents a rogue admin from using such access to change other things (or if the service account credentials were stolen).

    • gitamar@feddit.deOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      7 months ago

      This might be a good idea. It would only work for files that allow read access for the group, but that should be fine

  • sudneo@lemmy.world
    link
    fedilink
    English
    arrow-up
    3
    ·
    7 months ago

    Add the DAC_READ_SEARCH capability to the restic binary (using setcap).This is what allows to read all files. Obviously this means being able to read all, all, files including shadow etc.

  • bellsDoSing@lemm.ee
    link
    fedilink
    English
    arrow-up
    2
    arrow-down
    1
    ·
    7 months ago

    You didn’t mention how big those volumes are and how frequently the data changes.

    Assuming it’s not that much data:

    • use tar to archive each volume first, while using proper options to preserve permissions and whatever else is important for your usecase
    • use restic to backup those archives
    • use a proper pruning strategy to not let your backups get too big:
      • I’m not that familiar with restic, but maybe you can backup those archives separately and apply a more aggressive pruning strategy just for them
      • simply might be needed, cause deduplication (AFAIK) might not be that great with backing up archives
      • but maybe if the volume data and the resulting archive doesn’t change that often, deduplication would be sufficient even with a not so aggressive pruning strategy
    • gitamar@feddit.deOP
      link
      fedilink
      English
      arrow-up
      3
      ·
      7 months ago

      Restic uses smart Delta backups, creating a tar before the restic process would defeat the purpose. The permission issue is the same, as I need to have access to the Files either way.