Odmowa dostępu podczas pobierania z deamon transmisji

24

Zainstalowałem xubuntu i demona transmisji, ustawiłem ścieżkę pobierania do mojego programu domowego / użytkownika / telewizyjnego i otrzymałem odmowę dostępu podczas próby pobrania torrentów przez transmisję.

próbowałem chmod -r 777 tego folderu bez powodzenia.

proszę pomóż!

wyjście ps -ef | grep transmisja

chen@htpc:~$ ps -ef | grep transmission
109       1023     1  1 21:46 ?        00:00:35 /usr/bin/transmission-daemon --config-dir /var/lib/transmission-daemon/info

chen@htpc:~$ ps aux | grep transmission
109       1023  3.2  0.4  47684 16620 ?        Ssl  21:46   1:20     /usr/bin/transmission-daemon --config-dir /var/lib/transmission-daemon/info
chen      1852  0.0  0.0   4200   772 pts/0    S+   22:27   0:00 grep --color=auto transmission

enter code here
Chen Kinnrot
źródło
Czy możesz dodać wynik ps -ef | grep transmissiondo pytania. Nie sądzę, żeby demon transmisji domyślnie miał prawo pisać do domowych katalogów.
mikewhthing
Dodałem go, jak dodać uprawnienia do tego użytkownika?
Chen Kinnrot
Cóż, miałem na imię użytkownika, pod którym działa, ale nie jest pokazany. Spróbuj ps aux | grep transmissionzamiast tego.
mikewhthing
Hm ..., wygląda na to, że jego nazwa użytkownika to 109 - trochę dziwne.
mikewhthing
To jest naprawdę dziwne, ale powinno działać poniżej debian-transmission, nie jestem pewien, dlaczego pokazuje głupią liczbę. Możesz to sprawdzić za pomocą id debian-transmission.
mikewhthing

Odpowiedzi:

47

Zakładając, że ścieżka do folderu pobierania to /home/chen/TV shows:

  • dodaj chen do grupy transmisji debian

    sudo usermod -a -G debian-transmission chen
    
  • zmień własność folderu

    sudo chgrp debian-transmission /home/chen/TV\ shows
    
  • przyznać grupie dostęp do zapisu

    sudo chmod 770 /home/chen/TV\ shows
    
  • Zatrzymaj demona za pomocą

    sudo service transmission-daemon stop
    
  • Ostatnią rzeczą do zrobienia jest zmiana maski tworzenia pliku, aby pobrane pliki były zapisywane przez chen.

    sudo nano /etc/transmission-daemon/settings.json
    

    … I zmień "umask": 18na "umask": 2. Naciśnij Ctrl+, Oaby zapisać i Ctrl+, Xaby wyjść.

Uruchom demona za pomocą

sudo service transmission-daemon start
mikewhthing
źródło
W przypadku, gdy ktoś spróbuje cdwejść do swojego katalogu zaraz po zrobieniu tego i otrzyma odmowę dostępu, wyloguj się i zaloguj ponownie. Moja sesja SSH nie miała odpowiednich uprawnień, aby uzyskać dostęp do folderu po tym, jak własność folderu została przekazana debian-tranmissiongrupie (ponieważ mój użytkownik nie został dodany do tej grupy do następnego logowania)
matranomalia
Działa to do momentu, gdy muszę utworzyć nowy folder (np. Pliki torrenta są zagnieżdżone). Potem dostaję odmowę innego pozwolenia.
GDorn
@GDorn Nie powinno tak być. "umask": 2przekłada się na uprawnienia 774 lub rwxrwxr--, co oznacza głupi dostęp dla właściciela i grupy.
mikewhthing
Przydatna odpowiedź, ale może uda mi się zasugerować odpowiedź: Miałem problemy /var/lib/transmission-daemon/.config/transmission-demon/torrents. Ten katalog nie miał uprawnień do zapisu. Zmiana ich wszystkich oświadczyła, że ​​działają.
LP
6

Jest to problem z uprawnieniami na podstawie identyfikatora użytkownika, który uruchamia transmisję. Transmisja ustawia domyślnego użytkownika, którego nie można oczekiwać przy pierwszej instalacji. Nazwa użytkownika to debian-transmission.

Wyjaśnię, jak to zmienić:

  1. Zatrzymaj demona transmisji sudo service transmission-daemon stop
  2. Otwórz plik konfiguracyjny Transmission do edycji: sudo nano /etc/init.d/transmission-daemon
  3. Znajdź wiersz, który mówi, USER=debian-transmissioni zmień go na użytkownika, który jest właścicielem danego folderu. Jeśli nie obawiasz się problemów związanych z bezpieczeństwem, możesz również użyć USER=roottego pliku. (Nie zalecane, ale dobre do rozwiązywania problemów).
  4. Alternatywnie (zamiast punktu 3) zmodyfikuj folder / etc / fstab, aby zamontować folder z poprawnymi uprawnieniami dla użytkownika, który uruchamia demona transmisji.
  5. Uruchom demona transmisji sudo service transmission-daemon start
