Передача: відмовлено в дозволі на диску USB


22

У мене Raspberry Pi працює RaspBMC із WD MyBook, підключеним за допомогою USB. Привід автоматично встановлюється на /media/My Book. Я створив папку /media/My Book/downloadsі встановив, що каталог завантажень Trasmission буде таким /media/My Book/downloads.

Коли я намагаюся завантажити файл, передача каже

Error: Permission denied (/media/My Book/downloads/The.Simpsons.S24E09.720p.HDTV.X264-DIMENSION [PublicHD]/The.Simpsons.S24E09.720p.HD

лс -ла дає мені

drwx------ 1 pi       0 Dec 15 16:24 downloads 

Тому я думаю, що проблема полягає в тому, що передача працює під іншим користувачем piта не може писати в папку. Однак коли я страчу

chmod 777 downloads -R

операції вдається без помилок, але дозволи не змінюються, вони залишаються 700 лише для власника.

Що я роблю неправильно і як я можу увімкнути передачу запису до цього каталогу?

Відповіді:


19

Після численних читань та розчарувань. Перш за все, переконайтеся, що звичайний користувач читав і записував доступ до USB-накопичувача. Правильне виправлення "не-root" для доступу до запису на USB-накопичувач:

Крок 1: Зупинка демона передачі

sudo service transmission-daemon stop

Крок 2: Додайте piдо групи передачі debian

sudo usermod -a -G debian-transmission pi 

Крок 3: зміна демона-користувача

sudo nano /etc/init.d/transmission-daemon

Змінити USERна pi.

Крок 4 Зміна прав папки файлів конфігурації

sudo chown -R pi /var/lib/transmission-daemon/info/
sudo chmod 755 /var/lib/transmission-daemon/info/settings.json 

Крок 5: Встановіть правильні дозволи для завантаження / неповних папок

sudo chown -R pi /somewhere/downloads
sudo chown -R pi /somewhere/incomplete

Крок 5: Почніть демон передачі

sudo service transmission-daemon start

Складено з:


2
Це єдина правильна відповідь. Бігати як rootнеправильно. Робити chmod 777неправильно Встановлення правильної групи та користувача - єдиний правильний спосіб.
CousinCocaine

Це має бути прийнятою відповіддю.
Пауло Родрігес Пінто

1
Можливо, це правильна відповідь, але це не працює для мене.
реболек

Я перейменував своє ім’я користувача piна щось інше. Однак, коли я ls -alце роблю, здається, що мої файли все ще в piгрупі. Маючи вищезазначені інструкції, чи слід змінювати кожен примірник piмого нового імені користувача, чи звертатися до групи, яка все ще є pi? Ці вказівки не діють, коли я змінював кожне piім’я користувача.
Keavon

@Keavon "чи слід змінити кожен екземпляр pi на моє нове ім'я користувача" Так, чи є новий користувач у групі debian-tranmission?
Бікетира

11

Проблема полягала в тому, як USB-диск був автоматизований. Я встановив це вручну за допомогою mount -t ntfs-3g, і він почав працювати.


4
Те саме сталося і зі мною. З автоматичним встановленням на жорсткий диск усі дозволи були встановлені на 0700, але встановлення з ним sudo mount -t ntfs-3g -o uid=pi,gid=pi /dev/sda1 /media/HDD/- 0777, а передача працює чудово, справді дивно.
Puigcerber

Моя програма ExFAT автоматично встановлювалась exfat defaults,auto,umask=000,users,rw 0 0, я змінив її на монтування з piідентифікаторами користувачів, exfat defaults,uid=1000,gid=1000 0 0і вона спрацювала. Перевірте відповідь AskUbuntu: Проблема з власністю / дозволом на автоматичний привід
exfat

10

Я не експерт по Linux, але ви можете спробувати це, можливо, спрацює. Більшість це інформація, отримана з http://www.superfecta.ca/?p=44

sudo service transmission-daemon stop
sudo nano /etc/init.d/transmission-daemon

змінити

USER=debian-transmission

до

USER=root
ctrl-x
Y
# hit enter to overwrite
sudo service transmission-daemon start

Я знаю, що запуск root є великим Linux, ні ні (не впевнений, чи вважається це запущеним у root), але він працював на мене, тому я з ним добре. Ви можете спробувати USER=piнатомість, але я там не кохав, тому я затримався корінь


3
Звичайно, що він працює як root, це лише ризик безпеки.
Blaisorblade

Ще щось додати: Linux використовує / etc / fstab файл для встановлення точок монтажу та дозволів / права власності на накопичувач. Отже, у вас є три варіанти: запустити передачу як root, запустити передачу як власник папки, в якій знаходиться привід ( ls -lскаже вам, хто є ним власником), або змініть файл / etc / fstab, щоб показати іншого власника (тобто debian- передача).
Террі

Я зіткнувся з подібною проблемою із збереженням торрентів на накопичувачі NAS, встановлених як гість. Я спробував усі рішення, згадані скрізь, але нічого не спрацювало для мене, тому я відмовився і змусив передачу-демон переходити як root. Мені це не подобається, але це єдине, що працює.
aalaap

Це неправильно, і такі демони ніколи не повинні працювати з привілеями root. Вам слід видалити цю відповідь, оскільки це пошкодить налаштування інших людей.
CousinCocaine

5

Я вважаю, що вашою проблемою є те, що USB-накопичувач відформатований як NFTS або FAT, файлові системи, які не підтримують дозволів для кожного користувача / групи. Рішення полягає в переформатуванні як ext4. Якщо ви це зробите, у вас також буде набагато менше відставань, якщо ви використовуєте Pi як медіа-центр. Драйвери для Pi набагато швидше, коли ви використовуєте ext4.


Значно швидше, ніж ntfs-3g? Чи можете ви показати деякі дані, щоб створити резервну копію цього твердження?
Йосиф

@Joseph В основному це була проблема з малиною pi 1, оскільки NTFS досить важка для процесора. Ось орієнтир швидкості передачі: htpcguides.com/wp-content/uploads/2015/03/…
hifkanotiks

4

Жодна з відповідей тут не працювала для мене, тому я пишу новий з посиланням https://pimylifeup.com/raspberry-pi-torrentbox/, який працював для мене чудово і дозволив мені запустити передачу як piкористувач, щоб отримати доступ до мого USB-накопичувача. Це не відповідає безпосередньо на ОП, але це питання дуже популярне (перший результат Google) для подібних проблем, тому я поставив його тут.

Введіть:

sudo vi /etc/init.d/transmission-daemon

і знайдіть USERу верхній частині файлу та змініть на:

USER=pi

Тоді нам знадобиться chownкілька файлів, що входять до нашого дозволу:

sudo chown -R pi:pi /etc/transmission-daemon
sudo chown -R pi:pi /etc/init.d/transmission-daemon
sudo chown -R pi:pi /var/lib/transmission-daemon

А потім запустіть (це дійсно важливо, інакше демон із сервісу просто запуститься як debian-transmission)

sudo vi /etc/systemd/system/multi-user.target.wants/transmission-daemon.service

і знайдіть userтам і змініть на:

user=pi

і перезавантажити блок обслуговування

sudo systemctl daemon-reload

І, нарешті, нам потрібно позначити наш файл налаштувань до домашнього каталогу pi та надати йому дозволи:

sudo mkdir -p /home/pi/.config/transmission-daemon/
sudo ln -s /etc/transmission-daemon/settings.json /home/pi/.config/transmission-daemon/
sudo chown -R pi:pi /home/pi/.config/transmission-daemon/

А потім знову почніть передачу:

sudo service transmission-daemon start

і ви закінчили. Зараз має працювати.


2

Я думаю, що однією з головних речей, яку люди не помічають, є те, що ви повинні встановити ваш usb / зовнішній диск у папку / mnt / myUsbDrive, а не в / media / pi / myUsbDrive.

sudo umount /media/pi/usb_disk
sudo mkdir /mnt/usb_disk
sudo mount -t ntfs-3g -o uid=pi,gid=pi /dev/sda1 /mnt/usb_disk

Я намагався кожну відповідь, дану на цій дискусії (включаючи root), сто різними способами з різними параметрами і не міг отримати передачу, щоб заощадити на своєму накопичувачі SSD. Тоді, читаючи щось інше, згадувалося, що він не встановлюється в / media / pi, оскільки демони чи інші групи можуть не мати доступу. Отже, я монтую USB-накопичувач до / mnt / usb_disk, встановлюю шляхи в /etc/transmission-daemon/settings.json до / mnt / usb_disk / завантаження та передача починається збереження на диску.

FYI, у мене є user = pi в /etc/init.d/transmission-daemon.

FYI, я змінив власника / mnt / usb_disk / завантаження на pi та групувати на debian-передачу з 777 дозволами.


1
sudo chown debian-transmission /downloads

де / завантаження - це каталог, у якому ви хочете, щоб ваші завантаження знаходилися (або місце монтажу).

це безпечніше, ніж використання root.

це дає права "користувачеві", відомому як "debian-передачі", права на папку


1

Я знайшов таке саме рішення, як Ігор та пуйгербер. Мій накопичувач був встановлений на автоматичне кріплення, тому я відредагував свій fstab, щоб видалити автоматичний засіб, а потім використовувавсяsudo mount -t vfat -o uid=pi,gid=pi /dev/sda1 /media/*mymountpoint/


1

Хоча відповідь biketire є правильною, Debian перейшов на systemd останнім часом, і ви повинні змінити користувача зараз тут

sudo nano /etc/systemd/system/multi-user.target.wants/transmission-daemon.service

і переконайтеся, що в розділі

[Service]

у вас є лінія

User=pi

1

Рішення:

Після багато читання та розчарування.

Перш за все, переконайтеся, що звичайний користувач читав і записував доступ до USB-накопичувача. Правильне виправлення "некорінь" для доступу запису на USB-накопичувач:

Крок 1: Зупинка демона передачі

sudo service transmission-daemon stop

Крок 2: Додайте pi до групи передачі debian

sudo usermod -a -G debian-transmission pi

Крок 3: зміна демона-користувача

sudo nano /etc/init.d/transmission-daemon

Змініть USER на pi.

sudo nano /etc/systemd/system/multi-user.target.wants/transmission-daemon.service

Змініть USER на pi.

Крок 4: Змінення прав папки файлів конфігурації sudo chown -R pi /var/lib/transmission-daemon/info/ sudo chmod 755 /var/lib/transmission-daemon/info/settings.json

Крок 5: Встановіть правильні дозволи для завантаження / неповних папок sudo chown -R pi /somewhere/downloads sudo chown -R pi /somewhere/incomplete

Крок 6: Почніть демон передачі

sudo service transmission-daemon start


1

Я виявив, що файлова система була для мене проблемою. На щастя, це був абсолютно новий жорсткий диск usb, тому не вдалось відформатувати його.

Я вперше відформатував жорсткий диск на ext4

sudo mkfs.ext4 /dev/<usb disk> -L <diskname>

Потім я встановив жорсткий диск usb

sudo mount /dev/<usb disk> /mnt/<my mount folder>

Після встановлення я змінив групу на жорсткий диск на debian-

sudo chgrp debian-transmission /mnt/rpi_nas/

Нарешті я додав користувача pi в групу передачі debian, і це чудово спрацювало для мого використання.


0

Після того, як ви зміните користувача передач-демона на корінь, проблема з дозволом перестане працювати з умовою доступу або usb.

sudo nano /etc/init.d/transmission-daemon

потім змініть рядок користувача на:

USER = корінь


7
Це ризик для безпеки.
Blaisorblade

Це неправильно, і такі демони ніколи не повинні працювати з привілеями root. Вам слід видалити цю відповідь, оскільки це пошкодить налаштування інших людей.
CousinCocaine

0

Проблема стосується FAT не розпізнає декількох користувачів.

Якщо ви використовуєте рядок у файлі fstab, такий як / dev / [ваш dev] / mnt / usb1 vfat за замовчуванням, uid = 65534, gid = 65534, dmask = 000, fmask = 111 0 0

він повинен монтувати вашу файлову систему з папками 777 та файлами як 666, що належать "ніхто", що належить до "ноггрупи"

вам потрібно буде зробити повторний ремонт (або перезавантажити), щоб зміни з’явились.


0

Нарешті знайшов робоче рішення.

Я перетворив знімні пристрої для автоматичного обміну в налаштуваннях XBIAN і додав диск до share.conf вручну

[mybook]
    path = /media/mybook
    guest ok = yes
    read only = no
    browseable = yes
    writeable = yes
    force user = xbian

Достатньо лише додати його до share.conf недостатньо, автоматичне розміщення потрібно вимкнути.


0

У мене була аналогічна проблема дозволів.

Я спробував сліпо слідувати розчину сабі і виявив, що він не працює. Мало того, але я вважаю, що це трохи надмірно.

У своїй ситуації я просто не помітив того, що передача-демон працює як користувач: debian-передача .

Отже, для надання дозволу передачі-демону на запис у папку ( ім'я_папки ), потрібно просто виконати такі команди:

chgrp -R folder_name
chmod -R 765 folder_name

Це за умови, звичайно , що ви правильно налаштовані settings.json вже


-1

chmod 777 повинен надати кожному користувачеві всі права на файл або каталог. Якщо це не працює, ймовірно, що користувач, який виконує цю команду chmod, не володіє каталогом або файлом. Наприклад, якщо root володіє / media / My Book / і користувач pi не зможе змінити дозволи цього файлу. Три числа, які ви передаєте команді chmod, впливають на власника, групу та всіх інших у цьому порядку. Таким чином, найпоширеніші параметри для каталогу - це "chmod 755 somedirectory". Це означає, що власник може читати, записувати та змінювати в каталог, але група та всі інші можуть лише читати файли та змінюватись у каталозі.


1
Ця відповідь справді не відповідає на питання. Автор запитував вже chmodding файл, і він не працював.
hifkanotiks
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.