Hulp bij het debuggen en opzetten minidlna server Ubuntu

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • Swedgin
  • Registratie: Februari 2016
  • Laatst online: 12-01-2022
Ik heb een oude laptop die ik als home server wil gebruiken. Ik heb er Ubuntu Server 16.04 opgezet met LVM's. Daar zou ik nu graag minidlna op willen draaien om lokaal aan mijn bestanden te geraken. minidlna staat geinstalleerd.

Ik heb een administrator account 'king' en een media account, 'media'. de home folder van king is in de zelfde partitie als de root folder. De home folder van media is een andere partitie gemount op /home/media. Hierop staan de bestanden.
king@localhost:/home$ ls -l
total 8
drwx------ 4 king king 4096 Jul 24 12:31 king
drwxrwxr-- 4 media media 4096 Jul 24 15:10 media
king@localhost:/home$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 74,5G 0 disk
├─sda1 8:1 0 714M 0 part /boot
├─sda2 8:2 0 3,7G 0 part
│ └─cryptswap1 252:0 0 3,7G 0 crypt [SWAP]
├─sda3 8:3 0 18,6G 0 part /
├─sda4 8:4 0 1K 0 part
└─sda5 8:5 0 51,5G 0 part
└─firsthdd-Multimedia 252:1 0 18,6G 0 lvm /home/media
sr0 11:0 1 1024M 0 rom
Met een testfile in de media folder
king@localhost:/home/media$ ls -l
total 2637300
drw-rw---- 2 media media 16384 Jul 23 17:23 lost+found
-rw-rw---- 1 media media 2700574090 Jul 22 18:32 Twelve.Monkeys.1995.BDRip.x264-HANDJOB.mkv
Nu weet ik niet of ik dat laatste account nodig heb, aangezien minidlna als een global deamon draait (voordelen?). Plus, tussen de users zie ik nu ook een minidlna account.

Dus voorlopig test ik het als default, via een global deamon. Dit is mijn config file.
# Specify the user name or uid to run as.
#user=minidlna

media_dir=V,/home/media/
friendly_name=Media Server
inotify=yes
db_dir=/var/cache/minidlna
log_dir=/var/log
Na een restart en force-reload.
king@localhost:/home$ sudo service minidlna status
● minidlna.service - LSB: minidlna server
Loaded: loaded (/etc/init.d/minidlna; bad; vendor preset: enabled)
Active: active (running) since Sam 2018-08-25 12:32:00 UTC; 59s ago
Docs: man:systemd-sysv-generator(8)
Process: 1741 ExecStop=/etc/init.d/minidlna stop (code=exited, status=0/SUCCESS)
Process: 1753 ExecStart=/etc/init.d/minidlna start (code=exited, status=0/SUCCESS)
Tasks: 2
Memory: 13.3M
CPU: 86ms
CGroup: /system.slice/minidlna.service
└─1766 /usr/sbin/minidlnad -f /etc/minidlna.conf -P /run/minidlna/minidlna.pid

Aug 25 12:32:00 localhost systemd[1]: Stopped LSB: minidlna server.
Aug 25 12:32:00 localhost systemd[1]: Starting LSB: minidlna server...
Aug 25 12:32:00 localhost systemd[1]: Started LSB: minidlna server.
Log file
[2018/08/25 12:30:26] minidlna.c:1041: warn: Starting MiniDLNA version 1.1.5.
[2018/08/25 12:30:26] minidlna.c:364: warn: Creating new database at /var/cache/minidlna/files.db
[2018/08/25 12:30:26] minidlna.c:1081: warn: HTTP listening on port 8200
[2018/08/25 12:30:26] scanner.c:725: warn: Scanning /home/media
[2018/08/25 12:30:26] scanner.c:814: warn: Scanning /home/media finished (0 files)!
[2018/08/25 12:30:26] playlist.c:125: warn: Parsing playlists...
[2018/08/25 12:30:26] playlist.c:259: warn: Finished parsing playlists.
[2018/08/25 12:31:48] minidlna.c:154: warn: received signal 15, good-bye
[2018/08/25 12:31:49] minidlna.c:1041: warn: Starting MiniDLNA version 1.1.5.
[2018/08/25 12:31:49] minidlna.c:1081: warn: HTTP listening on port 8200
[2018/08/25 12:31:59] minidlna.c:154: warn: received signal 15, good-bye
[2018/08/25 12:32:00] minidlna.c:1041: warn: Starting MiniDLNA version 1.1.5.
[2018/08/25 12:32:00] minidlna.c:1081: warn: HTTP listening on port 8200
Met vlc op ios11 op mijn iphone zie ik Media Server staan met het debian logo. Maar geen file. Hij blijft maar het ronddraaiend laad icoontje tonen als ik "Browse folders" wil doen.

