Transmission: autorisation refusée sur le disque USB

22

J'ai Raspberry Pi exécutant RaspBMC avec un WD MyBook connecté via USB. Le lecteur est automatiquement monté sur /media/My Book. J'ai créé un dossier /media/My Book/downloadset j'ai défini le répertoire de téléchargement de Trasmission sur /media/My Book/downloads.

Lorsque j'essaie de télécharger un fichier, Transmission dit

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

ls -la me donne

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

Je suppose donc que le problème est que la transmission s'exécute sous un utilisateur différent de piet ne peut pas écrire dans le dossier. Mais quand j'exécute

chmod 777 downloads -R

les opérations réussissent sans aucune erreur mais les permissions ne changent pas, elles restent 700 juste pour le propriétaire.

Qu'est-ce que je fais mal et comment puis-je permettre à Transmission d'écrire dans ce répertoire?

Igor Kulman
la source

Réponses:

19

Après beaucoup de lecture et de frustration. Tout d'abord, assurez-vous que l'utilisateur normal a accès en lecture et en écriture au lecteur USB. Le correctif «non root» correct pour avoir accès en écriture au lecteur USB est:

Étape 1: arrêter le démon de transmission

sudo service transmission-daemon stop

Étape 2: ajouter piau groupe debian-transmission

sudo usermod -a -G debian-transmission pi 

Étape 3: changer l'utilisateur démon

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

Remplacez USERpar pi.

Étape 4 Modifiez les droits du dossier des fichiers de configuration

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

Étape 5: définir les autorisations appropriées pour les dossiers de téléchargement / incomplets

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

Étape 5: démarrer le démon de transmission

sudo service transmission-daemon start

Compilé à partir de:

Biketire
la source
2
Ceci est la seule bonne réponse. Courir comme rootc'est mal. Faire un, chmod 777c'est mal. Définir le bon groupe et l'utilisateur est la seule façon correcte.
CousinCocaine
Ce devrait être la réponse acceptée.
Paulo Rodrigues Pinto
1
C'est peut-être la bonne réponse, mais cela ne fonctionne pas pour moi.
rebolek
J'ai renommé mon nom d'utilisateur de pien quelque chose d'autre. Cependant, lorsque je le fais ls -al, mes fichiers sont toujours dans un pigroupe. Avec les instructions ci-dessus, dois-je changer chaque instance de pimon nouveau nom d'utilisateur, ou dois-je me référer au groupe qui est toujours pi? Ces instructions ne fonctionnent pas lorsque j'ai changé chaque pipour mon nom d'utilisateur.
Keavon
@Keavon "devrais-je changer chaque instance de pi en mon nouveau nom d'utilisateur" Oui, le nouvel utilisateur fait-il également partie du groupe debian-tranmission?
Biketire
11

Le problème était la façon dont le disque USB était automonté. Je l'ai monté manuellement avec le montage -t ntfs-3g et il a commencé à fonctionner.

Igor Kulman
la source
4
La même chose m'est arrivée. Avec le disque dur monté automatiquement, toutes les autorisations ont été définies sur 0700, mais le montage avec sudo mount -t ntfs-3g -o uid=pi,gid=pi /dev/sda1 /media/HDD/elles est 0777 et la transmission fonctionne parfaitement, vraiment bizarre.
Puigcerber
Mon ExFAT se montait automatiquement avec exfat defaults,auto,umask=000,users,rw 0 0, j'ai changé cela pour monter avec piles ID utilisateur exfat defaults,uid=1000,gid=1000 0 0et cela a fonctionné. Vérifiez cette réponse AskUbuntu: problème de propriété / autorisation avec le montage automatique du lecteur
exfat
10

Je ne suis pas un expert Linux, mais vous pouvez essayer cela, peut fonctionner. La plupart de ces informations proviennent de http://www.superfecta.ca/?p=44

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

changement

USER=debian-transmission

à

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

Je sais que l'exécution en tant que root est un gros Linux non non (je ne sais pas si cela compte comme une exécution en root) mais cela a fonctionné pour moi, donc je suis d'accord avec ça. Vous pouvez essayer à la USER=piplace mais je n'ai pas d'amour là-bas, donc je suis resté avec root

