Change daemon user
Change daemon user
Hi,
I've just upgraded my Ubuntu distro from 12.04 LTS to 13.04. After the upgrade, I realized that transmission-daemon is now running as the user "debian-transmission", and not as the user "joachim" that I wanted it to run as.
I looked in the init.d/transmission-daemon, but can't find the USER variable anymore. I tried to create it, but it doesn't seem to work.
Is it possible to run transmission as another user in Ubuntu 13.04?
Thank you for your time,
Joachim
I've just upgraded my Ubuntu distro from 12.04 LTS to 13.04. After the upgrade, I realized that transmission-daemon is now running as the user "debian-transmission", and not as the user "joachim" that I wanted it to run as.
I looked in the init.d/transmission-daemon, but can't find the USER variable anymore. I tried to create it, but it doesn't seem to work.
Is it possible to run transmission as another user in Ubuntu 13.04?
Thank you for your time,
Joachim
-
blacke4dawn
- Posts: 552
- Joined: Sun Dec 13, 2009 10:44 pm
Re: Change daemon user
Didn't Ubuntu change to upstart for init handling, and thus hardly use the init.d directory anymore?
Anyway, if they still use an init-script for Transmission then technically it is still be possible but maybe not as straightforward as it was before. I believe Ubuntu (and other .deb based distros) use the /etc/default(s) directory for user supplied config changes to init-scripts, it should source it from the init-script so look for a line that starts with either "source" or just a dot and then a file under /etc/<some folder>.
By the way, this is an issue with Ubuntu them self since they are the ones who put together that specific package and the init-script in it, not the Transmission devs.
Anyway, if they still use an init-script for Transmission then technically it is still be possible but maybe not as straightforward as it was before. I believe Ubuntu (and other .deb based distros) use the /etc/default(s) directory for user supplied config changes to init-scripts, it should source it from the init-script so look for a line that starts with either "source" or just a dot and then a file under /etc/<some folder>.
By the way, this is an issue with Ubuntu them self since they are the ones who put together that specific package and the init-script in it, not the Transmission devs.
Re: Change daemon user
The solution to this is quite simple, though it took me quite a few hours of searching to figure it out.
1. Stop transmission:
2. Open the transmission-daemon configuration file:
Change the userid from debian-transmission to the desired user (USER):
3. Change ownership of the settings.json file and the contents of /var/lib/transmission-daemon:
4. Start transmission:
And that should be it. My transmission is now running successfully as the xbmc user on my HTPC.
1. Stop transmission:
Code: Select all
sudo service transmission-daemon stop2. Open the transmission-daemon configuration file:
Code: Select all
sudo gedit /etc/init/transmission-daemon.confChange the userid from debian-transmission to the desired user (USER):
Code: Select all
setuid debian-transmissionCode: Select all
ssetuid USER3. Change ownership of the settings.json file and the contents of /var/lib/transmission-daemon:
Code: Select all
sudo chown USER:USER settings.json*Code: Select all
sudo chown -R USER:USER /var/lib/transmission-daemon/downloadsCode: Select all
sudo chown -R USER:USER /var/lib/transmission-daemon/info4. Start transmission:
Code: Select all
sudo service transmission-daemon startAnd that should be it. My transmission is now running successfully as the xbmc user on my HTPC.
-
blacke4dawn
- Posts: 552
- Joined: Sun Dec 13, 2009 10:44 pm
Re: Change daemon user
DaftHonk wrote:3. Change ownership of the settings.json file and the contents of /var/lib/transmission-daemon:Code: Select all
sudo chown USER:USER settings.json*Code: Select all
sudo chown -R USER:USER /var/lib/transmission-daemon/downloadsCode: Select all
sudo chown -R USER:USER /var/lib/transmission-daemon/info
I would actually do:
Code: Select all
sudo chown -R USER:USER /var/lib/transmission-daemonSince in your examples you don't include the resume directory (unless that is the info-directory, which is not the standard name) and thus it would have a hard time keeping existing and new torrents "up to date". You also have a little more in there, like dht.dat and possible blocklists.
Re: Change daemon user
Hi, I know this post is old, but this is my "go-to-post" for whenever I need install transmission and need to change it's user to something other than debian-transmission. I recently updated transmission and nothing worked at all, spent hours trying to fix it and decided to erase everything and start from scratch.
Here's the thing, transmission never created the "transmission-daemon.conf" file. I thought that maybe they changed the file location so I searched my entire system for it, and nothing came up.
After hours of countless google searches, I finally came to a close solution. Edit /etc/init.d/transmission-daemon and change the USER to the one you want
Im no expert so I can not assure you that this IS the solution but since I did it, it has been writing the files with the correct user and everything has been working smoothly. Also DO NOT forget to change the folder and settings.json permissions as mentioned on the posts above.
Here's the thing, transmission never created the "transmission-daemon.conf" file. I thought that maybe they changed the file location so I searched my entire system for it, and nothing came up.
Code: Select all
/etc/init/transmission-daemon.confAfter hours of countless google searches, I finally came to a close solution. Edit /etc/init.d/transmission-daemon and change the USER to the one you want
Code: Select all
NAME=transmission-daemon
DAEMON=/usr/bin/$NAME
USER=joe
STOP_TIMEOUT=30
Im no expert so I can not assure you that this IS the solution but since I did it, it has been writing the files with the correct user and everything has been working smoothly. Also DO NOT forget to change the folder and settings.json permissions as mentioned on the posts above.
Re: Change daemon user
Besides trying all of the above fixes, I needed to change "debian-transmission" to the uid I wanted in "/lib/systemd/system/transmission-daemon.service" as well!
I hope this helps! I'm on Ubuntu 16.04 LTS
I hope this helps! I'm on Ubuntu 16.04 LTS
Re: Change daemon user
since this is also my go to post and i will always forget this abnd search for a solution
debian and ubuntu users need to edit /lib/systemd/system/transmission-daemon.service and the config file will be read from ~/.config/transmission-daemon/
debian and ubuntu users need to edit /lib/systemd/system/transmission-daemon.service and the config file will be read from ~/.config/transmission-daemon/
-
MrPotatoHead
- Posts: 2
- Joined: Tue Jan 02, 2018 5:12 pm
Re: Change daemon user
Updated for Ubuntu 16.04.3 LTS server.
How to change the Transmission daemon's username
0) Elevate your login to sudo
Now you don't have to type "sudo" at the beginning of every line.
1) Stop the Transmission service from running in the background. Otherwise, these edits won't stick.
2) Edit first init Transmission configuration file.
Find line that reads:
Edit username to whatever you desire. I'm not going to describe how to create a new user and set permissions as there are various methods. Make sure it's an existing user! It should be a system user. If you're using Webmin make sure the "No login allowed" box is checked. That prevents this user from having terminal access and getting elevated privileges (to root). You want to segment the control of this user just to Transmission.
3) Edit 2nd init Transmission configuration file.
Find these two lines. Change both the user ID (uid) and group ID (gid) as required. The user must already exist as a system user. The user group must already exist and the username must belong to it. I'm not certain if the user group must be the username's primary user group or not, but I strongly recommend using the primary group ID because I know some processes only look at the primary GID. You are less likely to have a problem if you follow that methodology.
4) Edit the daemon service configuration file.
Find this section and modify the username (default = debian-transmission).
5) Modify file permissions. Examine the current file or directory owners.
Look for the owner of the transmission-daemon directory.
Then check the files and folders inside.
The defaults are:
If the owners need to be changed, the command is
The command above will also set ownership correctly of any underlying files or sub-directories.
Now check the library file permissions:
If all the files and directories don't have permission set to your desired Transmission owner ID and group ID, you need to correct them. Change the username/group name to whatever you are using.
6) Reboot to be sure all the user/group name changes get picked up from the config files.
7) After the server restarts, login verify the Transmission daemon (background) process is running and no errors were encountered during initialization.
You should see something like this:
You should see the first 15 characters of the username running the process after the process ID (PID) number. Is it your expected username? If you see any errors, address them. Errors are typically caused by file permission conflicts.
If the daemon is not active, you made a mistake in one of the configuration files.
Here's another way to verify the user running the daemon process:
You'll get output that only shows seven characters of the username. If the name is longer, there will be a '+' symbol after the first seven characters. For example, if the user running Transmission is still debian-transmission (the default username), the output will be
If you verified your code changes and still don't see the output you expected, verify your username and group names in the CLI or in Webmin, and start the process over again.
PLEASE NOTE if you change the Transmission username, any subsequent files downloaded by Transmission will be owned by the new user and its primary group ID. You will need to take that into consideration and at the very least you'll want to be certain other processes (e.g. Sonarr) are able to access and manipulate the downloaded files. Don't forget to set file and directory permissions of Transmission's download directories to restrict access by group (e.g. 755 or 775), and ensure other programs you want to be capable of manipulating Transmission files are also a member of the Transmission daemon's new primary group id. They don't need to have their primary group ID changed. Simply add those users to the same group but as secondary group members. This can be accomplished easily via the Webmin GUI.
How to change the Transmission daemon's username
0) Elevate your login to sudo
Code: Select all
sudo -iNow you don't have to type "sudo" at the beginning of every line.
1) Stop the Transmission service from running in the background. Otherwise, these edits won't stick.
Code: Select all
service transmission-daemon stop2) Edit first init Transmission configuration file.
Code: Select all
nano /etc/init.d/transmission-daemonFind line that reads:
Code: Select all
USER=debian-transmissionEdit username to whatever you desire. I'm not going to describe how to create a new user and set permissions as there are various methods. Make sure it's an existing user! It should be a system user. If you're using Webmin make sure the "No login allowed" box is checked. That prevents this user from having terminal access and getting elevated privileges (to root). You want to segment the control of this user just to Transmission.
3) Edit 2nd init Transmission configuration file.
Code: Select all
nano /etc/init/transmission-daemon.confFind these two lines. Change both the user ID (uid) and group ID (gid) as required. The user must already exist as a system user. The user group must already exist and the username must belong to it. I'm not certain if the user group must be the username's primary user group or not, but I strongly recommend using the primary group ID because I know some processes only look at the primary GID. You are less likely to have a problem if you follow that methodology.
Code: Select all
setuid debian-transmission
setgid debian-transmission4) Edit the daemon service configuration file.
Code: Select all
nano /lib/systemd/system/transmission-daemon.serviceFind this section and modify the username (default = debian-transmission).
Code: Select all
[Service]
User=debian-transmission5) Modify file permissions. Examine the current file or directory owners.
Code: Select all
ls /etc/trans* -lhLook for the owner of the transmission-daemon directory.
Code: Select all
drwxrwsr-x 2 debian-transmission vpn 4.0K Jan 2 10:18 transmission-daemonThen check the files and folders inside.
Code: Select all
ls /etc/transmission-daemon -lhThe defaults are:
Code: Select all
total 8.0K
-rw-r--r-- 1 debian-transmission debian-transmission 303 Feb 20 2017 README.json
-rw------- 1 debian-transmission debian-transmission 2.4K Jan 2 10:18 settings.jsonIf the owners need to be changed, the command is
Code: Select all
chown debian-transmission:debian-transmission /etc/transmission-daemon -RThe command above will also set ownership correctly of any underlying files or sub-directories.
Now check the library file permissions:
Code: Select all
ls /var/lib/transmission-daemon -lhRIf all the files and directories don't have permission set to your desired Transmission owner ID and group ID, you need to correct them. Change the username/group name to whatever you are using.
Code: Select all
chown debian-transmission:debian-transmission /var/lib/transmission-daemon -R6) Reboot to be sure all the user/group name changes get picked up from the config files.
Code: Select all
reboot7) After the server restarts, login verify the Transmission daemon (background) process is running and no errors were encountered during initialization.
Code: Select all
sudo service transmission-daemon statusYou should see something like this:
Code: Select all
●transmission-daemon.service - Transmission BitTorrent Daemon
Loaded: loaded (/lib/systemd/system/transmission-daemon.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2018-01-02 10:18:01 CST; 1min 54s ago
Main PID: 1101 (transmission-da)
Status: "Idle."
Tasks: 4
Memory: 1.1M
CPU: 42ms
CGroup: /system.slice/transmission-daemon.service
└─1101 /usr/bin/transmission-daemon -f --log-error
Jan 02 10:18:00 mediaserver systemd[1]: Starting Transmission BitTorrent Daemon...
Jan 02 10:18:01 mediaserver systemd[1]: Started Transmission BitTorrent Daemon.You should see the first 15 characters of the username running the process after the process ID (PID) number. Is it your expected username? If you see any errors, address them. Errors are typically caused by file permission conflicts.
If the daemon is not active, you made a mistake in one of the configuration files.
Here's another way to verify the user running the daemon process:
Code: Select all
ps -ef | egrep '(transmission)' | grep -v `whoami` | grep -v root | head -n1 | awk '{print $1}'You'll get output that only shows seven characters of the username. If the name is longer, there will be a '+' symbol after the first seven characters. For example, if the user running Transmission is still debian-transmission (the default username), the output will be
Code: Select all
debian-+If you verified your code changes and still don't see the output you expected, verify your username and group names in the CLI or in Webmin, and start the process over again.
PLEASE NOTE if you change the Transmission username, any subsequent files downloaded by Transmission will be owned by the new user and its primary group ID. You will need to take that into consideration and at the very least you'll want to be certain other processes (e.g. Sonarr) are able to access and manipulate the downloaded files. Don't forget to set file and directory permissions of Transmission's download directories to restrict access by group (e.g. 755 or 775), and ensure other programs you want to be capable of manipulating Transmission files are also a member of the Transmission daemon's new primary group id. They don't need to have their primary group ID changed. Simply add those users to the same group but as secondary group members. This can be accomplished easily via the Webmin GUI.
-
MrPotatoHead
- Posts: 2
- Joined: Tue Jan 02, 2018 5:12 pm
Re: Change daemon user
One more thing.... the correct command to restart a stopped Transmission daemon in Ubuntu is
NOT
Code: Select all
service transmission-daemon restartNOT
Code: Select all
service transmission-daemon start