전송 : 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

변경 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 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.