Truyền: quyền bị từ chối trên đĩa USB


21

Tôi có Raspberry Pi chạy RaspBMC với WD MyBook được kết nối bằng USB. Ổ đĩa được tự động gắn vào /media/My Book. Tôi đã tạo một thư mục /media/My Book/downloadsvà tôi đã đặt thư mục tải xuống của Trasmission thành /media/My Book/downloads.

Khi tôi cố tải xuống một tập tin, Transmission nói

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

ls -la cho tôi

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

Vì vậy, tôi đoán vấn đề là việc truyền tải chạy dưới người dùng khác pichứ không thể ghi vào thư mục. Tuy nhiên khi tôi thực thi

chmod 777 downloads -R

Các hoạt động thành công mà không có bất kỳ lỗi nào nhưng các quyền không thay đổi, chúng chỉ giữ lại 700 cho chủ sở hữu.

Tôi đang làm gì sai và làm cách nào tôi có thể kích hoạt Transmission để ghi vào thư mục đó?

Câu trả lời:


18

Sau rất nhiều đọc và thất vọng. Trước hết, đảm bảo người dùng bình thường đã đọc và ghi acc vào ổ USB. Cách khắc phục 'không root' chính xác để có các điểm ghi vào ổ USB là:

Bước 1: Dừng trình nền truyền

sudo service transmission-daemon stop

Bước 2: Thêm vào pinhóm truyền debian

sudo usermod -a -G debian-transmission pi 

Bước 3: thay đổi người dùng daemon

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

Thay đổi USERthành pi.

Bước 4 Thay đổi quyền của thư mục tệp cấu hình

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

Bước 5: Đặt quyền chính xác cho các thư mục tải xuống / không đầy đủ

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

Bước 5: Bắt đầu truyền daemon

sudo service transmission-daemon start

Tổng hợp từ:


2
Đây là câu trả lời đúng duy nhất. Chạy như rootlà sai. Làm một chmod 777là sai. Đặt đúng nhóm và người dùng là cách chính xác duy nhất.
Anh em họ

Đây phải là câu trả lời được chấp nhận.
Paulo Coleues Pinto

1
Có lẽ đó là câu trả lời đúng nhưng nó không hiệu quả với tôi.
rebolek

Tôi đã đổi tên người dùng của mình từ pimột cái khác. Tuy nhiên, khi tôi làm điều ls -alđó xuất hiện các tập tin của tôi vẫn trong một pinhóm. Với các hướng dẫn ở trên, tôi có nên thay đổi mọi phiên bản của pitên người dùng mới của mình không, hoặc có bất kỳ tham chiếu nào đến nhóm vẫn còn pikhông? Các hướng dẫn này không hoạt động khi tôi thay đổi pitên người dùng.
Keavon

@Keavon "tôi có nên thay đổi mọi phiên bản pi thành tên người dùng mới của mình không" Có, cũng là người dùng mới trong nhóm debian-tranmission?
Xe đạp

11

Vấn đề là cách đĩa USB được tự động hóa. Tôi gắn nó thủ công với mount -t ntfs-3g và nó bắt đầu hoạt động.


4
Điều tương tự cũng xảy ra với tôi. Với ổ cứng tự động, tất cả các quyền đã được đặt thành 0700, nhưng gắn với sudo mount -t ntfs-3g -o uid=pi,gid=pi /dev/sda1 /media/HDD/chúng là 0777 và truyền hoạt động hoàn hảo, thực sự kỳ lạ.
Puigcerber

ExFAT của tôi được tự động gắn kết exfat defaults,auto,umask=000,users,rw 0 0, tôi đã thay đổi nó để gắn với piID người dùng exfat defaults,uid=1000,gid=1000 0 0và nó đã hoạt động. Kiểm tra câu trả lời này của AskUbfox: Vấn đề quyền sở hữu / quyền với ổ đĩa exfat tự động
brasofilo

10

Tôi không phải là chuyên gia linux, nhưng bạn có thể thử cái này, có thể hoạt động. Hầu hết trong số này là thông tin đến từ http://www.superinfa.ca/?p=44

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

thay đổi

USER=debian-transmission

đến

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

Tôi biết chạy bằng root là một linux lớn không không (không chắc nó có được tính là chạy root hay không) nhưng nó hoạt động với tôi vì vậy tôi ổn với nó. Bạn có thể thử USER=pithay thế nhưng tôi không có tình yêu ở đó, vì vậy tôi bị mắc kẹt với root


3
Tất nhiên chạy như root hoạt động, nó chỉ là một rủi ro bảo mật.
Blaisorblade

Chỉ cần thêm một cái gì đó: Linux sử dụng tệp / etc / fstab để thiết lập các điểm gắn kết và quyền / quyền sở hữu ổ đĩa. Vì vậy, bạn có ba lựa chọn, chạy truyền dưới dạng root, chạy truyền với tư cách là chủ sở hữu của thư mục chứa ổ đĩa ( ls -lsẽ cho bạn biết ai sở hữu nó) hoặc sửa đổi tệp / etc / fstab để hiển thị chủ sở hữu khác (ví dụ: debian- truyền tải).
Terry