Spasmodean
la source
3
Bien sûr, l'exécution en tant que root fonctionne, c'est juste un risque pour la sécurité.
Blaisorblade
Juste quelque chose à ajouter: Linux utilise le fichier / etc / fstab pour configurer les points de montage et les autorisations / propriété du lecteur. Ainsi, vous avez trois choix: exécuter la transmission en tant que root, exécuter la transmission en tant que propriétaire du dossier où réside le lecteur ( ls -lvous dira à qui il appartient) ou modifier le fichier / etc / fstab pour afficher un propriétaire différent (par exemple debian- transmission).
Terry
J'étais confronté à un problème similaire avec l'enregistrement de torrents sur un lecteur NAS monté en tant qu'invité. J'ai essayé toutes les solutions mentionnées partout, mais rien ne fonctionnait pour moi, j'ai donc abandonné et fait exécuter le démon de transmission en tant que root. Je n'aime pas ça, mais c'est la seule chose qui fonctionne.
aalaap
C'est faux et les démons comme celui-ci ne devraient jamais s'exécuter avec les privilèges root. Vous devez supprimer cette réponse car cela endommagerait la configuration des autres peuples.
CousinCocaine
5

Je crois que votre problème est que votre clé USB est formatée en NFTS ou FAT, systèmes de fichiers qui ne prennent pas en charge les autorisations par utilisateur / groupe. La solution consiste à reformater en ext4. Si vous faites cela, vous aurez également beaucoup moins de retard si vous utilisez votre Pi comme centre multimédia. Les pilotes du Pi sont beaucoup plus rapides lorsque vous utilisez ext4.

hifkanotiks
la source
Considérablement plus rapide que ntfs-3g? Pourriez-vous montrer des données pour sauvegarder cette déclaration?
Joseph
@Joseph C'était surtout un problème avec le raspberry pi 1 car NTFS est assez lourd en CPU. Voici une référence des vitesses de transfert: htpcguides.com/wp-content/uploads/2015/03/…
hifkanotiks
4

Aucune des réponses ici n'a fonctionné pour moi, donc j'écris une nouvelle référence à https://pimylifeup.com/raspberry-pi-torrentbox/ qui a très bien fonctionné pour moi et m'a permis d'exécuter la transmission en tant piqu'utilisateur pour accéder à ma clé USB. Cela ne répond pas directement à l'OP mais cette question est très populaire (premier résultat Google) pour ce genre de problème donc je la pose ici.

Entrer:

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

et recherchez USERen haut du fichier et passez à:

USER=pi

Ensuite, nous avons besoin de chowncertains fichiers dans notre étendue d'autorisations:

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

