A workaround for running deja-dup as root in Ubuntu 20.04
Posted on Mon 13 July 2020 in hints
I found a workaround for the Duplicity fails to start issue where 'sudo deja-dup'
would fail with the python stacktrace mentioned in the launchpad ticket.
The ticket was not very useful, so I started looking at the various files in the stacktrace and saw line from /usr/lib/python3/dist-packages/duplicity/backends/giobackend.py was within an "if u'DBUS_SESSION_BUS_ADDRESS' not in os.environ"
block.
So I wondered what would happen if I let that environment variable pass into the sudo environment. I tried 'sudo -E deja-dup'
as per preserve the environment. This didn't result in a stacktrace, but it ended up running the backup as the normal non-root user, probably because the preserved environment included the USER and HOME variables along with the DBUS_SESSION_BUS_ADDRESS variable.
Then I tried preserving just DBUS_SESSION_BUS_ADDRESS with 'sudo --preserve-env=DBUS_SESSION_BUS_ADDRESS deja-dup'
, it worked as expected.
So the hint here is that when presented with a stacktrace don't be afraid to "Use the Source, Jean Luc".