Tôi đã phải đối mặt với một vấn đề tương tự với việc lưu torrent trên ổ NAS gắn với tư cách khách. Tôi đã thử tất cả các giải pháp được đề cập ở khắp mọi nơi, nhưng không có gì hiệu quả với tôi, vì vậy tôi đã từ bỏ và thực hiện truyền tải daemon với quyền root. Tôi không thích nó, nhưng đó là điều duy nhất hoạt động.
aalaap

Điều này là sai và daemon như thế này không bao giờ nên chạy với quyền root. Bạn nên xóa câu trả lời này vì điều này sẽ làm hỏng thiết lập của những người khác.
Anh em họ

5

Tôi tin rằng vấn đề của bạn là thanh USB của bạn được định dạng là NFTS hoặc FAT, các hệ thống tệp không hỗ trợ quyền cho mỗi người dùng / nhóm. Giải pháp là định dạng lại thành ext4. Nếu bạn làm điều đó, bạn cũng sẽ có độ trễ ít hơn nhiều nếu bạn đang sử dụng Pi của mình làm trung tâm truyền thông. Các trình điều khiển cho Pi nhanh hơn nhiều khi bạn sử dụng ext4.


Nhanh hơn đáng kể so với ntfs-3g? Bạn có thể hiển thị một số dữ liệu để sao lưu tuyên bố đó?
Joseph

@Joseph Đây hầu như là một vấn đề với raspberry pi 1 vì NTFS khá nặng CPU. Dưới đây là điểm chuẩn của tốc độ truyền: htpcguides.com/wp-content/uploads/2015/03/ Kẻ
hifkanotiks

4

Không có câu trả lời nào ở đây có hiệu quả với tôi, vì vậy tôi đang viết một câu hỏi mới tham khảo https://pimylifeup.com/raspberry-pi-torrentbox/ , nó hoạt động rất tốt cho tôi và cho phép tôi chạy truyền khi pingười dùng truy cập vào ổ USB của mình. Đây không phải là trả lời trực tiếp cho OP nhưng câu hỏi này rất phổ biến (kết quả đầu tiên của Google) cho loại vấn đề này vì vậy tôi đặt nó ở đây.

Đi vào:

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

và tìm USER trong phần đầu của tệp và thay đổi thành:

USER=pi

Sau đó chúng ta cần phải chown một số tệp vào phạm vi quyền của chúng tôi:

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

Và sau đó chạy (điều này thực sự quan trọng khác daemon từ dịch vụ sẽ chỉ chạy như debian-transmission )

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

và tìm user ở đó và thay đổi thành:

user=pi

và tải lại đơn vị dịch vụ

sudo systemctl daemon-reload

Và cuối cùng, chúng ta cần symlink tập tin cài đặt của chúng tôi vào thư mục nhà pi và cấp cho nó quyền:

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/

Và sau đó bắt đầu truyền lại:

sudo service transmission-daemon start

và bạn đã hoàn thành. Nó sẽ hoạt động.


2

Tôi nghĩ một trong những điều chính mà mọi người đang xem là bạn nên gắn usb / ổ đĩa ngoài vào thư mục / mnt / myUsbDrive và KHÔNG trong / 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

Tôi đã thử mọi câu trả lời được đưa ra trong cuộc thảo luận này (bao gồm cả root) theo hàng trăm cách khác nhau với các tùy chọn khác nhau và không thể truyền để lưu trên ổ SSD USB của tôi. Sau đó, trong khi đọc một cái gì đó khác nhau, nó đã được đề cập không gắn vào / media / pi vì daemon hoặc các nhóm khác có thể không có quyền truy cập. Vì vậy, tôi gắn ổ USB vào / mnt / usb_disk, đặt đường dẫn trong /etc/transmission-daemon/sinstall.json thành / mnt / usb_disk / tải xuống và truyền bắt đầu lưu vào đĩa.

FYI, tôi có user = pi trong /etc/init.d/transmission-daemon.

FYI, tôi đã thay đổi chủ sở hữu của / mnt / usb_disk / lượt tải xuống pi và nhóm thành truyền debian với quyền 777.


1
sudo chown debian-transmission /downloads

trong đó / lượt tải xuống là thư mục bạn muốn tải xuống ở (hoặc vị trí gắn kết).

Điều này an toàn hơn so với sử dụng root.

điều này mang lại cho các quyền 'người dùng' được gọi là 'debian-Transmission' vào thư mục


1

