สิทธิ์สำหรับโฟลเดอร์วิดีโอสำหรับ minidlna?


10

ฉันมีฮาร์ดไดรฟ์รองที่มีการติดตั้งเป็น / สื่อ / minidlnaสื่อและผมอยากจะใช้โฟลเดอร์ที่เรียกว่าวิดีโอที่ตั้งอยู่บนไดรฟ์ที่ว่าผมอยากจะแบ่งปันวิดีโอที่อยู่ในโฟลเดอร์นี้ได้ผ่านทาง ฉันminidlnaทำงานกับ/home/jonathan/Videosไดรฟ์ขนาดเล็กลงและต้องการย้ายวิดีโอไปยังไดรฟ์ขนาดใหญ่แทน

อย่างไรก็ตามหลังจากที่ฉันแก้ไขminidlna.confให้ชี้ไปที่โฟลเดอร์ / media / Media / Videos และทำการ a sudo service minidlna force-reloadเพื่อทำการรีโหลดฐานข้อมูลที่ฉันได้รับข้อผิดพลาด permssions

ใครสามารถชี้ให้ฉันเห็นถึงการอนุญาตที่ถูกต้องที่ฉันต้องการตั้งค่าในโฟลเดอร์นี้?


เพื่อช่วยให้เราต้องการข้อผิดพลาดที่แน่นอนคุณจะได้รับ เราจำเป็นต้องทราบวิธีจัดรูปแบบวิธีติดตั้งไดรฟ์สื่อของคุณและจุดที่ minidlna.conf ของคุณชี้ไปยัง ไม่อย่างนั้นมันจะคาดเดาที่นี่ วิธี minidlna สามารถ rescan ห้องสมุดจะได้รับในคำตอบของฉัน - force-reloadไม่จำเป็นต้อง
Takkat

เมื่อฉันไปเริ่ม mindlna หลังจากเปลี่ยน minidlna.conf ของฉันเป็น piont ไปยังโฟลเดอร์วิดีโอ / สื่อ / สื่อ / วิดีโอมันบอกฉันว่าการอนุญาตไม่ได้รับอนุญาต ไดรฟ์เป็นดิสก์รองและติดตั้งโดยระบบเมื่อฉันเข้าสู่ระบบ / เปิดเครื่องคอมพิวเตอร์ดังนั้นไม่แน่ใจว่าคุณหมายถึงอะไรเกี่ยวกับวิธีการติดตั้ง
jjesse

สิ่งที่ฉันคิดคือการไม่คำนึงถึงสิทธิ์ของไดเรกทอรีวิดีโอของคุณ minidlna ควรมีการเข้าถึงแบบอ่านในขณะที่ทำงานเหมือนรูท นี้ไม่เป็นความจริงสำหรับฐานข้อมูล minidlna ที่ถูกเก็บไว้ในที่เป็นเจ้าของโดยกลุ่ม/var/lib/minidlna minidlnaดังนั้นเราจำเป็นต้องเรียกใช้การสแกนซ้ำ-Rในฐานะผู้ใช้minidlnaหรือเราอาจวางmindlna.conf -> db_dir=ไลบรารี่นี้ไว้ในที่อื่น ฉันมีของฉันอยู่ในบ้าน
Takkat

ดังนั้น minidlna ทำงานได้ตราบใดที่ฉันใช้ / home / jjesse / Videos / ตามที่ไดเรกทอรีของฉันทำงานได้ดี แต่ถ้าชี้ไปที่ / media / media / video ฉันได้รับข้อผิดพลาด permssions ดังนั้นคำถามเกี่ยวกับสิทธิ์ที่ฉันต้องการใน / media / media / videos
jjesse

ในระบบของฉันที่นี่เราต้องอ่านสิทธิ์สำหรับ minidlna แน่นอน สิ่งเหล่านี้อาจขึ้นอยู่กับผู้ใช้ / กลุ่มที่คุณเรียกใช้ minidlna ด้วย โดยทั่วไปจะเป็นเช่นนี้rootแต่ก็สามารถเรียกใช้เป็นminidlnaหรือเป็นผู้ใช้ใด ๆ ขึ้นอยู่กับการตั้งค่าส่วนบุคคลของคุณ
Takkat