Et puis exécutez (c'est vraiment important sinon le démon du service fonctionnera comme debian-transmission)

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

et usery trouver et changer pour:

user=pi

et recharger l'unité de service

sudo systemctl daemon-reload

Et enfin, nous devons lier notre fichier de paramètres au répertoire de base pi et lui donner les autorisations:

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/

Et puis recommencez la transmission:

sudo service transmission-daemon start

et tu as fini. Cela devrait maintenant fonctionner.

Sammaye
la source
2

Je pense que l' une des principales choses que les gens ont une vue est que vous devez monter votre usb / disque dur externe dans / mnt / dossier myUsbDrive, et pas dans / 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

J'ai essayé chaque réponse donnée dans cette discussion (y compris root) de cent façons différentes avec différentes options et je n'ai pas pu obtenir de transmission pour enregistrer sur mon lecteur SSD USB. Ensuite, lors de la lecture de quelque chose de différent, il a été mentionné de ne pas monter dans / media / pi car les démons ou d'autres groupes peuvent ne pas avoir accès. Je monte donc la clé USB sur / mnt / usb_disk, définit les chemins d'accès dans /etc/transmission-daemon/settings.json sur / mnt / usb_disk / Downloads et la transmission commence à être enregistrée sur le disque.

Pour info, j'ai user = pi dans /etc/init.d/transmission-daemon.

Pour info, j'ai changé le propriétaire de / mnt / usb_disk / Downloads en pi et le groupe en debian-transmission avec 777 permissions.

SolutionHelper
la source
1
sudo chown debian-transmission /downloads

où / téléchargements est le répertoire dans lequel vous souhaitez que vos téléchargements soient (ou l'emplacement de montage).

c'est plus sûr que d'utiliser root.

cela donne à l'utilisateur «droits» de transmission «debian» sur le dossier

laissez tomber
la source
1

J'ai trouvé la même solution qu'Igor et puigcerber. Mon lecteur a été configuré pour un montage automatique, j'ai donc modifié mon fstab pour supprimer le montage automatique, puis utilisésudo mount -t vfat -o uid=pi,gid=pi /dev/sda1 /media/*mymountpoint/

poupée
la source
1

Bien que la réponse de biketire soit correcte, Debian est récemment passé à systemd et vous devez changer d'utilisateur maintenant ici

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

et assurez-vous que dans la section

[Service]

tu as la ligne

User=pi
cstich
la source
1

Solution:

Après beaucoup de lecture et de frustration.

Tout d'abord, assurez-vous que l'utilisateur normal dispose d'un accès en lecture et en écriture au lecteur USB. Le correctif «non root» correct pour avoir accès en écriture au lecteur USB est:

Étape 1: arrêter le démon de transmission

sudo service transmission-daemon stop

Étape 2: ajouter pi au groupe de transmission debian

sudo usermod -a -G debian-transmission pi

Étape 3: changer l'utilisateur démon

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

Changez USER en pi.

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

Changez USER en pi.

Étape 4: modifier les droits du dossier des fichiers de configuration sudo chown -R pi /var/lib/transmission-daemon/info/ sudo chmod 755 /var/lib/transmission-daemon/info/settings.json

Étape 5: définir les autorisations appropriées pour les dossiers de téléchargement / incomplets sudo chown -R pi /somewhere/downloads sudo chown -R pi /somewhere/incomplete

Étape 6: démarrer le démon de transmission

sudo service transmission-daemon start

Sabi
la source
1

J'ai trouvé que le système de fichiers était le problème pour moi. Heureusement, c'était un tout nouveau disque dur USB, donc ce n'était pas un problème pour le formater.

J'ai d'abord formaté le disque dur en ext4

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

Ensuite, j'ai monté le disque dur USB

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

Une fois monté, j'ai changé le groupe pour le disque dur en debian-

sudo chgrp debian-transmission /mnt/rpi_nas/

Enfin, j'ai ajouté l'utilisateur pi au groupe debian-transmission et cela a très bien fonctionné pour mon cas d'utilisation.

Entaille
la source
0

Une fois que vous avez modifié l'utilisateur du démon de transmission pour rooter, le problème des autorisations a disparu avec un partage USB ou SBM.

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

puis changez la ligne utilisateur en:

USER = root

user6220
la source
7
C'est un risque pour la sécurité.
Blaisorblade
C'est faux et les démons comme celui-ci ne devraient jamais s'exécuter avec les privilèges root. Vous devez supprimer cette réponse car cela endommagerait la configuration des autres peuples.
CousinCocaine
0

Le problème est lié au fait que FAT ne reconnaît pas plusieurs utilisateurs.

Si vous utilisez une ligne dans votre fichier fstab telle que / dev / [votre dev] / mnt / usb1 vfat par défaut, uid = 65534, gid = 65534, dmask = 000, fmask = 111 0 0

il devrait monter votre système de fichiers avec les dossiers 777 et les fichiers 666 appartenant à "personne" appartenant à "nogroup"

vous devrez remonter (ou redémarrer) pour que les modifications soient visibles.

JonH
la source
0

Enfin trouvé une solution de travail.

J'ai désactivé le partage automatique des périphériques amovibles dans les paramètres XBIAN et j'ai ajouté le disque à share.conf à la main

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

Il ne suffit pas de l'ajouter à share.conf, le partage automatique doit être désactivé.

Igor Kulman
la source
0

J'ai eu un problème d'autorisations similaire.

J'ai essayé de suivre aveuglément la solution de sabi et j'ai constaté que cela ne fonctionnait pas. Non seulement cela, mais je pense que c'est un peu exagéré.

Dans ma situation, j'ai simplement ignoré le fait que le démon de transmission fonctionnait en tant qu'utilisateur: debian-transmission .

Par conséquent, afin d'accorder la permission au démon de transmission d'écrire dans un dossier ( nom_dossier ), il vous suffit de faire les commandes suivantes:

chgrp -R folder_name
chmod -R 765 folder_name

Cela suppose bien sûr que vous avez correctement configuré settings.json déjà

Liang
la source
-1

chmod 777 devrait donner à chaque utilisateur toutes les autorisations sur un fichier ou un répertoire. Si cela ne fonctionne pas, il est probable que l'utilisateur qui exécute cette commande chmod ne possède pas le répertoire ou le fichier. Par exemple, si root possède / media / My Book / et que l'utilisateur pi ne pourra pas modifier les autorisations de ce fichier. Les trois nombres que vous passez à la commande chmod affectent le propriétaire, le groupe et tous les autres, dans cet ordre. Ainsi, les paramètres les plus courants pour un répertoire sont "chmod 755 somedirectory". Cela signifie que le propriétaire peut lire, écrire et changer dans le répertoire, mais le groupe et tout le monde ne peuvent lire que les fichiers et changer dans le répertoire.

shapr
la source
1
Cette réponse ne répond vraiment pas à la question. Le demandeur a déjà essayé de modifier le fichier et cela n'a pas fonctionné.
hifkanotiks