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
A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.
Rules:
Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.
No spam posting.
Posts have to be centered around self-hosting. There are other communities for discussing hardware or home computing. If it’s not obvious why your post topic revolves around selfhosting, please include details to make it clear.
Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.
Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).
No trolling.
Resources:
Any issues on the community? Report it using the report flag.
Questions? DM the mods!
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.
This is a great hint, thank you. I just discovered that the official restic docs recommend this method too
Thank you!
https://restic.readthedocs.io/en/latest/080_examples.html
Oh that’s good to see! Sorry if I didn’t expand much before, I was writing from my phone.
Good luck :)
You could just have a dedicated backup user that is in all the groups of you docker volumes.
This might be a good idea. It would only work for files that allow read access for the group, but that should be fine
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).
You didn’t mention how big those volumes are and how frequently the data changes.
Assuming it’s not that much data:
tar
to archive each volume first, while using proper options to preserve permissions and whatever else is important for your usecaserestic
, but maybe you can backup those archives separately and apply a more aggressive pruning strategy just for themRestic 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.