2016-04-07 23 views
0

zincirleme sırasında arama işleminin asıl (root olmayan) kullanıcısı nasıl elde edilir? Birlikte çalışmayı amaçlayan iki zincirleme FUSE dosya sistemim vardır, ikisi de root olarak çalışır: süreç P dosyaya erişmeyi dener F ilk önce FS1; FS1 FS2'ye bakar. Artık FS2'nin P'nin dosyalara erişim izni olduğunu doğrulamak için P'nin (FS1 yerine) içerik bilgisini (pid, kullanıcı ve grup) alması gerekiyor.SİGORTA: FUSE tabanlı dosya sistemlerini

Bunu yapmanın önerilen yolu nedir?

+0

, ne biri P kim bilir:

burada fs_unlink örneğe bakın. Kök olarak çalışacaksanız, Kullanıcı Alanı'nda çalışmanın amacı nedir? Eğer ssh erişiminiz varsa ve FS2'nin kim olduğunu bilmek istiyorsanız, doğrudan giriş yapın. FS2'den FS1'e sadece ulaşabiliyorsanız, ssh'i tünel için kullanın. – LinuxDisciple

+0

Soruma genel olarak SUSE dosya sistemleri hakkında, ve sshfs değil (yorumunuz içinde detaylar tarafından ima edilmiştir.) –

+0

Şimdi yanlış anlaşılmış sshfs görüyorum. – LinuxDisciple

cevap

0

Bu soru etkili bir yanıtı burada edilir: Change UID/GID only of one thread in Linux

FS2 ait dosyalara erişmek sağlamak amacıyla çağıran sürecin kullanıcı olarak yapılması gerekir FS1 içinden Dosya Sistemi işlemleri (açık stat, vb) dosya sistemi izinlerine saygı duyulur. Bunu yapmanın kanonik yolu, root olarak çalışırken dosya sistemi işlemlerini root kullanıcısı olarak çalışıyormuş gibi gerçekleştirmek için FS1'e izin vermek amacıyla setfsuid ve setfsgid numaralı konuya özel API'leri kullanmaktır. Fs çağrısı başarısız olduğunda, errno hemen yakalanmalıdır. Bundan sonra, setfsuid ve setfsgid, etkili kullanıcı/kökün kök/köke geri döndürülmesi için kullanılmalıdır. ikisi de kök olarak çalıştırıyorsanız https://sourceforge.net/p/fuse/mailman/message/29362682/

İlgili konular