전송 : USB 디스크에 대한 권한이 거부되었습니다.


22

USB를 사용하여 연결된 WD MyBook과 함께 RaspBMC를 실행하는 Raspberry Pi가 있습니다. 드라이브가에 자동으로 마운트됩니다 /media/My Book. 폴더를 만들었고 /media/My Book/downloadsTrasmission의 다운로드 디렉토리를로 설정했습니다 /media/My Book/downloads.

파일을 다운로드하려고하면 Transmission에

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

ls -la가 나에게 준다

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

문제는 전송이 다른 사용자 pi와 달리 실행되고 폴더에 쓸 수 없다는 것 입니다. 그러나 내가 실행할 때

chmod 777 downloads -R

작업은 오류없이 성공하지만 권한은 변경되지 않으며 소유자 만 700으로 유지됩니다.

내가 뭘 잘못하고 Transmission이 해당 디렉토리에 쓰도록 할 수 있습니까?

답변:


19

많은 독서와 좌절 후. 우선, 일반 사용자가 USB 드라이브에 읽기 및 쓰기 액세스 권한을 가지고 있는지 확인하십시오. USB 드라이브에 쓰기 액세스 권한을 갖는 올바른 '비 루트'수정은 다음과 같습니다.

1 단계 : 전송 데몬 중지

sudo service transmission-daemon stop

2 단계 : pi데비안 전송 그룹에 추가

sudo usermod -a -G debian-transmission pi 

3 단계 : 데몬 사용자 변경

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

변경 USERpi.

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 2016 년

이것이 정답입니다.
Paulo Rodrigues Pinto

1
아마 정답이지만 그것은 효과가 없습니다.
rebolek 2019

사용자 이름을 pi다른 이름으로 변경했습니다 . 그러나 내가 할 때 ls -al파일이 여전히 pi그룹 에있는 것처럼 보입니다 . 위의 지침에 따라 모든 pi사용자 이름을 새 사용자 이름으로 변경해야합니까 , 아니면 여전히 그룹을 참조해야 pi합니까? 모든 pi사용자 이름을 변경할 때이 지침이 작동하지 않습니다 .
Keavon

@Keavon "pi의 모든 인스턴스를 새로운 사용자 이름으로 변경해야합니다"예, debian-tranmission 그룹의 새로운 사용자도 있습니까?
자전거 타이어

11

문제는 USB 디스크가 자동 몽타주되는 방식이었습니다. mount -t ntfs-3g로 수동으로 마운트하고 작동하기 시작했습니다.


4
나도 마찬가지였다. HDD가 자동 마운트되면 모든 권한이 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사용자 ID 로 마운트하도록 변경 exfat defaults,uid=1000,gid=1000 0 0했으며 작동했습니다. 이 AskUbuntu 답변 확인 : 자동 장착 exfat 드라이브의 소유권 / 권한 문제
brasofilo

10

나는 리눅스 전문가는 아니지만 이것을 시도해 볼 수있다. 이것의 대부분은 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

나는 루트로 실행하는 것이 큰 리눅스가 아니라는 것을 알고 있습니다 (루트에서 실행되는 것으로 확실하지는 않지만). 당신은 USER=pi대신 시도 할 수는 있지만 나는 거기에 사랑이 없으므로 뿌리에 붙어 있습니다.


3
물론 루트로 작동하는 것은 보안 위험에 지나지 않습니다.
Blaisorblade

추가해야 할 사항 : Linux는 / etc / fstab 파일을 사용하여 드라이브의 마운트 지점과 권한 / 소유권을 설정합니다. 따라서, 루트로 전송 실행, 드라이브가있는 폴더의 소유자로 전송 실행 (드라이브 ls -l를 소유 한 사람을 알려줄 것) 또는 / etc / fstab 파일을 수정하여 다른 소유자 (예 : debian- 전달).
Terry

게스트로 마운트 된 NAS 드라이브에 급류를 저장하는 것과 비슷한 문제에 직면했습니다. 나는 모든 곳에서 언급 된 모든 솔루션을 시도했지만 아무것도 효과가 없었으므로 전송 데몬을 포기하고 루트로 실행했습니다. 나는 그것을 좋아하지 않지만 그것이 작동하는 유일한 것입니다.
aalaap

이것은 잘못된 것이며 이와 같은 데몬은 절대로 루트 권한으로 실행되어서는 안됩니다. 다른 사람의 설정을 손상시킬 수 있으므로이 답변을 제거해야합니다.
CousinCocaine 2016 년

5

문제는 USB 스틱이 사용자 / 그룹 권한을 지원하지 않는 파일 시스템 인 NFTS 또는 FAT로 포맷되어 있다고 생각합니다. 해결책은 ext4로 다시 포맷하는 것입니다. 그렇게하면 Pi를 미디어 센터로 사용하는 경우 지연이 훨씬 줄어 듭니다. ext4를 사용하면 Pi 용 드라이버가 훨씬 빠릅니다.


