I've just run into this one, too. Could the error message be changed into something more intelligible like "dir does not exist and could not be created"
And somehow (error message, documentation) add a hint at this ProtectHome option? What does it do anyway?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
It means the directories /home/, /root, and /run/user are inaccessible to the jamulus process. This is a bit of a belt-and-braces security measure to prevent the unlikely scenario that somebody worked out how to use Jamlus to read the content of those directories remotely.
Of course, it also means that if you are trying to save your recordings in any of those locations, it won't work. But you aren't running jamulus as root (are you? Not a good idea), and the jamulus user should have it's own directory in /home
So it probably looks like a good idea to add this to the server setup docs?
"If you intend to save recordings, do this on a path outside of the jamulus home directory, or remove ProtectHome (be aware that doing so is however a potential security risk) "
Last edit: Gilgongo 2021-01-30
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Thanks, didn't know this. I don't see any security problem there but what do I know... And maybe add a hint to this even in the error message? I had to google it and found this thread. Source code didn't help.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
My server runs as a service in Lubutu 18.04
/etc/systemd/system/jamulus.service:
[Unit]
Description=Jamulus-Server
After=network.target
[Service]
Type=simple
User=jamulus
Group=jamulus
NoNewPrivileges=true
ProtectSystem=true
ProtectHome=true
Nice=-20
IOSchedulingClass=realtime
IOSchedulingPriority=0
ExecStart=/usr/local/bin/Jamulus -F -s -n -e jamulusrock.fischvolk.de:22424 -o "Orvas;Kokkola;73" -w "I like 30 to 36 degrees" -R "/home/jamulus"
Restart=on-failure
RestartSec=30
StandardOutput=journal
StandardError=inherit
SyslogIdentifier=jamulus
[Install]
WantedBy=multi-user.target
Jamulus churns out the following error on start:
"/home/jamulus" does not exist but could not be created
/home/jamulus does indeed exist and has owner jamulus and group jamulus.
How do I make Jamulus store recordings in /home/jamulus
Timo I haven't tested but could it be related to ProtectHome=true in your service definition?
Indeed, that was the problem. Once I commented that line out it started working.
I've just run into this one, too. Could the error message be changed into something more intelligible like "dir does not exist and could not be created"
And somehow (error message, documentation) add a hint at this ProtectHome option? What does it do anyway?
It means the directories /home/, /root, and /run/user are inaccessible to the jamulus process. This is a bit of a belt-and-braces security measure to prevent the unlikely scenario that somebody worked out how to use Jamlus to read the content of those directories remotely.
Of course, it also means that if you are trying to save your recordings in any of those locations, it won't work. But you aren't running jamulus as root (are you? Not a good idea), and the jamulus user should have it's own directory in /home
So it probably looks like a good idea to add this to the server setup docs?
"If you intend to save recordings, do this on a path outside of the jamulus home directory, or remove ProtectHome (be aware that doing so is however a potential security risk) "
Last edit: Gilgongo 2021-01-30
Thanks, didn't know this. I don't see any security problem there but what do I know... And maybe add a hint to this even in the error message? I had to google it and found this thread. Source code didn't help.