คำตอบ:


14

ฉันลองทำตามตัวอย่างในกระทู้นี้ แต่ก็ยังไม่สามารถใช้งานได้ ฉันลงเอยสะดุดในบทความนี้ที่นี่: ใช้ minidlna บน Ubuntuและทำตามทีละขั้นตอนและตอนนี้ฉันมีสื่อบนไดรฟ์ที่สองของฉันถูกให้บริการผ่าน minidnla หากคนอื่นต่อสู้ฉันขอแนะนำให้คุณทำตามกระบวนการของเขา

ฉันอ้างข้อความของเขาในกรณีที่หน้าของเขาหายไป


เขาติดตั้งบริการที่เรียกว่า minidlna ซึ่งควรจะอนุญาตการสตรีมสื่อ อย่างไรก็ตามมันไม่ชอบการอนุญาตในโฟลเดอร์ที่เขาเลือก พา ธ คือ / 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]

เขาชี้ไปยังโฟลเดอร์ในโฟลเดอร์ที่บ้านของเขาและก็ชอบที่ดีเพียงแต่ไม่ไดรฟ์ที่ 2 ที่เก็บสื่อ

เขาพยายามตั้งค่าผู้ใช้เป็นฉันในไฟล์ conf และในไฟล์เริ่มต้น แต่ในที่สุดเขาก็ค้นพบว่าเขาต้องตั้งค่าผู้ใช้เป็น "รูท" เพื่อให้มันใช้งานได้

เขาเปิดเทอร์มินัลแล้วป้อน ...

sudo gedit /etc/default/minidlna

... และแก้ไขไฟล์ ...

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

... จากนั้นบันทึกและกลับสู่เทอร์มินัลแล้วป้อน ...

sudo gedit /etc/minidlna.conf

... และแก้ไขไฟล์ ...

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

เขาเริ่มบริการใหม่โดยใช้ ...

sudo service minidlna restart

... ในเทอร์มินัลและคราวนี้ไม่มีข้อผิดพลาดเกี่ยวกับการอนุญาต


ฉันหวังว่าจะช่วยใครบางคนตามที่ช่วยฉัน ถ้ามันช่วยคุณได้โปรดไปที่หน้าของเขาและแสดงความคิดเห็นแบบที่ฉันทำเพื่อเขารู้ว่าหน้าของเขากำลังช่วย!

UPDATE:

ใช้งานได้ทันที แต่ถ้าคุณปิดเครื่องแล้วรีสตาร์ทไดรฟ์ที่สองจะไม่ได้รับบริการจากเซิร์ฟเวอร์ minidnla จนกว่าคุณจะเรียกใช้:

sudo service minidlna restart

ได้รับมันในการทำงานจากการบูตเครื่องเป็นปัญหาในโหมดผู้ใช้ไดรฟ์และสามารถแก้ไขได้โดยการเพิ่มไดรฟ์เพื่อ fstab ข้อเสียคือระบบจะไม่บู๊ตโดยอัตโนมัติหากไม่ได้เสียบปลั๊กไดรฟ์เนื่องจากจะต้องลองใหม่หรือเพิกเฉยก่อนที่จะบู๊ตต่อไป

อีกทางเลือกหนึ่งในการเพิ่มไดรฟ์ไปยัง fstab คือการเริ่มบริการ minidlna ใหม่เมื่อรีบูตจาก cron:

sudo crontab -e

จากนั้นเพิ่มบรรทัดถัดไปที่ท้ายไฟล์:

@reboot sleep 60 && sudo service minidlna restart

9

