How to give transmission-daemon the needed permissions?

I’ve migrated to transmission-daemon from the GTK client — after enabling the systemd service (systemctl enable transmission-daemon.service) it appears that Transmission is now running under its own user. The config files are located in /var/lib/transmission/.config/ instead of the initial ~/.config/transmission-daemon/ path (I briefly ran under my own user and have written the config files).

After moving the .json configuration files and torrent directories resume/torrents with a simple cp -r command the daemon appears not to read the folders and can’t write to /mnt/media (I added one test torrent via the web UI) or monitor the watch directory ~/Downloads. Also the main file became unreadable after accidentally moving it elsewhere and back:

Couldn't read "/var/lib/transmission/.config/transmission-daemon/settings.json": Permission denied

In essence I want to restore sensible permissions to the daemon’s own directory and allow reading the /mnt/media data directory and monitor ~/Downloads for .torrent files. Running as a separate user over my own is strongly preferred as remote access is enabled.


As for the setup, I mainly followed the Arch wiki.

You can use facls to allow rw perms for the transmission user.

Generally, the syntax is: setfacl -m "user:<transmission-user>:rw" /path/to/file.

You’ll also want to run the same command with -d on the parent folder if you want future files created in that directory to be read/write by the transmission user as well.

Sadly returns:

setfacl: Option -m: Invalid argument near character 6

Is the feature supported on Fedora?

I eventually ran:

sudo chown -R user:transmission /mnt/media
chmod -R 775 /mnt/media
sudo chown -R transmission /var/lib/transmission/.config/
sudo chown -R user:transmission ~/Downloads/

Can’t advocate in any way. The client picked up the config and torrent files, but the watch-dir may not work.

It is. Replace <transmission-user> with the actual user for the transmission process. Based on your last post:

setfacl -m "user:transmission:rw" /path/to/file

1 Like