How to change the default permissions of files created by transmission-daemon?

119,942

You can specify a umask in transmission's config file (/etc/transmission-daemon/settings.json). Umask we normally represent in octal, but unfortunately, json does not support that, so we have to convert it to base 10. You can do this in the shell like this:

$ echo $(( 8#022 ))
18

That's the default, but you probably want 002, which is the same in decimal, so

sudo editor /etc/transmission-daemon/settings.json
# change "umask": 18 to "umask": 2 and save
sudo reload transmission-daemon # tells transmission-daemon to re-read the config 
                                # file. This is important, otherwise, the changes
                                # will be lost

Another thing. If you change the group ownership of the download dir, and add the setgid bit on it, all files created in that directory will have the same group ownership as that directory.

sudo chgrp "$USER" /path/to/transmission/download/dir
sudo chmod g+s /path/to/transmission/download/dir

It will not affect files that already exist. See http://mywiki.wooledge.org/Permissions for more.

Share:
119,942

Related videos on Youtube

jpetersen
Author by

jpetersen

Updated on September 18, 2022

Comments

  • jpetersen
    jpetersen almost 2 years

    I have a machine running Ubuntu 12.04 server with transmission-daemon running to handle bitorrents. Everything works fine except the transmission-daemon creates files as the user/group, debian-transmission, and with 744 file permissions.

    • I would like to be able to delete and move these file from a samba share.

    • I considered changing the primary group of the user debian-transmission, but I was worried that might mess up access to other files.

    • I thought it would be better to change the default permission of new files created by debian-transmission to 774, and add myself to the group debian-transmission.

      I know that this can be done with a umask, but my understanding is that this would be set in the .profile file and since debian-transmission has no home folder I wan't sure if that file existed for the user. So how to I accomplish this?

      Suggestions or alternate solutions are welcome. Thanks in advance.

    • Admin
      Admin over 10 years
      Did that on Crystalubuntu, now I get error when starting transmission - "unable to set gid to 113 (Operation not permitted)". Any idea?
    • Admin
      Admin over 10 years
      I ended up with following as crontab entry <pre> #!/bin/sh trap "" 1 logfile=/dev/null exec > $logfile 2>&1 set -x while true; do a="$(inotifywait -q -r -e move -e create -e delete /data/completeddownloads/Movies --format %w%f)" chown -R nobody:nobody "$a" done </pre>
  • jpetersen
    jpetersen about 12 years
    Exactly what I needed. Thanks for including the setgid bit info, I forgot about those extra bits.
  • Fran Marzoa
    Fran Marzoa almost 8 years
    I think I am doing something wrong. I want to set the permissions like chmod 775, so I tried with that echo $(( 8#775 )) command and got 509, but it seems this just broken the transmission-daemon as it won't download anymore torrent files.
  • geirha
    geirha almost 8 years
    @Fran If you set the umask to 0775, then the files will get mode 002; The mask specifies what bits NOT to set on new files. You want the default umask (002) here, so that the files are created with mode 664, and directories with mode 775.
  • Fran Marzoa
    Fran Marzoa almost 8 years
    Oh! I've already realized that I've to put 002, but I didn't know why! Thanks a million for the clarification! :)
  • flith
    flith about 7 years
    It was the chmod g+s that I was missing. Thanks!