Ubuntu: Permissions for Video folder for minidlna?



Question:

I have a secondary hard drive that is mounted as /media/Media and I would like to user a folder called Videos located on that drive that I would like to share the videos located on this folder out via minidlna. I have minidlna working with /home/jonathan/Videos which is on my smaller drive and would like to instead move the videos to the larger drives.

However after I edit my minidlna.conf to point to the /media/Media/Videos folder and do a sudo service minidlna force-reload to reload the database I get a permssions error.

Can someone point me to the correct permissions I need to set on this folder?


Solution:1

I tried following the examples in this thread but still could not get it to work. I ended up stumbling on this article here: Running minidlna on Ubuntu and followed it step by step and I now have the media on my second drive being served through minidnla. If any one else struggles I suggest you follow his process.

I have quoted his text in case his page ever disappears.


He installed a service called minidlna which is supposed to allow streaming of media. However, it didn’t like the permissions on his chosen folder. The path is /media/jw/drive2/foo.

jw@FooPC:~$ sudo service minidlna restart  * Restarting DLNA/UPnP-AV media server minidlna  [2014/07/23 21:03:30] minidlna.c:594: error: Media directory "/media/jw/drive2/foo" not accessible [Permission denied]  

He pointed it to a folder in his home folder and it liked that just fine, but not the 2nd drive that holds the media.

He tried setting the user as me in the conf file and in the default file. But eventually He discovered he had to set the user as “root” to make it work.

He opened terminal and entered ...

sudo gedit /etc/default/minidlna  

...and edited the file...

# User and group the daemon should run as  USER=”root”  #GROUP=”minidlna”  

...then saved and back to terminal and entered...

sudo gedit /etc/minidlna.conf  

... and edited the file...

# Specify the user name or uid to run as.  user=root  

He restarted the service using...

sudo service minidlna restart  

... in terminal and this time there was no error about permissions.


I hope that helps someone as it helped me. If it helps you then please visit his page and leave him a comment like I did so he knows that his page is helping!

UPDATE:

This works straight away but if you power off the machine and then restart it the second drive is not served by the minidnla server until you run:

sudo service minidlna restart  

Getting it to work from bootup is a user-mode drive problem and can be fixed by adding the drive to fstab. The downside is that the system will not boot automatically if the drive is not plugged in, as it will annoyingly demand to retry or ignore before continuing to boot.


Solution:2

/media/* is automounted with udisks. If it's NTFS or FAT, only the active user gets access to it, so the minidlna user cannot access it.

It's silly that udisks has the permissions hardcoded, there's a bug report about that: https://bugs.launchpad.net/ubuntu/+source/udisks/+bug/682589

If one mounts the disk with sudo mount /dev/sdb1 /mnt or with /etc/fstab, he can put whatever permissions he wants so that minidlna can read it.

So for home PCs one easy workaround is to edit /etc/default/minidlna, and either specify that minidlna will run as root, or as the user that usually mounts those disks.

# User and group the daemon should run as  USER="root"  #GROUP="minidlna"  

If you specified a user account instead of root, also run sudo chown -R user:user /var/lib/minidlna

To rescan the library after the changes, run sudo service minidlna force-reload

And a note to myself, rather than adding media_dir= entries in /etc/minidlna.conf, I prefer creating symlinks under /var/lib/minidlna, e.g.:

sudo ln -sf /media/alkisg/mydisk/Photos /var/lib/minidlna/Photos  

...because that way I get an extra level of hierarchy when browsing the media folders in DLNA clients.


Solution:3

type
sudo chown -R minidlna:minidlna /media/Media

in order to give minidlna ownership of all files and folders contained in Media

then restart and force-rescan the server

IMPORTANT
Start minidlna as root!

sudo minidlna  

to rescan library after adding files to your media drive use

sudo service minidlna stop  sudo minidlna -R  sudo service minidlna restart  

to see if it's up

service minidlna status  


Solution:4

I realize this is an older question but if you fstab the external drive with the defaults,user as options and then sudo chown -cR $USER:minidlna /media/(your_mount point_here). This should maintain the ownership and group through reboots as well as give the default minidlna group that the server is run with group access to the files.


Solution:5

I found another solution: the parent of the media folder has to be accessible to minidlna too. I tried running minidlna as root, and ProtectHome=read-only in the systemctl service file but none of this worked.

In my case my videos were in media_dir=V,/srv/share/videos/library

I had done chmod -R a+xr /srv/share/videos/library but was still getting the Permission Denied message

After I did chmod o+xr /srv/share/videos - it all worked, with user=minidlna

Hope this helps someone.


Solution:6

I had the same problem, and tried to fix it using this post. But I didn't want root to run the daemon.

Note:

  • I am also connecting a removable disk in userspace as (without using fstab).
  • I am running Ubuntu 16.04.02 LTS

So I edited /etc/default/minidlna to contain

USER=<user>  GROUP=<group>  

then /etc/minidlna.conf to contain

user=<user>  

I also had to change permissions to allow my user

chown <user>:<group> /var/cache/minidlna  chown <user>:<group> /run/minidlna  

Then restart the service

sudo service minidlna restart  


Solution:7

I ran into the same problem on a NAS I try to create. I think the /etc/init.d/minidlna script should not:

if [ -z $GROUP ]; then     GROUP=$USER  fi  

But do a

if [ -z $GROUP]; then     GROUP=$(id -gn $USER)  fi  

Because the primary group of the user may differ from the user. Especially when you want users to share you want a group they share to be the primary group of minidlna too.


Solution:8

To let miniDLNA rescan its library we may issue the following commands:

sudo service minidlna stop    # stop minidlna  sudo -u minidlna minidlna -R  # rescan the library  sudo service minidlna start   # restart minidlna  

Note that with default library settings the second line needs to be run under the user minidlna in order to let minidlna have access to this library later.

Depending on your settings you may have defined a location for the library other than default /var/lib/minidlna. Then we may need different permissions.


Note:If u also have question or solution just comment us below or mail us on toontricks1994@gmail.com
Previous
Next Post »