Tôi tìm thấy giải pháp tương tự như Igor và puigcerber. Ổ đĩa của tôi đã được đặt thành tự động gắn kết, vì vậy tôi đã chỉnh sửa fstab của mình để xóa autoount, sau đó sử dụngsudo mount -t vfat -o uid=pi,gid=pi /dev/sda1 /media/*mymountpoint/


1

Trong khi câu trả lời của biketire là debian chính xác đã chuyển sang systemd gần đây và bạn phải thay đổi người dùng ngay tại đây

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

và đảm bảo rằng trong phần

[Service]

bạn có dòng

User=pi

1

Dung dịch:

Sau rất nhiều đọc và thất vọng.

Trước hết, đảm bảo người dùng bình thường có quyền truy cập đọc và ghi vào ổ USB. Cách khắc phục 'không root' chính xác để có quyền truy cập ghi vào ổ USB là:

Bước 1: Dừng trình nền truyền

sudo service transmission-daemon stop

Bước 2: Thêm pi vào nhóm truyền debian

sudo usermod -a -G debian-transmission pi

Bước 3: thay đổi người dùng daemon

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

Thay đổi USER thành pi.

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

Thay đổi USER thành pi.

Bước 4: Thay đổi quyền của thư mục tệp cấu hình sudo chown -R pi /var/lib/transmission-daemon/info/ sudo chmod 755 /var/lib/transmission-daemon/info/settings.json

Bước 5: Đặt quyền chính xác cho các thư mục tải xuống / không đầy đủ sudo chown -R pi /somewhere/downloads sudo chown -R pi /somewhere/incomplete

Bước 6: Bắt đầu truyền daemon

sudo service transmission-daemon start


1

Tôi thấy rằng hệ thống tập tin là vấn đề đối với tôi. May mắn thay, đó là một ổ cứng USB hoàn toàn mới nên không phải là vấn đề để định dạng nó.

Lần đầu tiên tôi định dạng ổ cứng thành ext4

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

Sau đó, tôi gắn ổ cứng usb

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

Sau khi gắn xong tôi đổi nhóm cho ổ cứng thành debian-

sudo chgrp debian-transmission /mnt/rpi_nas/

Cuối cùng tôi đã thêm người dùng pi vào nhóm truyền debian và nó hoạt động rất tốt cho trường hợp sử dụng của tôi.


0

Khi bạn thay đổi người dùng truyền-daemon để root, vấn đề về quyền sẽ không còn với chia sẻ usb hoặc smb.

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

sau đó thay đổi dòng người dùng thành:

NGƯỜI DÙNG = root


7
Đó là một rủi ro bảo mật.
Blaisorblade

Điều này là sai và daemon như thế này không bao giờ nên chạy với quyền root. Bạn nên xóa câu trả lời này vì điều này sẽ làm hỏng thiết lập của những người khác.
CousinCocaine

0

Vấn đề liên quan đến việc FAT không nhận ra nhiều người dùng.

Nếu bạn sử dụng một dòng trong tệp fstab của bạn như / dev / [dev của bạn] / mnt / usb1 vfat mặc định, uid = 65534, gid = 65534, dmask = 000, fmask = 111 0 0

nó nên gắn hệ thống tệp của bạn với các thư mục 777 và các tệp là 666 thuộc sở hữu của "không ai" thuộc về "nogroup"

bạn sẽ cần phải kể lại (hoặc khởi động lại) để những thay đổi được nhìn thấy.


0

Cuối cùng tìm thấy một giải pháp làm việc.

Tôi đã bật các thiết bị di động tự động trong cài đặt XBIAN và thêm đĩa vào Shares.conf bằng tay

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

Chỉ cần thêm nó vào Shares.conf là không đủ, phải tự động tắt.


0

Tôi đã có một vấn đề quyền tương tự.

Tôi đã cố gắng làm theo giải pháp của sabi một cách mù quáng và thấy rằng nó không hoạt động. Không chỉ vậy, nhưng tôi tin rằng nó hơi quá mức cần thiết.

Trong tình huống của tôi, tôi chỉ đơn giản bỏ qua thực tế là truyền-daemon đang chạy với tư cách là người dùng: debian-Transmission .

Do đó, để cấp quyền cho truyền-daemon ghi vào thư mục (thư mục_name ), bạn chỉ cần thực hiện các lệnh sau:

chgrp -R folder_name
chmod -R 765 folder_name

Đây là giả sử tất nhiên mà bạn đã cấu hình đúng settings.json đã


-1

chmod 777 sẽ cung cấp cho mọi người dùng tất cả các quyền đối với một tệp hoặc thư mục. Nếu điều đó không hoạt động, có khả năng người dùng thực thi lệnh chmod đó không sở hữu thư mục hoặc tệp. Ví dụ: nếu root sở hữu / media / My Book / và người dùng pi sẽ không thể thay đổi quyền của tệp đó. Ba số bạn chuyển cho lệnh chmod ảnh hưởng đến chủ sở hữu, nhóm và mọi người khác theo thứ tự đó. Do đó, các cài đặt phổ biến nhất cho một thư mục là "chmod 755 somedirectory". Điều đó có nghĩa là chủ sở hữu có thể đọc, viết và thay đổi vào thư mục, nhưng nhóm và mọi người khác chỉ có thể đọc tệp và thay đổi vào thư mục.


1
Câu trả lời này thực sự không trả lời câu hỏi. Người hỏi đã thử chỉnh sửa tệp và nó không hoạt động.
hifkanotiks
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.