Menu

How to record in a /home/user folder in linux?

2020-06-16
2021-01-30
  • Timo Sivula

    Timo Sivula - 2020-06-16

    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:


    • recording directory name: /home/jamulus
      "/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

     
    • punshon

      punshon - 2020-06-16

      Timo I haven't tested but could it be related to ProtectHome=true in your service definition?

       
      • Timo Sivula

        Timo Sivula - 2020-06-17

        Indeed, that was the problem. Once I commented that line out it started working.

         
        • hk1020

          hk1020 - 2021-01-29

          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?

           
          • Gilgongo

            Gilgongo - 2021-01-30

            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
            • hk1020

              hk1020 - 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.

               
MongoDB Logo MongoDB