/media/*ถูกเมานท์อัตโนมัติด้วย udisks หากเป็น NTFS หรือ FAT เฉพาะผู้ใช้ที่ใช้งานเท่านั้นที่สามารถเข้าถึงได้ดังนั้นผู้ใช้ minidlna จึงไม่สามารถเข้าถึงได้

มันโง่ที่ udisks มีสิทธิ์ hardcoded มีรายงานข้อผิดพลาดเกี่ยวกับที่: https://bugs.launchpad.net/ubuntu/+source/udisks/+bug/682589

หากมีใครติดตั้งดิสก์ด้วยsudo mount /dev/sdb1 /mntหรือกับ/etc/fstabเขาสามารถใส่สิทธิ์ใด ๆ ที่เขาต้องการเพื่อให้ minidlna สามารถอ่านได้

ดังนั้นสำหรับพีซีในบ้านวิธีแก้ปัญหาง่าย ๆ อย่างหนึ่งคือการแก้ไข/etc/default/minidlnaและระบุว่า minidlna จะทำงานในฐานะรูทหรือในฐานะผู้ใช้ที่เมาท์ดิสก์เหล่านั้น

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

หากคุณระบุบัญชีผู้ใช้แทนรูทก็ให้รันด้วย sudo chown -R user:user /var/lib/minidlna

หากต้องการสแกนไลบรารีอีกครั้งหลังจากการเปลี่ยนแปลงให้เรียกใช้ sudo service minidlna force-reload

และหมายเหตุถึงตัวเองแทนที่จะเพิ่มmedia_dir=รายการใน /etc/minidlna.conf ฉันชอบสร้าง symlink ภายใต้ / var / lib / minidlna เช่น:

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

... เพราะวิธีการที่ฉันได้รับลำดับชั้นพิเศษเมื่อเรียกดูโฟลเดอร์สื่อในไคลเอนต์ DLNA


ขอบคุณในที่สุดฉันก็มีพาร์ทิชัน NTFS ของฉันให้ทำงานกับ minidlna ฉันติดตั้งพาร์ติชันของฉันผ่าน fstab แล้ว แต่มีตัวเลือกที่ไม่ถูกต้อง เนื่องจาก NTFS Partition ไม่ได้ถูกใช้โดยระบบ windows หรือคล้ายกันฉันเพิ่งใช้ตัวเลือกต่อไปนี้เพื่อเมานต์ใน fstab: default, umask = 0000 ทำงานเหมือนจับใจ!
Bernd

4

พิมพ์
sudo chown -R minidlna: minidlna / media / Media

เพื่อให้ความเป็นเจ้าของ minidlna ของไฟล์และโฟลเดอร์ทั้งหมดที่มีอยู่ในสื่อ

จากนั้นรีสตาร์ทและบังคับให้สแกนเซิร์ฟเวอร์อีกครั้ง

สิ่งสำคัญ
เริ่ม minidlna เป็นราก!

sudo minidlna

เพื่อสแกนไลบรารีอีกครั้งหลังจากเพิ่มไฟล์ลงในสื่อไดรฟ์ของคุณ

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

เพื่อดูว่ามันขึ้น

service minidlna status

ขอบคุณมากฉันทำการเปลี่ยนแปลงและยังได้รับข้อผิดพลาดเดียวกัน [2013/03/20 12:37:50] minidlna.c: 474: ข้อผิดพลาด: ไดเรกทอรีสื่อ "/ สื่อ / สื่อ / วิดีโอ /" ไม่สามารถเข้าถึงได้! [ปฏิเสธการอนุญาต]
jjesse

1
มันแปลกมาก ... ฉันจะต้องดูการตั้งค่าของตัวเองอีกครั้งเพราะฉันมี minidlna กำลังทำงานอยู่โดยมีไดรฟ์ภายนอกเป็นสื่อพาร์ทิชันและฉันคิดว่านี่เป็นการเปลี่ยนแปลงเพียงอย่างเดียวที่ฉันต้องทำ
Daniel W.

1
สิ่งหนึ่งที่คุณสามารถทำได้เพียงเพื่อยืนยันว่าการเป็นเจ้าของถูกเปลี่ยนแน่นอนคือพิมพ์ 'ls -lh / media' และดูว่าการเป็นเจ้าของ (รายการที่ 3 และ 4 ในรายการ) ตั้งค่าเป็น 'minidlna' หรือทำเช่นนี้สำหรับ '/ media / Media 'และ' / media / Media / Videos 'เพื่อดูว่ามีการเปลี่ยนแปลงที่นำไปใช้ซ้ำหรือไม่
Daniel W.

ขอบคุณสำหรับสิ่งนี้ดูเหมือนว่าการเปลี่ยนแปลงจะไม่เกิดขึ้นซ้ำอีกหรือ ตอนนี้ ls -lh แสดง minidlna ในฐานะเจ้าของและกลุ่ม แต่ยังคงได้รับอนุญาตถูกปฏิเสธในเรื่องนี้ ไม่แน่ใจว่าเกิดอะไรขึ้น
jjesse

โอ้คนฉันคิดว่าฉันพลาดที่ชัดเจนที่นี่ ... คุณดูเหมือนจะต้องเริ่ม minidlna เป็นราก ฉันเพิ่งได้รับข้อผิดพลาดเดียวกับที่คุณทำในการติดตั้งหลังจากรีบูตเป็นครั้งแรกใน 2 เดือน คุณต้องพิมพ์ 'sudo minidlna' ที่ควรทำเคล็ดลับ (หากว่าการอนุญาตที่ถูกต้องทั้งหมดยังคงถูกกำหนดไว้ในโฟลเดอร์)
Daniel W.

0

ฉันรู้ว่านี่เป็นคำถามที่เก่ากว่า แต่ถ้าคุณ fstab ไดรฟ์ภายนอกที่มีค่าเริ่มต้นให้ผู้ใช้เป็นตัวเลือกแล้ว sudo chown -cR $ USER: minidlna / media / (your_mount point_here) สิ่งนี้ควรรักษาความเป็นเจ้าของและกลุ่มผ่านการรีบู๊ตรวมถึงให้กลุ่ม minidlna เริ่มต้นที่เซิร์ฟเวอร์รันด้วยการเข้าถึงกลุ่มของไฟล์


0

ผมพบว่าวิธีการแก้ปัญหาอีกคือผู้ปกครองของสื่อโฟลเดอร์จะต้องมีการเข้าถึงเพื่อ minidlna เกินไป ฉันพยายามใช้ minidlna เป็น root และ ProtectHome = อ่านอย่างเดียวในไฟล์บริการ systemctl แต่ไม่มีสิ่งใดที่ใช้งานได้

ในกรณีของฉันวิดีโอของฉันอยู่ใน media_dir = V, / srv / share / videos / library

ฉันได้ทำ chmod -R a + xr / srv / share / videos / library แล้วแต่ยังได้รับข้อความปฏิเสธการอนุญาต

หลังจากที่ฉันทำ chmod o + xr / srv / share / videos - มันทำงานได้ดีกับผู้ใช้ = minidlna

หวังว่านี่จะช่วยใครซักคน


0

ฉันมีปัญหาเดียวกันและพยายามแก้ไขโดยใช้โพสต์นี้ แต่ฉันไม่ต้องการrootเรียกใช้ภูต

หมายเหตุ :

  • ฉันกำลังเชื่อมต่อดิสก์แบบถอดได้ใน userspace เป็น (โดยไม่ต้องใช้ fstab)
  • ฉันใช้ Ubuntu 16.04.02 LTS

ดังนั้นฉันจึงแก้ไข /etc/default/minidlnaเพื่อให้มี

USER=<user>
GROUP=<group>

จากนั้น/etc/minidlna.confจะมี

user=<user>

ฉันต้องเปลี่ยนการอนุญาตเพื่ออนุญาตให้ผู้ใช้ของฉัน

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

จากนั้นเริ่มบริการใหม่

sudo service minidlna restart

0

ฉันพบปัญหาเดียวกันกับ NAS ที่ฉันพยายามสร้าง ฉันคิดว่า/etc/init.d/minidlnaสคริปต์ไม่ควร:

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

แต่ทำ

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

เนื่องจากกลุ่มหลักของผู้ใช้อาจแตกต่างจากผู้ใช้ โดยเฉพาะอย่างยิ่งเมื่อคุณต้องการให้ผู้ใช้แบ่งปันคุณต้องการกลุ่มที่พวกเขาแบ่งปันเป็นกลุ่มหลักของ minidlna ด้วย


0

ฉันพยายามเรียกใช้ MiniDLNA เป็นพื้นที่เก็บข้อมูลสำรองสำหรับ HDHomeRun RECORD (โดยใช้ NAS config ในการตั้งค่า HDHomeRun)

ฉันคิดว่าแซมบ้าขัดแย้งกันเมื่อฉันรีบูทและเซิร์ฟเวอร์ DLNA ของฉันไม่ทำงานอีกต่อไป ปรากฎว่าฉันไม่เคยตั้งfirewalldให้มีพอร์ตเปิด 8200 ฉันเพิ่งปิดและลืมที่จะปิดการใช้งานบริการ (อาจคิดว่าฉันจะทำมันอย่างถูกต้องในภายหลังและลืม)

ฉันใช้ Fedora 27, BTW

ด้วยเหตุผลบางอย่าง MiniDLNA รายงานไดเรกทอรีสื่อเสมือนnot accessibleว่าพอร์ตของคุณไม่ได้เปิดอยู่ ตัวอย่าง -

ก่อนปิดไฟร์วอลล์:

# systemctl status minidlna

systemd[1]: Started MiniDLNA is a DLNA/UPnP-AV server software.
minidlna.c:620: error: Media directory "/home/local/Downloads" not accessible [Permission denied]
minidlna.c:620: debug: Using locale dir '/usr/share/locale' and locale langauge en_US.UTF-8/en_US.UTF-8
minidlna.c:1048: warn: Starting MiniDLNA version 1.2.1.

หลังจากปิดไฟร์วอลล์:

# systemctl status minidlna

<root xmlns="urn:schemas-upnp-org:device-1-0"><specVersion><major>1</major><minor>0</minor></specVersion><dev
minidlnad[4401]: MS_MediaReceiverRegistrar</eventSubURL><SCPDURL>/X_MS_MediaReceiverRegistrar.xml</SCPDURL></service></service
minidlna.c:1302: debug: HTTP connection from 192.168.1.190:65260
minidlnad[4401]: clients.c:332: debug: Client found in cache. [Generic UPnP 1.0/entry 1]
minidlnad[4401]: upnphttp.c:889: debug: HTTP REQUEST: GET /icons/sm.png HTTP/1.1
minidlnad[4401]: Connection: Keep-Alive
minidlnad[4401]: User-Agent: User-Agent: Microsoft-DLNA DLNADOC/1.50
minidlnad[4401]: Host: 192.168.1.186:8200
minidlnad[4401]: [1B blob data]
minidlnad[4401]: upnphttp.c:1391: debug: 
Sending small PNG icon

ฉันไม่แน่ใจว่าทำไมจึงจะรายงานไดเรกทอรีสื่อว่าไม่สามารถเข้าถึงได้เนื่องจากพอร์ตถูกบล็อกซึ่งดูเหมือนว่าพฤติกรรมแปลก ๆ กับฉัน แต่การปิดการใช้งานไฟร์วอลล์เป็นสิ่งที่ฉันทำเพื่อให้มันเริ่มทำงานอีกครั้ง


-1

เพื่อให้ miniDLNA ทำการสแกนไลบรารีอีกครั้งเราอาจใช้คำสั่งต่อไปนี้:

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

โปรดทราบว่าด้วยการตั้งค่าไลบรารีเริ่มต้นบรรทัดที่สองจะต้องทำงานภายใต้ผู้ใช้minidlnaเพื่อให้ minidlna สามารถเข้าถึงไลบรารีนี้ได้ในภายหลัง

ทั้งนี้ขึ้นอยู่กับการตั้งค่าของคุณคุณอาจได้กำหนดสถานที่สำหรับห้องสมุดอื่น ๆ /var/lib/minidlnaกว่าค่าเริ่มต้น จากนั้นเราอาจต้องการการอนุญาตที่แตกต่างกัน


ขอบคุณสำหรับคำตอบ แต่ไม่ได้ตอบข้อกังวลของฉันเลย ฉันกำลังมองหาการอนุญาตสำหรับโฟลเดอร์ / ไดรฟ์
jjesse
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.