Terry
źródło
1
To nie zadziała. Tutaj użytkownik transmission-daemon lub root jest również właścicielem pliku „/var/lib/transmission-daemon/info/settings.json”, a jeśli zmienisz demona tak, aby działał jako $ USER, da to Couldn't read "/var/lib/transmission-daemon/info/settings.json": Permission denied. Jakoś to działało w twoim systemie, ale to nie jest właściwy sposób, aby to zrobić.
Khurshid Alam
Działa dzięki. A jeśli używasz systemd, powinieneś edytować Userunder [Service]at /lib/systemd/system/transmission-daemon.service.
zer09
4

Sprawdź, czy używasz „niekompletnego” folderu. Błąd może być w tym przypadku mylący i może to być niekompletny folder, do którego nie masz dostępu do zapisu.

Blockdor
źródło
2
taki był mój przypadek: w ustawieniach miałem niewłaściwy przypadek niekompletnego reż. Tak więc błąd był podwójnie wprowadzający w błąd: błędu nie było w katalogu, o którym mówił błąd, a błąd powinien był zostać „nie znaleziony”, a nie „odmowa dostępu”
Riccardo Cossu
2
To był mój problem! Został zresetowany do / root / niekompletny, co oczywiście nie jest zapisywalne!
Pez Cuckow
1
Co powiedział @RiccardoCossu. Nie mogę głosować wystarczająco.
rocketboy
1

To mi się po prostu przydarzyło. Znalazłem tę stronę, byłem zastraszony przez cały żargon, więc ponownie uruchomiłem Transmisję, zarezerwowałem plik torrenta w innej lokalizacji i zapisałem dane torrenta w tej samej innej lokalizacji (na pulpicie). Działa jak urok ...

Aleksja
źródło
0

Może to być problem z profilem Apparmor. Transmisja przebiega pod sanitized_helperprofilem w apparmor.

Poszukaj skarg w /var/log/kern.log. grep transm /var/log/kern.log, szczególnie zaraz po próbie uruchomienia transmisji, która kończy się niepowodzeniem.

Jim Salter
źródło
0

Ponieważ jest to najlepszy wynik wyszukiwania w Google, dla każdego, kto to czyta, spędzam ponad godzinę próbując go uruchomić. Okazuje się, że folder pobierania określony w pliku settings.json to „Pobrane” zamiast „Pobrane”. Zwróć uwagę na przypadek.

SomeGuest1425125125
źródło
0

W moim przypadku problemem był sposób montowania napędu. Korzystanie z tego /etc/fstabdziałało dla mnie:

UUID=2069-1A05  /mnt/ext   vfat   rw,user,exec,umask=0000   0   0
davidcm
źródło
Pomocny może tu być kontekst ( vfat? Nie jest to typowy system plików Linuksa) - jaki był twój scenariusz, co dokładnie nie działało i jak to naprawiło?
Zanna
0

Podłączenie zewnętrznego dysku do mojego katalogu domowego rozwiązało ten problem;

sudo mkdir / home / plex / media-server

sudo chmod 770 / home / plex / media-server

sudo mount / dev / sdxx / / home / plex / media-drive

Uwaga. sdxx to nazwa twojego dysku twardego. możesz użyć następującego polecenia, aby znaleźć swoje;

sudo blkid

Liquidbender
źródło
-1

Miałem ten sam problem i to był błąd, który popełniłem, łącząc symetrycznie katalog pobierania transmisji z moim katalogiem domowym / użytkownika /, zmieniłem własność pliku symlinkowanego, co w konsekwencji zmieniło również własność transmisji ” pobierz katalog ...

Właśnie wróciłem do własności „Debian-Transmission” i działało to jak urok (bez konieczności restartowania usługi)

#chown debian-transmission:debian-transmission /var/lib/transmission/downloads

(cóż, będziesz musiał sprawdzić, zgodnie z własną dystrybucją Linuksa, kto jest właściwym właścicielem, a ostatecznie także właściwą ścieżkę do katalogu plików do pobrania)

baobab33
źródło
-1

Miałem podobny problem z transmisją. Wystąpił błąd uprawnień podczas pobierania, nawet przy prawidłowych ustawieniach uprawnień do folderu na zewnętrznym dysku twardym USB.

Właśnie zamontowałem zewnętrzny dysk twardy /home/pi/z tymi samymi uprawnieniami i działało dobrze.

mount /dev/sda /home/pi/USB-HDD-MOUNTED

uprawnienia są drwxrwxrwx (0777) pi:debian-transmission. nazwa użytkownika zostanie zmieniona piw /etc/init.d/transmisssion-daemon.

Akos
źródło