İletim: USB diskte izin verilmedi


22

RaspBMC'yi RaspBMC'yi USB kullanarak bağlı bir WD MyBook ile çalıştırıyorum. Sürücü otomatik olarak monte edilir /media/My Book. Bir klasör oluşturdum /media/My Book/downloadsve Trasmission'ın indirme dizinini ayarladım /media/My Book/downloads.

Bir dosyayı indirmeye çalıştığımda, İletim diyor

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

ls -la bana verir

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

Bu yüzden sanırım sorun şanzımandan farklı bir kullanıcı altında çalışıyor pive klasöre yazamıyor. Ancak idam ettiğimde

chmod 777 downloads -R

işlemler hatasız bir şekilde başarılı olur, ancak izinler değişmez, sadece sahibi için 700 kalır.

Neyi yanlış yapıyorum ve İletimin bu dizine yazmasını nasıl sağlayabilirim?

Yanıtlar:


19

Çok fazla okuma ve hayal kırıklığından sonra. Öncelikle, normal kullanıcının USB sürücüye erişim okuduğundan ve yazdığından emin olun. USB sürücüsüne yazma erişimi için doğru "root olmayan" düzeltme:

Adım 1: İletim arka planını durdur

sudo service transmission-daemon stop

Adım 2: pidebian-iletim grubuna ekle

sudo usermod -a -G debian-transmission pi 

3. Adım: Daemon-user'i değiştirme

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

Değişim USERiçin pi.

Adım 4 Yapılandırma dosyaları klasörünün haklarını değiştirin

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

Adım 5: İndirme / eksik klasörler için doğru izinleri ayarlayın

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

Adım 5: İletim arka planını başlat

sudo service transmission-daemon start

Şundan derlendi:


2
Bu tek doğru cevap. rootYanlış gibi koşmak . A yapmak chmod 777yanlış. Doğru grubu ve kullanıcıyı ayarlamak tek doğru yoldur.
Kuzen Kokain

Bu kabul edilen cevap olmalı.
Paulo Rodrigues Pinto

1
Belki de doğru cevap ama benim için işe yaramıyor.
rebolek

Kullanıcı adımı pibaşka bir şey olarak değiştirdim. Ancak, yaptığım zaman ls -aldosyalarım hala bir pigrupta görünüyor. Yukarıdaki talimatlarla, piyeni kullanıcı adımın her bir örneğini değiştirmeli miyim , yoksa hala var olan gruba atıfta bulunmalı pimıyım? Her pikullanıcı adımı değiştirdiğimde bu talimatlar çalışmaz .
Keavon

@Keavon "pi'nin her örneğini yeni kullanıcı adıma değiştirmeli miyim" Evet, ayrıca debian-iletim grubundaki yeni kullanıcı mı?
Biketire

11

Sorun, USB diskin otomobil olarak kullanılmasıydı. Manuel -t ntfs-3g dağı ile monte ettim ve çalışmaya başladı.


4
Aynısı bana da oldu. HDD otomatik olarak monte edildiğinde tüm izinler 0700 olarak ayarlandı, ancak montajı sudo mount -t ntfs-3g -o uid=pi,gid=pi /dev/sda1 /media/HDD/0777 idi ve iletim çok garip, mükemmel çalışıyor.
Puigcerber

ExFAT'im otomatik montaj yapıyordu, kullanıcı kimlikleriyle exfat defaults,auto,umask=000,users,rw 0 0bağlanacak şekilde değiştirdim ve işe yaradı. Bu AskUbuntu cevabını kontrol edin: Automounting exfat sürücüsü ile sahiplik / izin sorunupiexfat defaults,uid=1000,gid=1000 0 0
brasofilo

10

Linux uzmanı değilim ama bunu deneyebilirsin, işe yarayabilir. Bunun çoğu bilgidir http://www.superfecta.ca/?p=44

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

değişiklik

USER=debian-transmission

için

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

Kök olarak koşmanın büyük bir hayır olduğunu biliyorum (hayır, kökündeyken sayılacağından emin değilim) ama benim için işe yaradı, ben de bunun için iyiyim. Bunun USER=piyerine deneyebilirsin ama orada sevgim yok, bu yüzden kök saldım


3
Kök eseri olarak çalışmak elbette bu sadece bir güvenlik riski.
Blaisorblade

Eklenecek bir şey var: Linux, bağlama noktalarını ve sürücünün izinlerini / sahipliğini ayarlamak için / etc / fstab dosyasını kullanır. Bu nedenle, üç seçeneğiniz vardır, iletimi kök olarak çalıştırın, iletimi sürücünün bulunduğu klasörün sahibi olarak çalıştırın ( ls -lsize kimin sahip olduğunu söyler) ya da / etc / fstab dosyasını farklı bir sahip (örneğin debian-) gösterecek şekilde değiştirin. iletim).
Terry

