Neden root olarak çalışsa bile read / run / user / 1000 / gvfs 'yi bulamıyor?


34

Birisi bana yanlış yaptığımı, bunun ne olduğunu ya da nasıl düzeltebileceğimi söyleyebilir mi? Fedora 18 kullanıyorum ve gösterilen hatayı alıyorum

[root@servername /]# find . -name ngirc
find: `./run/user/1000/gvfs': Permission denied
[root@servername /]# 
[root@thinktank /]# pwd
/
[root@thinktank /]# ls -ltr ./run/user/1000
ls: cannot access ./run/user/1000/gvfs: Permission denied
total 0
d?????????? ? ?    ?      ?            ? gvfs
lrwxrwxrwx. 1 root root  17 May 28 12:30 X11-display -> /tmp/.X11-unix/X0
drwx------. 2 kal  kal  120 May 28 12:30 keyring-QjDw4b
drwx------. 2 kal  kal   40 May 28 12:30 gvfs-burn
drwx------. 2 kal  kal   60 May 28 12:30 krb5cc_5f0bcaf94f916d6b61696e2251a4dbb3
drwx------. 2 kal  kal   60 May 28 18:25 dconf

Yanlış bir şey yapmıyorsunuz ve önerim hatayı görmezden gelmek olacaktır. Bu kabul edilebilir değilse, findkomut satırında GVFS bağlama noktasını hariç tutmaya ne dersiniz ?
üçlü

Yanıtlar:


33

Yanlış bir şey yapmıyorsun ve düzeltecek bir şey yok. /run/user/$uid/gvfsveya FUSE arayüzünün GVFS'ye~$user/.gvfs bağlanma noktasıdır . GVFS, Gnome uygulamalarının FTP veya Samba sunucuları gibi kaynaklara veya yerel dizinler gibi zip dosyalarının içeriğine erişmesini sağlayan sanal bir dosya sistemi uygulamasıdır. FUSE, dosya sistemi sürücülerini kullanıcı kodu (çekirdek kodu yerine) olarak uygulamanın bir yoludur. GVFS-FUSE ağ geçidi, GVFS dosya sistemi sürücülerini yalnızca Gnome kütüphanelerini kullananlara değil, tüm uygulamalara erişilebilir kılar.

FUSE dosya sistemleriyle güven sınırlarını yönetmek zordur, çünkü dosya sistemi sürücüsü, geleneksel dosya sistemleri için çekirdek kodunun aksine, ayrıcalıklı olmayan bir kullanıcı olarak çalışmaktadır. Komplikasyonlardan kaçınmak için, varsayılan olarak, FUSE dosya sistemlerine yalnızca sürücü işlemini çalıştıran kullanıcı tarafından erişilebilir. Kök bile bu kısıtlamayı atlamaz.

Yalnızca yerel dosya sistemlerinde bir dosya arıyorsanız, -xdevadresine gidin find. Birden fazla yerel dosya sisteminden geçmek istiyorsanız, hepsini numaralandırın.

find  / /home -xdev -name ngirc

Dosya dünden beri mevcutsa, locate ngircbunun yerine deneyebilirsiniz ( locategenellikle her gece güncellenen bir dosya adı veritabanında arama yapar).

GVFS bağlama noktalarını çaprazlamak istiyorsanız, uygun kullanıcı olarak yapmanız gerekir.

find / -name ngirc -path '/run/user/*/gvfs' -prune -o -path '/home/*/.gvfs' -prune -o -name ngirc -print
for d in /run/user/*; do su "${d##*/}" -c "find $d -name ngirc -print"; done

GVFS ve FUSE hakkındaki mükemmel açıklama için teşekkür ederiz. Örnekte olduğu gibi 'bul'u çalıştırmayı denedim ve harika çalıştı.
kal

FUSE, kök dosyalara erişmesini nasıl önler? Şüphesiz kök, bu tür korumaları devre dışı bırakma yeteneğine sahiptir.
Akinos

1
@Nat Root, sürecinin fsuidini hedef uid'e değiştirebilir, bu nedenle güvenlik anlamında korumayı atlamak önemsizdir. Ancak, çekirdekteki erişim denetimi işlevi, kök dizinine erişimi reddediyor. Bu fenomen başka dosya sistemlerinde de meydana gelir, örneğin root sahibinin UID'sine geçmeden NFS'deki özel dizinlere erişemez.
Gilles 'SO- kötülük olmayı'

2
"komplikasyonlardan kaçınmak" için ... Tabi ki, paylaşım yolunu daha temiz bir klasör adına eşlemek için mount komutunu kullanamadığım için büyük bir komplikasyon yarattı.
Nuzzolilo

@Nuzzolilo Neden bahsettiğin hakkında hiçbir fikrim yok. Bir sorununuz varsa, yeni bir soru sorun ve senaryonuzu açıkladığınızdan emin olun.
Gilles 'SO- kötülük olmayı'

10

Bu bir sigorta konusu . Sahibi dışında hiçbir kullanıcı okuyamaz. Varsayılan yapılandırma etrafında çalışmak için user_allow_other seçeneğini etkinleştirmeyi deneyin. Bu seçenek /etc/fuse.conf dosyasına eklenerek belirtilir. Değeri yoktur, sadece boş bir satırdaki seçeneği belirtin.


Teşekkürler. Sigortanın ne olduğunu gerçekten anlamıyorum, ancak yorumunuzdaki hata raporundan ve don_crissti'nin yorumundan biraz okuduktan sonra, bunun prize taktığım bir USB sabit diskiyle mi, yoksa samba sunucumla mı ilgili olduğunu tahmin ediyorum. "User_allow_other" 'ı etkinleştirirken göz önünde bulundurmam gereken herhangi bir güvenlik sorunu var mı ve montaj için göz önünde bulundurmam gereken başka seçenekler var mı? Teşekkürler.
kal,

1
Teşekkürler, ama sistemi başka kimse kullanamazsa, bu benim için bir çözüm değildir. Sahibinin kim olduğunu nasıl söyleyebilirim? Harici sabit diskimi sökmeyi / çıkarmayı ve samba sunucumu kapatmayı denedim. Gerçekten yapmak istediğim, güvenlikten ödün vermeden tüm dosya sistemini bir dosyada arayabilmek. SİGORTA bir alternatif var mı ve tam olarak ne için kullanıldığını söylemenin bir yolu var mı? Teşekkürler.
kal,

askubuntu.com/questions/715637/… @Christopher'in önerisini denedim, ancak komut satırı seçeneklerine uyulmuyor . Daemon auto başlatıcısının belirli bir şekilde yapılandırıldığından şüpheleniyorum, ancak bunu yapmak için yapılandırma belgelerini bulamıyorum
Nuzzolilo

3

Aşağıdakilere göre gvfs için izin ve diğer ayrıntıları alıyorsanız

d?????????? ? ?    ?      ?            ? gvfs

sonra sadece aşağıdaki komutu kullanarak gvfs'inizin bağlantısını kesin. Bu işlemi takip ettikten sonra sorununuz çözülecektir.

umount ~/gvfs(umount /run/user/112/gvfs in my case).

GVFS (GNOME Sanal Dosya Sistemi) GNOME masaüstü için sanal dosya sistemidir ve kullanıcıların SFTP, FTP, WebDAV, SMB ve yerel verilere udev entegrasyonu ile uzaktaki verilere kolayca erişmelerini sağlar, bu sayede bağlantıyı keserken korkmanıza gerek kalmaz .


3

bu eski bir iş parçacığıdır ancak gnome hata raporlarında son zamanlarda açık bir konudur, bu nedenle gvfs-kaynaştırıcı sorunlarını düzeltmek için saatlerce süren bir çözüm arayan herkesin yararı olabilir.

Mseld hata mesajı:

Error copying '/media/root/5FDA03906F33F217/SAVE/rsyncTEST-usb/allusers' to '/run/user/0/gvfs/ftp:host=192.168.0.103/var/ftp/ftpd/images/PersistenceUSBs/rsync-meld/allusers'

[Errno 95] Operation not supported: '/run/user/0/gvfs/ftp:host=192.168.0.103/var/ftp/ftpd/images/PersistenceUSBs/rsync-meld/allusers'.

Ftp üzerinden meld / diff / kdiff kullanmaya çalışırken gvfs-kaynaştırıcı sorunuyla karşılaştım. Sorun fuser ve gvfs arasında. Sorun 3.15.1'de ortaya çıkmış gibi görünmüyor ancak 3.15.2'de bildirilmeye başlandı. (Yeni python ver?) Çözüm bir çözüm değil geçici bir çözüm - dosyalar / dizinler kopyalanacak ancak hata gösterilmeye devam edecek.

Christopher'ın cevabı sorunu tanımlar ve çözümü sunar.

Başka bir olası çözüm sshfs kullanıyor ( bu yoruma ve bu konuya bakınız ). Hakkında daha fazla bilgi için gvfs-commands, bkz. Gvfs komutları ve cat, ls, cp gibi genel komutlar arasındaki fark nedir?

Muhtemelen ilgili hatalar arasında GNOME # 317875 ve GNOME # 768281 bulunur .

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.