ntfs-3g보다 상당히 빠릅니까? 그 진술을 뒷받침 할 데이터를 보여줄 수 있습니까?
Joseph

@Joseph NTFS가 CPU를 많이 사용하기 때문에 라즈베리 파이 1에서 주로 문제가되었습니다. 다음은 전송 속도의 벤치 마크입니다 : htpcguides.com/wp-content/uploads/2015/03/...은
hifkanotiks

4

여기에 대한 답변 중 어느 것도 나를 위해 일하지 않았으므로 https://pimylifeup.com/raspberry-pi-torrentbox/ 를 참조하는 새로운 것을 작성하고 pi있습니다. 이것은 OP에 직접 대답하지는 않지만이 질문은 이런 종류의 문제에 대해 매우 인기가 있습니다 (첫 번째 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가 아닌 USB / 외부 드라이브에 마운트 해야 한다는 것 입니다.

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

이 토론 (루트 포함)에 주어진 모든 단일 답변을 다른 옵션으로 수백 가지 방법으로 시도했지만 USB SSD 드라이브에 저장할 전송을 얻을 수 없었습니다. 그런 다음 다른 것을 읽을 때 데몬이나 다른 그룹에 액세스 권한이 없기 때문에 / media / pi에 마운트하지 않는 것으로 언급되었습니다. 따라서 USB 드라이브를 / mnt / usb_disk에 마운트하고 /etc/transmission-daemon/settings.json의 경로를 / mnt / usb_disk / downloads로 설정하면 전송이 디스크에 저장되기 시작합니다.

참고로 /etc/init.d/transmission-daemon에 user = pi가 있습니다.

참고로, 나는 / mnt / usb_disk / downloads의 소유자를 pi로 변경하고 777 권한으로 debian-transmission으로 그룹화했습니다.


1
sudo chown debian-transmission /downloads

여기서 / downloads는 다운로드 할 디렉토리 (또는 마운트 위치)입니다.

이것은 루트를 사용하는 것보다 안전합니다.

이것은 폴더에 '사용자'에게 '데비안 전송'권한을 부여합니다.


1

Igor 및 puigcerber와 동일한 솔루션을 찾았습니다. 내 드라이브가 자동 마운트로 설정되었으므로 자동 마운트를 제거하도록 fstab을 편집 한 다음sudo mount -t vfat -o uid=pi,gid=pi /dev/sda1 /media/*mymountpoint/


1

biketire의 답변이 정확하지만 최근 데비안이 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 단계 : debian-transmission 그룹에 pi 추가

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-transmission 그룹에 추가했으며 사용 사례에 효과적이었습니다.


0

전송 데몬 사용자를 루트로 변경하면 권한 문제는 usb 또는 smb 공유와 함께 사라집니다.

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

그런 다음 사용자 라인을 다음과 같이 변경하십시오.

USER = 루트


7
보안 상 위험합니다.
Blaisorblade

이것은 잘못된 것이며 이와 같은 데몬은 절대로 루트 권한으로 실행되어서는 안됩니다. 다른 사람의 설정을 손상시킬 수 있으므로이 답변을 제거해야합니다.
CousinCocaine 2016 년

0

이 문제는 여러 사용자를 인식하지 못하는 FAT와 관련이 있습니다.

fstab 파일에서 / dev / [your dev] / mnt / usb1 vfat defaults, uid = 65534, gid = 65534, dmask = 000, fmask = 111 0 0과 같은 줄을 사용하는 경우

"nogroup"에 속하는 "nobody"소유의 폴더 777 및 파일 666으로 파일 시스템을 마운트해야합니다.

변경 사항을 보려면 다시 마운트 (또는 재부팅)해야합니다.


0

마침내 작동하는 솔루션을 찾았습니다.

XBIAN 설정에서 이동식 장치를 자동 공유하는 기능을 해제하고 수동으로 디스크를 shares.conf에 추가했습니다.

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

share.conf에 추가하는 것만으로는 충분하지 않으므로 자동 공유 기능을 해제해야합니다.


0

비슷한 권한 문제가있었습니다.

나는 맹목적으로 해결책을 따르려고 노력했지만 효과가 없다는 것을 알았습니다. 그뿐만 아니라 약간 과잉이라고 생각합니다.

내 상황에서 나는 단순히 전송 데몬 이 사용자로 실행되고 있다는 사실을 간과했다 : debian-transmission .

따라서 전송 데몬이 폴더 ( folder_name ) 에 쓸 수있는 권한을 부여 하려면 다음 명령 만 수행하면됩니다.

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
이 답변은 실제로 질문에 대답하지 않습니다. asker가 이미 파일 chmodding을 시도했지만 작동하지 않았습니다.
hifkanotiks
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.