Misafir olarak monte edilmiş bir NAS sürücüye sel tasarrufu gibi benzer bir sorunla karşı karşıyaydım. Her yerde bahsettiğim tüm çözümleri denedim, ama hiçbir şey benim için işe yaramadı, ben de pes ettim ve şanzıman-arka planını kök olarak çalıştırdım. Hoşuma gitmedi ama işe yarayan tek şey bu.
aalaap

Bu yanlıştır ve bunun gibi servisler asla kök ayrıcalıklarla koşmamalıdır. Bu cevabı kaldırmalısın, çünkü bu diğer insanların kurulumuna zarar verecek.
Kuzen Kokain

5

Sorununuzun USB çubuğunuzun NFTS veya FAT olarak biçimlendirildiğini düşünüyorum, kullanıcı / grup izinlerini desteklemeyen dosya sistemleri. Çözüm ext4 olarak yeniden biçimlendirmektir. Bunu yaparsanız, Pi'nizi medya merkezi olarak kullanıyorsanız, daha az gecikme yaşarsınız. Ext4 kullandığınızda Pi için olan sürücüler çok daha hızlı.


Ntfs-3g'den çok daha hızlı? Bu ifadeyi yedeklemek için bazı veriler gösterebilir misiniz?
Joseph,

@Joseph NTFS oldukça CPU ağır olduğu için ahududu pi 1 ile çoğunlukla bir sorun oldu. İşte transfer hızlarının bir kıyaslaması: htpcguides.com/wp-content/uploads/2015/03/…
hifkanotiks

4

Buradaki cevapların hiçbiri benim için işe yaramadı, bu yüzden https://pimylifeup.com/raspberry-pi-torrentbox/ ' a gönderme yapan ve benim için harika çalışan ve piUSB sürücüye erişebilmek için kullanıcı olarak iletim yapmama izin veren yeni bir cevap yazıyorum . Bu doğrudan OP'ye cevap vermiyor ama bu soru bu tür bir sorun için çok popüler (ilk Google sonucu) bu yüzden buraya koydum.

Girmek:

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

ve USERdosyanın üstünde bulun ve değiştirin:

USER=pi

O zaman chownbazı dosyaları izin kapsamımıza dahil etmeliyiz:

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

Ve sonra koş (bu gerçekten çok önemli çünkü hizmetten gelen daemon tam olarak çalışacak debian-transmission)

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

ve userorada bulun ve değiştirin:

user=pi

ve servis birimini yeniden yükle

sudo systemctl daemon-reload

Sonunda ayarlar dosyamızı pi home dizinine bağlamamız ve izinleri vermemiz gerekiyor:

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/

Ve sonra tekrar iletime başlayın:

sudo service transmission-daemon start

ve bitti. Şimdi çalışması gerekir.


2

İnsanların bakan ana şeylerden biri böyle olduğunu düşünüyorum gerekir senin usb / harici sürücü monte içinde / mnt / myUsbDrive klasör ve DEĞİL içinde / medya / 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

Bu tartışmada verilen her bir cevabı (root dahil) farklı seçeneklerle yüzlerce farklı yoldan denedim ve usb SSD sürücümden tasarruf etmek için iletim alamadım. Daha sonra farklı bir şey okurken, / media / pi içine girmemekten bahsetti; zindan veya diğer grupların erişimi olmayabilir. Bu yüzden USB sürücüsünü / mnt / usb_disk'e bağladım, /etc/transmission-daemon/settings.json dizinindeki yolları / mnt / usb_disk / downloads dizinine aktarın ve iletim diske kaydetmeye başladı.

Bilginize, / etc / init.d/transmission-daemon içinde user = pi var.

Bilginize, / mnt / usb_disk / downloads dosyasının sahibini pi olarak değiştirdim ve 777 izni ile debian-transport olarak gruplandırdım.


1
sudo chown debian-transmission /downloads

nerede / indirilenler, indirmelerinizin olmasını istediğiniz dizindir (veya mount konumu).

bu root kullanmaktan daha güvenlidir.

bu klasöre “debian-transmission” adı verilen “kullanıcıya” verir.


1

