Übertragung: Berechtigung auf USB-Datenträger verweigert


21

Ich habe Raspberry Pi mit RaspBMC und einem WD MyBook, das über USB angeschlossen ist. Das Laufwerk wird automatisch an gemountet /media/My Book. Ich habe einen Ordner erstellt /media/My Book/downloadsund das Download-Verzeichnis von Trasmission auf festgelegt /media/My Book/downloads.

Wenn ich versuche, eine Datei herunterzuladen, sagt Transmission

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

ls -la gibt mir

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

Ich schätze, das Problem ist, dass die Übertragung unter einem anderen Benutzer als ausgeführt wird piund nicht in den Ordner schreiben kann. Jedoch wenn ich ausführe

chmod 777 downloads -R

Der Vorgang ist ohne Fehler erfolgreich, aber die Berechtigungen ändern sich nicht. Sie verbleiben nur für den Eigentümer bei 700.

Was mache ich falsch und wie kann ich aktivieren, dass Transmission in dieses Verzeichnis schreibt?

Antworten:


18

Nach viel Lesen und Frust. Stellen Sie zunächst sicher, dass der normale Benutzer Lese- und Schreibzugriff auf das USB-Laufwerk hat. Der richtige Fix für Nicht-Root-Benutzer, um Schreibzugriff auf das USB-Laufwerk zu erhalten, lautet:

Schritt 1: Stoppen Sie den Übertragungsdämon

sudo service transmission-daemon stop

Schritt 2: piZur Debian-Übertragungsgruppe hinzufügen

sudo usermod -a -G debian-transmission pi 

Schritt 3: Ändern des Daemon-Benutzers

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

Wechseln Sie USERzu pi.

Schritt 4 Ändern Sie die Rechte des Konfigurationsdateienordners

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

Schritt 5: Legen Sie die richtigen Berechtigungen für die Download- / unvollständigen Ordner fest

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

Schritt 5: Starten Sie den Übertragungsdämon

sudo service transmission-daemon start

Zusammengestellt aus:


2
Dies ist die einzig richtige Antwort. Laufen wie rootes falsch ist. A zu tun chmod 777ist falsch. Das Einstellen der richtigen Gruppe und des richtigen Benutzers ist der einzig richtige Weg.
CousinCocaine

Dies sollte die akzeptierte Antwort sein.
Paulo Rodrigues Pinto

1
Vielleicht ist es die richtige Antwort, aber bei mir funktioniert es nicht.
Rebolek

Ich habe meinen Benutzernamen von piin etwas anderes umbenannt. Wenn ich dies ls -aljedoch tue , befinden sich meine Dateien immer noch in einer piGruppe. Sollte ich mit den obigen Anweisungen jede Instanz von piin meinen neuen Benutzernamen ändern oder auf die Gruppe verweisen, die noch vorhanden ist pi? Diese Anweisungen funktionieren nicht, wenn ich jeweils pimeinen Benutzernamen geändert habe.
Keavon

@Keavon "sollte ich jede Instanz von pi in meinen neuen Benutzernamen ändern" Ja, ist auch der neue Benutzer in der debian-tranmission-Gruppe?
Biketire

11

Das Problem war die Art und Weise, wie das USB-Laufwerk automatisch installiert wurde. Ich habe es manuell mit mount -t ntfs-3g gemountet und es fing an zu funktionieren.


4
Das gleiche ist mir passiert. Mit der automatisch gemounteten Festplatte wurden alle Berechtigungen auf 0700 gesetzt, aber beim Mounten mit sudo mount -t ntfs-3g -o uid=pi,gid=pi /dev/sda1 /media/HDD/0777 funktioniert die Übertragung einwandfrei, wirklich komisch.
Puigcerber

Mein ExFAT wurde automatisch mit exfat defaults,auto,umask=000,users,rw 0 0gemountet, ich habe das so geändert, dass es mit piBenutzer-IDs gemountet wurde exfat defaults,uid=1000,gid=1000 0 0und es hat funktioniert. Aktivieren Sie diese AskUbuntu-Antwort: Besitz- / Berechtigungsproblem beim automatischen
Einbinden des

10

Ich bin kein Linux-Experte, aber Sie könnten es versuchen, es könnte funktionieren. Die meisten Informationen stammen von http://www.superfecta.ca/?p=44

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

Veränderung

USER=debian-transmission

zu

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

Ich weiß, als root zu laufen, ist ein großes Linux. Du könntest es USER=pistattdessen versuchen, aber ich habe dort keine Liebe, also bin ich bei root geblieben


3
Natürlich läuft es als root, es ist nur ein Sicherheitsrisiko.
Blaisorblade

Nur etwas zum Hinzufügen: Linux verwendet die Datei / etc / fstab, um Mount-Punkte und Berechtigungen / Besitz des Laufwerks einzurichten. Sie haben also drei Möglichkeiten: Führen Sie die Übertragung als Root aus, führen Sie die Übertragung als Eigentümer des Ordners aus, in dem sich das Laufwerk befindet ( ls -lteilt Ihnen mit, wem es gehört), oder ändern Sie die Datei / etc / fstab, um einen anderen Eigentümer anzuzeigen (z. B. debian- Getriebe).
Terry