Volgens mij is het iets met privileges. Maar ik geraak daar soms nog altijd verloren in.

Hoe kan ik dit nu het beste verder debuggen? Kan er iemand mij helpen met dit werkend te krijgen? Bedankt.

Beste antwoord (via Swedgin op 25-08-2018 19:38)


  • begintmeta
  • Registratie: November 2001
  • Niet online

begintmeta

Moderator General Chat
Hoe je het nu hebt opgezet lijkt mij niet handig, verdiep je nog eens in hoe Ubuntu daemons/services opstart, hoe het met rechten, UIDs en GIDs, umasks etc. zit en zet het dan nog eens op.

Wat ik zou doen:
minidlnad laten draaien onder user minidlna, in het voor ubuntu gangbare opstartproces opgestart
user minidlna toevoegen aan de groep media
zorgen dat bestanden die geplaatst zijn en nog zullen worden in de mediadirectory leesbaar zijn door groep media, en schrijfbaar door user media, die je dan kan gebruiken om de bestanden te plaatsen.

[ Voor 6% gewijzigd door begintmeta op 25-08-2018 17:26 ]

Alle reacties


Acties:
  • 0 Henk 'm!

  • Hero of Time
  • Registratie: Oktober 2004
  • Laatst online: 21:21

Hero of Time

Moderator LNX

There is only one Legend

De rechten op je /home/media is voor de gebruiker en groep te lezen, maar de rest van het systeem niet. Omdat je minidlna service daemon onder een eigen account draait, kan het dus niet in de home van media komen. Zoals je vermoedde is het een rechten probleem. Wat je kan doen is minidlna laten draaien onder het media account. Dat zou in de configuratie moeten staan van minidlna, maar check ook wat er in /etc/default/ staat. Hier kan bepaalde daemon specifieke settings staan die het init script/systemd uitleest.

Commandline FTW | Tweakt met mate


Acties:
  • 0 Henk 'm!

  • begintmeta
  • Registratie: November 2001
  • Niet online

begintmeta

Moderator General Chat
Wat geeft MiniDLNA voor info trouwens, als je poort 8200 met de browser bezoekt?

Acties:
  • 0 Henk 'm!

  • Swedgin
  • Registratie: Februari 2016
  • Laatst online: 12-01-2022
Ok. Ik zal mijn config file aanpassen. Ondertussen ook eens gekeken naar /etc/default/minidlna.
# Defaults for minidlna initscript
# sourced by /etc/init.d/minidlna
# installed at /etc/default/minidlna by the maintainer scripts

# These options can be set to modify the behavior of the minidlna init script.
# The options commented out show the default values.

# Start the daemon if set to "yes"
START_DAEMON="yes"

# Path to the configuration file
#CONFIGFILE="/etc/minidlna.conf"

# Path to the log file
#LOGFILE="/var/log/minidlna.log"

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