Igor ve puigcerber ile aynı çözümü buldum. Sürücüm otomatik montaj olarak ayarlandı, bu yüzden automount'u kaldırmak için fstab'ımı düzenledim, sonra kullandım.sudo mount -t vfat -o uid=pi,gid=pi /dev/sda1 /media/*mymountpoint/


1

Bketire'nin cevabı doğru olsa da debian son zamanlarda sistemdeymiş ve buradaki kullanıcıyı değiştirmek zorundasınız.

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

ve bu bölümde olduğundan emin olun.

[Service]

hattın var

User=pi

1

Çözüm:

Bir sürü okuma ve hayal kırıklığından sonra.

Öncelikle, normal kullanıcının USB sürücüye okuma ve yazma erişimi olduğundan emin olun. USB sürücüsüne yazma erişimi için doğru 'root olmayan' düzeltme:

Adım 1: İletim arka planını durdur

sudo service transmission-daemon stop

Adım 2: debian-iletim grubuna pi ekleyin

sudo usermod -a -G debian-transmission pi

3. Adım: Daemon-user'i değiştirme

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

USER öğesini pi olarak değiştirin.

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

USER öğesini pi olarak değiştirin.

Adım 4: Yapılandırma dosyaları klasörünün haklarını değiştirin sudo chown -R pi /var/lib/transmission-daemon/info/ sudo chmod 755 /var/lib/transmission-daemon/info/settings.json

Adım 5: İndirme / eksik klasörler için doğru izinleri ayarlayın sudo chown -R pi /somewhere/downloads sudo chown -R pi /somewhere/incomplete

Adım 6: İletim arka planını başlat

sudo service transmission-daemon start


1

Dosya sisteminin benim için sorun olduğunu öğrendim. Neyse ki yepyeni bir usb sabit disk oldu, bu yüzden biçimlendirmek için bir sorun değildi.

Önce sabit sürücüyü ext4 olarak biçimlendirdim.

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

Sonra USB sabit sürücüyü monte ettim.

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

Takıldıktan sonra sabit sürücünün grubunu değiştirdim debian-

sudo chgrp debian-transmission /mnt/rpi_nas/

Sonunda pi kullanıcısını debian-transmission grubuna ekledim ve kullanım durumum için çok iyi çalıştı.


0

İletim-arka plan kullanıcısını root olarak değiştirdikten sonra izinler sorunu bir usb ya da smb payı ile gider.

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

sonra kullanıcı satırını şu şekilde değiştirin:

KULLANICI = kök


7
Bu bir güvenlik riskidir.
Blaisorblade

Bu yanlıştır ve bunun gibi servisler asla kök ayrıcalıklarla koşmamalıdır. Bu cevabı kaldırmalısın, çünkü bu diğer insanların kurulumuna zarar verecek.
Kuzen Kokain

0

Sorun, birden fazla kullanıcıyı tanımayan FAT ile ilgilidir.

Fstab dosyanızda / dev / [sizin dev] / mnt / usb1 vfat varsayılanları gibi bir satır kullanırsanız, uid = 65534, gid = 65534, dmask = 000, fmask = 111 0 0

dosya sisteminizi 777 klasörlerine ve "nogroup" a ait "hiçkimse" ye ait olan 666 gibi bir dosyaya bağlamalıdır.

değişikliklerin görülmesi için yeniden montaj yapmanız (veya yeniden başlatmanız) gerekir.


0

Sonunda çalışan bir çözüm buldum.

XBIAN ayarlarında çıkarılabilir aygıtları otomatik olarak paylaşmaya döndüm ve diski elle el ile ekledim.

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

Sadece share.conf dosyasına eklemek yeterli değildir, otomatik paylaşım kapatılmalıdır.


0

Benzer bir izin problemim vardı.

Sabi'nin çözümünü körü körüne takip etmeye çalıştım ve işe yaramadığını öğrendim. Sadece bu değil, ama biraz fazladan olduğuna inanıyorum.

Benim durumumda şanzıman-arka plan programının kullanıcı olarak çalıştığını görmemiştim : debian-transmission .

Bu nedenle, iletim-arka plan programının bir klasöre yazmasına izin vermek için ( klasör_adı ), yalnızca aşağıdaki komutları yapmanız gerekir:

chgrp -R folder_name
chmod -R 765 folder_name

Bu elbette settings.json dosyasını zaten doğru bir şekilde yapılandırdığınızı varsayıyor


-1

chmod 777 her kullanıcıya bir dosya veya dizine tüm izinleri vermelidir. Bu işe yaramazsa, bu chmod komutunu çalıştıran kullanıcının dizine veya dosyaya sahip olmaması muhtemeldir. Örneğin, root / media / My Book / sahibi ise ve pi kullanıcısı bu dosyanın izinlerini değiştiremez. Chmod komutuna ilettiğiniz üç sayı, bu sırayla sahibi, grubu ve diğer herkesi etkiler. Bu nedenle, bir dizin için en yaygın ayarlar "chmod 755 somedirectory" dir. Bu, sahibinin dizini okuyabilir, yazabilir ve değiştirebilir, ancak grup ve diğer herkes yalnızca dosyaları okuyabilir ve dizine geçebilir.


1
Bu cevap gerçekten soruya cevap vermiyor. Asker, dosyayı chmodding'i zaten denedi ve çalışmadı.
hifkanotiks
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.