Ich hatte ein ähnliches Problem mit dem Speichern von Torrents auf einem als Gast bereitgestellten NAS-Laufwerk. Ich habe alle Lösungen ausprobiert, die überall erwähnt wurden, aber nichts hat mir geholfen, also habe ich aufgegeben und den Transmission-Daemon als Root ausgeführt. Ich mag es nicht, aber es ist das einzige, was funktioniert.
Aalaap

Dies ist falsch und Dämonen wie diese sollten niemals mit Root-Rechten ausgeführt werden. Sie sollten diese Antwort entfernen, da dies das Setup anderer Personen beschädigt.
CousinCocaine

5

Ich glaube, Ihr Problem ist, dass Ihr USB-Stick als NFTS oder FAT formatiert ist, Dateisysteme, die die Berechtigungen pro Benutzer / Gruppe nicht unterstützen. Die Lösung ist die Neuformatierung in ext4. Wenn Sie das tun, werden Sie auch viel weniger Verzögerungen haben, wenn Sie Ihren Pi als Media Center verwenden. Die Treiber für den Pi sind viel schneller, wenn Sie ext4 verwenden.


Deutlich schneller als ntfs-3g? Können Sie einige Daten anzeigen, um diese Aussage zu stützen?
Joseph

@ Joseph Es war meistens ein Problem mit dem Himbeer-Pi 1, da NTFS ziemlich CPU-lastig ist. Hier ist ein Benchmark der Übertragungsgeschwindigkeiten: htpcguides.com/wp-content/uploads/2015/03/…
hifkanotiks

4

Keine der Antworten hier hat für mich funktioniert, daher schreibe ich eine neue, die auf https://pimylifeup.com/raspberry-pi-torrentbox/ verweist. Diese funktionierte hervorragend und ermöglichte mir die Übertragung als piBenutzer, um auf mein USB-Laufwerk zuzugreifen. Dies ist keine direkte Antwort auf das OP, aber diese Frage ist sehr beliebt (erstes Google-Ergebnis) für diese Art von Problem, also habe ich sie hier gestellt.

Eingeben:

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

und finden Sie USERoben in der Datei und wechseln Sie zu:

USER=pi

Dann müssen wir chowneinige Dateien in unseren Berechtigungsumfang aufnehmen:

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

Und dann laufen (das ist wirklich wichtig, sonst läuft der Daemon vom Service einfach so debian-transmission)

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

und dort userfinden und wechseln zu:

user=pi

und das Nachladen der Serviceeinheit

sudo systemctl daemon-reload

Und schließlich müssen wir unsere Einstellungsdatei mit dem pi-Ausgangsverzeichnis verknüpfen und ihm Berechtigungen erteilen:

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/

Und dann starten Sie die Übertragung erneut:

sudo service transmission-daemon start

und du bist fertig. Es sollte jetzt funktionieren.


2

Ich glaube , eines der wichtigsten Dinge , die Menschen mit Blick auf sind , ist , dass Sie sollten Ihre usb / externes Laufwerk in Mount / mnt / myUsbDrive Ordner und NICHT in / 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

Ich habe jede einzelne Antwort in dieser Diskussion (einschließlich root) auf hundert verschiedene Arten mit verschiedenen Optionen ausprobiert und konnte keine Übertragung erhalten, um sie auf meinem USB-SSD-Laufwerk zu speichern. Während Sie etwas anderes lesen, wurde erwähnt, dass Sie nicht in / media / pi mounten sollen, da Dämonen oder andere Gruppen möglicherweise keinen Zugriff haben. Also binde ich das USB-Laufwerk in / mnt / usb_disk ein, setze die Pfade in /etc/transmission-daemon/settings.json auf / mnt / usb_disk / downloads und die Übertragung beginnt auf der Festplatte zu speichern.

Zu Ihrer Information, ich habe user = pi in /etc/init.d/transmission-daemon.

Zu Ihrer Information, ich habe den Besitzer von / mnt / usb_disk / downloads in pi geändert und die Debian-Übertragung mit 777 Berechtigungen gruppiert.


1
sudo chown debian-transmission /downloads

Dabei ist / downloads das Verzeichnis, in dem sich Ihre Downloads befinden sollen (oder der Einhängeort).

Dies ist sicherer als die Verwendung von root.

Dadurch erhält der Benutzer die Berechtigung "debian-transmission" für den Ordner


1