# Additional options that are passed to the daemon
DAEMON_OPTS=""
Ik heb de wiki gevolgd (https://help.ubuntu.com/community/MiniDLNA), maar nu moet ook weer de rechten veranderen van de nieuwe .minidlna folder aangezien ik dit met het king account doe.
king@localhost:/home/media$ ls -al
total 2637316
drwxrwxr-- 4 media media 4096 Aug 25 13:31 .
drwxr-xr-x 5 root root 4096 Jul 23 18:07 ..
drw-rw---- 2 media media 16384 Jul 23 17:23 lost+found
drwxrwxr-x 3 king king 4096 Aug 25 13:32 .minidlna
-rw-rw-r-- 1 king king 5 Aug 25 13:31 .minidlna.pid
-rw-rw---- 1 media media 2700574090 Jul 22 18:32 Twelve.Monkeys.1995.BDRip.x264-HANDJOB.mkv
De log file toont dit
[2018/08/25 13:31:41] minidlna.c:464: warn: Unable to change pidfile /home/media/.minidlna.pid ownershi$
[2018/08/25 13:31:41] minidlna.c:990: error: Unable to set db_path [/home/media/.minidlna/cache] owners$
[2018/08/25 13:31:41] minidlna.c:995: fatal: Failed to switch to uid '1001'. [Operation not permitted] $
[2018/08/25 13:32:08] minidlna.c:450: error: Unable to open pidfile for writing /run/minidlna/minidlna.$
[2018/08/25 13:32:08] minidlna.c:990: error: Unable to set db_path [/home/media/.minidlna/cache] owners$
[2018/08/25 13:32:08] minidlna.c:995: fatal: Failed to switch to uid '1001'. [Operation not permitted] $
Wat zijn de ideale rechten voor zoiets als een media folder?


@begintmeta Naar "http://192.168.1.113:8200/"? Unable to connect


EDIT:
Ondertussen eens de rechten op 777 gezet voor te testen. Nog steeds geen success.
king@localhost:/home/media$ ls -al
total 2637316
drwxrwxrwx 4 media media 4096 Aug 25 13:31 .
drwxr-xr-x 5 root root 4096 Jul 23 18:07 ..
drwxrwxrwx 2 media media 16384 Jul 23 17:23 lost+found
drwxrwxrwx 3 media media 4096 Aug 25 13:45 .minidlna
-rwxrwxrwx 1 media media 5 Aug 25 13:42 .minidlna.pid
-rwxrwxrwx 1 media media 2700574090 Jul 22 18:32 Twelve.Monkeys.1995.BDRip.x264-HANDJOB.mkv
[2018/08/25 13:41:54] minidlna.c:450: error: Unable to open pidfile for writing /run/minidlna/minidlna.pid: Permission denied
[2018/08/25 13:41:54] minidlna.c:995: fatal: Failed to switch to uid '1001'. [Operation not permitted] EXITING.
[2018/08/25 13:42:04] minidlna.c:464: warn: Unable to change pidfile /home/media/.minidlna.pid ownership: Operation not permitted
[2018/08/25 13:42:04] minidlna.c:995: fatal: Failed to switch to uid '1001'. [Operation not permitted] EXITING.

[ Voor 20% gewijzigd door Swedgin op 25-08-2018 15:45 ]


Acties:
  • +1 Henk 'm!

  • begintmeta
  • Registratie: November 2001
  • Niet online

begintmeta

Moderator General Chat
Swedgin schreef op zaterdag 25 augustus 2018 @ 15:36:
...
Wat zijn de ideale rechten voor zoiets als een media folder?
...
ik zou zeggen 640, 644 (voor files, voor folders evt ook execute natuurlijk) Alles wat geen toegang nodig heeft, geen toegang, alles wat leestoegang heeft leestoegang en alles wat schrijftoegang heeft schrijftoegang.

Minidlna hoeft in principe alleen te lezen. in de 640-configuratie kan je de minidlna-user dan aan de groep toevoegen, in de 644-configuratie hoeft dat niet.

Hoe probeer je minidlna nu precies op te starten?

[ Voor 4% gewijzigd door begintmeta op 25-08-2018 15:49 ]


Acties:
  • 0 Henk 'm!

  • Swedgin
  • Registratie: Februari 2016
  • Laatst online: 12-01-2022
Ik probeer minidlna nu op te starten via

$minidlnad -f /home/media/.minidlna/minidlna.conf -P /home/media/.minidlna/minidlna.pid

Ik ben ingelogd op king. Ik geloof dat ik van media een nonlogin account gemaakt heb, is al een tijdje geleden.
king@localhost:/home/media$ groups media
media : media minidlna

Acties:
  • 0 Henk 'm!

  • begintmeta
  • Registratie: November 2001
  • Niet online

begintmeta

Moderator General Chat
Wie is user 1001, waarom wil minidlna die uid aannemen en lukt dat niet? Is king toevallig 1000 en media 1001? in dat geval moet ofwel king rechten krijgen de uid van het proces te veranderen, of je moet minidlna zo configureren dat hij niet wil switchen, of je moet minidlnad als user 1001 opstarten.

Het simpelst en veiligst werkt het vermoedelijk als je de minidlna-daemon een eigen user toewijst (bijvoorbeeld minidlna), die als user configureert en dan de daemon via de daarvoor gangbare methoden opstart.

[ Voor 25% gewijzigd door begintmeta op 25-08-2018 16:09 ]


Acties:
  • 0 Henk 'm!

  • Swedgin
  • Registratie: Februari 2016
  • Laatst online: 12-01-2022
begintmeta schreef op zaterdag 25 augustus 2018 @ 16:07:
Wie is user 1001, waarom wil minidlna die uid aannemen en lukt dat niet? Is king toevallig 1000 en media 1001? in dat geval moet ofwel king rechten krijgen de uid van het proces te veranderen, of je moet minidlna zo configureren dat hij niet wil switchen, of je moet minidlnad als user 1001 opstarten.
Inderdaad. media is 1001.
Het simpelst en veiligst werkt het vermoedelijk als je de minidlna-daemon een eigen user toewijst (bijvoorbeeld minidlna), die als user configureert en dan de daemon via de daarvoor gangbare methoden opstart.
Dat was eigenlijk mijn bedoeling om te bekomen. Een user die altijd ingelogd is en de deamon draait. Maar ik krijg dit dus niet in gang.

Dit is nu mijn config file.
# Specify the user name or uid to run as.
user=media

media_dir=V,/home/media/
friendly_name=Media Server
inotify=yes
db_dir=/home/media/.minidlna/cache
log_dir=/home/media/.minidlna
Ok, de 644 en 640 snap ik. Maar moet ik dan nu voor elke folder die er zal inkomen afzonderlijk de rechten naar 744 moeten brengen zodat ze kunnen browsen?

--

Het is gelukt om de file zichtbaar te maken. Ik heb moeten inloggen via het media account. Bedankt voor de hulp.

[ Voor 7% gewijzigd door Swedgin op 25-08-2018 16:51 ]


Acties:
  • Beste antwoord
  • +1 Henk 'm!

  • begintmeta
  • Registratie: November 2001
  • Niet online

begintmeta

Moderator General Chat
Hoe je het nu hebt opgezet lijkt mij niet handig, verdiep je nog eens in hoe Ubuntu daemons/services opstart, hoe het met rechten, UIDs en GIDs, umasks etc. zit en zet het dan nog eens op.

Wat ik zou doen:
minidlnad laten draaien onder user minidlna, in het voor ubuntu gangbare opstartproces opgestart
user minidlna toevoegen aan de groep media
zorgen dat bestanden die geplaatst zijn en nog zullen worden in de mediadirectory leesbaar zijn door groep media, en schrijfbaar door user media, die je dan kan gebruiken om de bestanden te plaatsen.

[ Voor 6% gewijzigd door begintmeta op 25-08-2018 17:26 ]


Acties:
  • +1 Henk 'm!

  • Swedgin
  • Registratie: Februari 2016
  • Laatst online: 12-01-2022
begintmeta schreef op zaterdag 25 augustus 2018 @ 17:25:
Hoe je het nu hebt opgezet lijkt mij niet handig, verdiep je nog eens in hoe Ubuntu daemons/services opstart, hoe het met rechten, UIDs en GIDs, umasks etc. zit en zet het dan nog eens op.

Wat ik zou doen:
minidlnad laten draaien onder user minidlna, in het voor ubuntu gangbare opstartproces opgestart
user minidlna toevoegen aan de groep media
zorgen dat bestanden die geplaatst zijn en nog zullen worden in de mediadirectory leesbaar zijn door groep media, en schrijfbaar door user media, die je dan kan gebruiken om de bestanden te plaatsen.
Bedankt voor het stappenplan. Dit was deels wat ik zocht. Ik zal vanavond of in de loop van volgende week dit uitdokteren. Ik wil ook dieper leren werken met ubuntu/linux, niet de alledaagse dingen, daarom dat ik een server wil opzetten. Lijkt me een goede manier van leren. Ik zet dit nu als beste antwoord.

[ Voor 8% gewijzigd door Swedgin op 25-08-2018 19:43 ]


Acties:
  • 0 Henk 'm!

  • Swedgin
  • Registratie: Februari 2016
  • Laatst online: 12-01-2022
begintmeta schreef op zaterdag 25 augustus 2018 @ 17:25:
Hoe je het nu hebt opgezet lijkt mij niet handig, verdiep je nog eens in hoe Ubuntu daemons/services opstart, hoe het met rechten, UIDs en GIDs, umasks etc. zit en zet het dan nog eens op.
Ubuntu deamons/services -> via systemd service file
UID and GID -> user en group id
rechten en umasks -> bij nieuwe files en dirs staan de rechten default op 666 en 777 respectievelijk. door umask in te stellen worden de rechten automatisch beperkt door de umask dervan te trekken.
Wat ik zou doen:
minidlnad laten draaien onder user minidlna, in het voor ubuntu gangbare opstartproces opgestart
Dus hiervoor moet ik dan een systemd service file schrijven die uitgevoerd wordt bij startup? En maken dat user minidlna altijd ingelogd is.
Moet dit gebeuren met user media of kan dit met administrator king? Ik had gemerkt toen ik ingelogd was met media dat mijn bash niet goed ingesteld was (geen autocomplete enzo). Niet dat dit erg is, ik moet waarschijnlijk ergens in mijn bash_profile zetten, maar zou toch alles willen instellen met 1 account. Tenzij dit niet gebruikelijk is natuurlijk.
Ik zie nu dat media geen .profile heeft.

Acties:
  • +1 Henk 'm!

  • Hero of Time
  • Registratie: Oktober 2004
  • Laatst online: 21:21

Hero of Time

Moderator LNX

There is only one Legend

Swedgin schreef op zondag 26 augustus 2018 @ 11:03:
[...]

Ubuntu deamons/services -> via systemd service file
UID and GID -> user en group id
rechten en umasks -> bij nieuwe files en dirs staan de rechten default op 666 en 777 respectievelijk. door umask in te stellen worden de rechten automatisch beperkt door de umask dervan te trekken.
Ik mag hopen dat de standaard mask voor het maken van bestanden en mappen niet resulteert in een wereldwijde rechten erop. Dat zou enorm onveilig zijn. De standaard umask bij gebruikers en zelfs root is 022, dus als je een map aanmaakt wordt dat 755, bestanden krijgen 644. En dat is op zich veilig genoeg.
[...]

Dus hiervoor moet ik dan een systemd service file schrijven die uitgevoerd wordt bij startup? En maken dat user minidlna altijd ingelogd is.
Moet dit gebeuren met user media of kan dit met administrator king? Ik had gemerkt toen ik ingelogd was met media dat mijn bash niet goed ingesteld was (geen autocomplete enzo). Niet dat dit erg is, ik moet waarschijnlijk ergens in mijn bash_profile zetten, maar zou toch alles willen instellen met 1 account. Tenzij dit niet gebruikelijk is natuurlijk.
Ik zie nu dat media geen .profile heeft.
Als het goed is, worden er met de service als systemd 'scripts' (unit files eigenlijk) meegeleverd en gebruikt. Daar staat ook in onder welke gebruiker het zou moeten draaien. Die hoeft niet constant ingelogd te zijn, er wordt een aparte instantie gestart als die gebruiker. Meestal hebben service accounts geeneens de mogelijkheid voor een interactieve sessie.

Commandline FTW | Tweakt met mate


Acties:
  • 0 Henk 'm!

  • Swedgin
  • Registratie: Februari 2016
  • Laatst online: 12-01-2022
Hero of Time schreef op zondag 26 augustus 2018 @ 12:49:
[...]

Ik mag hopen dat de standaard mask voor het maken van bestanden en mappen niet resulteert in een wereldwijde rechten erop. Dat zou enorm onveilig zijn. De standaard umask bij gebruikers en zelfs root is 022, dus als je een map aanmaakt wordt dat 755, bestanden krijgen 644. En dat is op zich veilig genoeg.
Ok. (777) - (umask) bij een folder. Dus eigenlijk hoef ik nooit met chmod zitten te klooien. Gewoon zorgen dat de users in de correcte groepen zitten. Ik heb het nu weer goed gezet.
king@localhost:/home$ ls -l
total 8
drwxr-xr-x 5 media media 4096 Aug 26 13:04 media
king@localhost:/home$ cd media/
king@localhost:/home/media$ ls -l
total 2637284
-rw-r--r-- 1 media media 2700574090 Jul 22 18:32 Twelve.Monkeys.1995.BDRip.x264-HANDJOB.mkv
Als het goed is, worden er met de service als systemd 'scripts' (unit files eigenlijk) meegeleverd en gebruikt. Daar staat ook in onder welke gebruiker het zou moeten draaien. Die hoeft niet constant ingelogd te zijn, er wordt een aparte instantie gestart als die gebruiker. Meestal hebben service accounts geeneens de mogelijkheid voor een interactieve sessie.
user minidlna is toegevoegd aan de groep media. Dit is nu mijn /etc/minidlna.conf
user=minidlna

media_dir=V,/home/media/
friendly_name=Media Server
inotify=yes
db_dir=/var/cache/minidlna
log_dir=/var/log
En ik kan deze nu succesvol starten met $sudo service minidlna restart
Volgens de ubuntu wiki is dit een global daemon. Dit is wat ik wil? Waarom zou je local per user draaien?

$sudo service minidlna start
'service' start het script /etc/init.d/minidnla en daarin wordt dan die daemon opgestart. En dit is wat je anders 'manueel' moet doen als je het locally zou doen? Ik zie hier pidfile veelvuldig terugkomen. Nog om over bij te lezen.

Ik heb het nu ook kunnen laten werken na het booten door het toe te voegen aan update-rc.d
$sudo update-rc.d minidlna enable

'defaults' gaf warnings en werkte niet.

EDIT.
Door het script in init.d te lezen, zag ik dat /etc/default/minidlna gesourced werd. Hier stond CONFIGFILE = /etc/minidlna.conf in comment. Toch heeft deze conf file invloed?

Sorry voor de vele vragen. Maar linux stuurt me van het ene naar het andere en het is wat overweldigend.

[ Voor 10% gewijzigd door Swedgin op 26-08-2018 16:12 ]


Acties:
  • +1 Henk 'm!

  • Hero of Time
  • Registratie: Oktober 2004
  • Laatst online: 21:21

Hero of Time

Moderator LNX

There is only one Legend

In die defaults staat wat het standaard doet en kan je desgewenst aanpassen. Configfile kan je daarmee dus een ander bestand opgeven als je zou willen.

Commandline FTW | Tweakt met mate


Acties:
  • 0 Henk 'm!

  • Swedgin
  • Registratie: Februari 2016
  • Laatst online: 12-01-2022
Ok. Bedankt
Pagina: 1