Ich fand die gleiche Lösung wie Igor und Puigcerber. Mein Laufwerk war auf automatisches Mounten eingestellt, daher habe ich meine fstab bearbeitet, um das automatische Mounten zu entfernen, und dann verwendetsudo mount -t vfat -o uid=pi,gid=pi /dev/sda1 /media/*mymountpoint/


1

Während die Antwort von biketire richtig ist, hat debian kürzlich auf systemd umgestellt und Sie müssen den Benutzer jetzt hier ändern

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

und stellen Sie sicher, dass in dem Abschnitt

[Service]

Du hast die Leitung

User=pi

1

Lösung:

Nach viel Lesen und Frust.

Stellen Sie zunächst sicher, dass der normale Benutzer Lese- und Schreibzugriff auf das USB-Laufwerk hat. Das richtige Update für den Schreibzugriff auf das USB-Laufwerk ohne Rootberechtigung lautet:

Schritt 1: Stoppen Sie den Übertragungsdämon

sudo service transmission-daemon stop

Schritt 2: Füge pi zur Debian-Übertragungsgruppe hinzu

sudo usermod -a -G debian-transmission pi

Schritt 3: Ändern des Daemon-Benutzers

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

Ändern Sie USER in pi.

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

Ändern Sie USER in pi.

Schritt 4: Ändern Sie die Rechte des Konfigurationsdateienordners sudo chown -R pi /var/lib/transmission-daemon/info/ sudo chmod 755 /var/lib/transmission-daemon/info/settings.json

Schritt 5: Legen Sie die richtigen Berechtigungen für die Download- / unvollständigen Ordner fest sudo chown -R pi /somewhere/downloads sudo chown -R pi /somewhere/incomplete

Schritt 6: Starten Sie den Übertragungsdämon

sudo service transmission-daemon start


1

Ich fand, dass das Dateisystem das Problem für mich war. Zum Glück war es eine brandneue USB-Festplatte, daher war das Formatieren kein Problem.

Ich habe die Festplatte zuerst auf ext4 formatiert

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

Dann habe ich die USB-Festplatte gemountet

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

Einmal gemountet habe ich die Gruppe für die Festplatte geändert debian-

sudo chgrp debian-transmission /mnt/rpi_nas/

Schließlich habe ich den pi-Benutzer zur debian-transmission group hinzugefügt und es hat für meinen Anwendungsfall hervorragend funktioniert.


0

Sobald Sie den Benutzer des Übertragungs-Daemons in "root" ändern, ist das Berechtigungsproblem mit einer USB- oder SMB-Freigabe behoben.

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

Ändern Sie dann die Benutzerzeile in:

USER = root


7
Das ist ein Sicherheitsrisiko.
Blaisorblade

Dies ist falsch und Dämonen wie diese sollten niemals mit Root-Rechten ausgeführt werden. Sie sollten diese Antwort entfernen, da dies das Setup anderer Personen beschädigt.
CousinCocaine

0

Das Problem bezieht sich darauf, dass FAT nicht mehrere Benutzer erkennt.

Wenn Sie in Ihrer fstab-Datei eine Zeile verwenden, z. B. / dev / [your dev] / mnt / usb1 vfat, ist uid = 65534, gid = 65534, dmask = 000, fmask = 111 0 0

es sollte Ihr Dateisystem mit Ordnern 777 und Dateien als 666 mounten, die "nobody" gehören, das zu "nogroup" gehört

Sie müssen erneut einhängen (oder neu starten), damit die Änderungen angezeigt werden.


0

Endlich eine funktionierende Lösung gefunden.

Ich habe die automatische Freigabe von Wechseldatenträgern in den XBIAN-Einstellungen deaktiviert und die Festplatte von Hand zur shares.conf hinzugefügt

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

Das Hinzufügen zu shares.conf reicht nicht aus, das automatische Teilen muss deaktiviert sein.


0

Ich hatte ein ähnliches Berechtigungsproblem.

Ich habe versucht, sabis Lösung blind zu folgen und festgestellt, dass es nicht funktioniert hat. Nicht nur das, aber ich glaube, es ist ein bisschen übertrieben.

In meiner Situation habe ich einfach übersehen, dass der Transmission-Daemon als Benutzer ausgeführt wird: debian-transmission .

Um dem Übertragungsdämon die Berechtigung zum Schreiben in einen Ordner ( Ordnername ) zu erteilen , müssen Sie daher nur die folgenden Befehle ausführen:

chgrp -R folder_name
chmod -R 765 folder_name

Dies setzt natürlich voraus, dass Sie richtig konfiguriert haben settings.json bereits


-1

chmod 777 sollte jedem Benutzer alle Berechtigungen für eine Datei oder ein Verzeichnis erteilen. Wenn dies nicht funktioniert, ist es wahrscheinlich, dass der Benutzer, der diesen chmod-Befehl ausführt, nicht Eigentümer des Verzeichnisses oder der Datei ist. Wenn beispielsweise root / media / My Book / besitzt und der pi-Benutzer die Berechtigungen dieser Datei nicht ändern kann. Die drei Zahlen, die Sie an den Befehl chmod übergeben, wirken sich auf den Eigentümer, die Gruppe und alle anderen in dieser Reihenfolge aus. Daher sind die häufigsten Einstellungen für ein Verzeichnis "chmod 755 somedirectory". Das bedeutet, dass der Eigentümer in das Verzeichnis lesen, schreiben und wechseln kann, die Gruppe und alle anderen jedoch nur Dateien lesen und in das Verzeichnis wechseln können.


1
Diese Antwort beantwortet die Frage wirklich nicht. Der Fragesteller hat bereits versucht, die Datei zu modifizieren und es hat nicht funktioniert.
Hifkanotiks
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.