Samba ile paylaşılabilmesi için sshfs mountpoint için uygun hakları ayarlama


12

SSH üzerinden erişim sağlayan bir alan adı barındırıcım var.

Platformlarım:

  • Gentoo 2.6.36-r5
  • Windows (XP / Vista / 7)

Windows'um üzerinde çalışıyorum, Windows'un yapamayacağı büyüyü yapmak için Gentoo kullanıyorum.

Bu nedenle etki alanım için uzak ortak dizini /mnt/alanadim.com adresine bağlamak için sshfs kullanıyorum. Kimlik doğrulama anahtarlar aracılığıyla yapılır, bu yüzden tembel şifremi arada sırada yazmak zorunda kalmam.

Kodumu Windows'ta yaptığım ve değiştirilen dosyaları her zaman yüklemek / indirmek istemediğimden, bu /mnt/alanadim.com'a bir samba paylaşımı yoluyla erişmek istiyorum.

Bu yüzden samba'da / mnt'yi paylaştım, etkialanim.com dışındaki tüm bağlar Windows Gezgini'nde listeleniyor.

Benim teorilerim:

  1. sshfs , bağlama noktası uid / gid değerini samba'nın beklediği bir şeye ayarlamaz
  2. samba , /mnt/alanadim.com'un ayarlandığı uid / gid kodunu içermesi gerektiğini bilmez .
  3. Yukarıdakilerin hepsi yanlış ve bilmiyorum.

İşte yapılandırmalar ve konsoldan çıktı, başka bir şeye ihtiyacınız var sadece bana bildirin. Ayrıca bu sorunla ilgili olduğumu fark ettiğim hiçbir hata veya uyarı yok, ancak yanlış olabilir.

gentoo ~ # ls -lah /mnt
total 20K
drwxr-xr-x  9 root  root  4.0K Mar 26 16:15 .
drwxr-xr-x 18 root  root  4.0K Mar 26  2011 ..
-rw-r--r--  1 root  root     0 Feb  1 16:12 .keep
drwxr-xr-x  1 root  root     0 Mar 18 12:09 buffer
drwxr-s--x  1 68591 68591 4.0K Feb 16 15:43 mydomain.com
drwx------  2 root  root  4.0K Feb  1 16:12 cdrom
drwx------  2 root  root  4.0K Feb  1 16:12 floppy
drwxr-xr-x  1 root  root     0 Sep  1  2009 services
drwxr-xr-x  1 root  root     0 Feb 10 15:08 www

/etc/samba/smb.conf

[mnt]
comment = Mount points
writable = yes
writeable = yes
browseable = yes
browsable = yes
path = /mnt

/ Etc / fstab

sshfs#myusername@mywebhotel.com:/home/to/pub/dir/ /mnt/mydomain.com/ fuse comment=sshfs,noauto,users,exec,uid=0,gid=0,allow_other,reconnect,follow_symlinks,transform_symlinks,idmap=none,SSHOPT=HostBasedAuthentication 0 0

Daha kolay okumak için:

  • myusername@mywebhotel.com
  • / Home / için / pub / dir /
  • /mnt/mydomain.com/

seçenekleri:

  • Yorum sshfs =
  • noauto
  • kullanıcılar
  • exec
  • uid = 0
  • gid = 0
  • allow_other
  • yeniden bağlanma
  • follow_symlinks
  • transform_symlinks
  • idMap = hiçbiri
  • SSHOPT = HostBasedAuthentication

Yardım!


IIRC, HostbasedAuthenticationkullanılması tavsiye edilmez (kullanıcı tabanlı PubkeyAuthenticationtercih edilir)
user1686 17

SSHFS version 2.8 fuse: unknown option 'SSHOPT=HostBasedAuthentication'
Tom Hale

Yanıtlar:


11

sshfsFUSE tabanlı bir dosya sistemidir ve FUSE katmanı, diğer kullanıcıların güvenlik amacıyla varsayılan olarak bağlantılarına erişmesine izin vermez. You have allow_otherseçeneklerinde, aynı zamanda düzenleme kadar dikkate alınmayacaktır /etc/fuse.confdahil etmek user_allow_other.


1
"Ps aux" yürütülürken, sol sütun hem sshfs hem de smbd süreçleri için kökü belirtir. Ben her ikisi de aynı ayrıcalıklarla çalışır gibi "ayrıştırmak". Ls -lah çıktısından, uid kök değil, bu uid sshfs tarafından ayarlanır, ama ben ayarlayamıyorum, en azından seçenekleri uid / gid değiştirerek değil. Samba'nın bir şekilde uid / gid 68591 ile ilgili dizini hariç tutması gerektiğini düşündüğüne inanıyorum. (Benim tarafımdaki karışıklığı gidermeye çalışıyorum.)
CS01

@ CS01: "Ana" smbd kök olarak çalışır, ancak bağlantı işleyicileri için bu doğru değildir - SMB üzerinden "jim" olarak oturum açarsanız, smbd işleminiz de "jim" UID'sine geçer.
user1686

1
Ayrıca uid = <UID>, gid = <GID> seçenekleri ile UID ve / veya GID'yi istediğiniz kullanıcılarla eşlemeniz gerekir.
sweisgerber.dev

Cevaplar için teşekkürler. özetlemek gerekirse, Ubuntu'nun son bir sürümü üzerinde test edildikten sonra: 1. update /etc/fuse.conf; 2. THREE sshfs komut seçeneğini belirtin ( -o allow_other -o uid=<UID> -o gid=<GID>). Yeniden başlatmaya gerek yok gibi görünüyor smbd(ama smbdyine de yeniden başlattığımdan emin değilim ).
bruin

2

Neden sshfs'yi doğrudan Windows'tan bağlamıyorsunuz?
Bunun için birkaç ücretsiz çözüm var ( daha fazla bilgi için buraya ve buraya bakın ).


1
Vay be, bu araç harika!
CS01

Çok umut verici görünmüyorlar ve en azından şimdi 3 yıl sonra askıya alındı ​​:) Onlarla herhangi bir istikrar deneyiminiz var mı?
sweisgerber.dev

0

Normal smb paylaşımlarınız çalışırken, Samba yapılandırmasıyla ilgili bir kelime kaybetmiyorum, çünkü sahre sshfs bağlarını tam olarak normal klasörleri paylaştığınız gibi yapabilirsiniz. Ancak SSH paylaşımını sshfs üzerinden bağlamak, yalnızca yerel makine erişimine kıyasla özeldir.

Paylaşımınızı fstab aracılığıyla monte etmek için bu satırı / etc / fstab içine yerleştirebilir ve paylaşım İSTEK ÜZERİNE monte edebilirsiniz. Komut satırı komutunu c & p'den daha kullanışlıdır.

Genel etc / fstab satırı:

**<USERNAME>**@<SERVER>:<REMOTE_PATH> /MOUNT/POINT fuse.sshfs noauto,users,idmap=user,IdentityFile=/path/to/.ssh/id_rsa,allow_other,reconnect,port=22,uid=<UID>,gid=<GID> 0 0

noauto:mount /MOUNT/POINT / etc / fstab dizinindeki diğer tüm bilgilerle bağlamanız gerekir.

kullanıcılar: normal kullanıcıların bu bağlama girişini takmasına izin verir

reconnect: bekleme sonrasında ahre'yi yeniden bağlar / yeniden monte eder, vb.

uid = / gid =: Uzak uid / gid'i bu yerel uid / gid ile eşler

Misal:

foo@example.org:/home/foo/music ~/foos_music fuse.sshfs noauto,users,idmap=user,IdentityFile=/home/foo/.ssh/id_rsa,allow_other,reconnect,port=22,uid=foo,gid=users 0 0

Sshfs mounting hakkında bilmeniz gereken her şey [ https://wiki.archlinux.org/index.php/Sshfs]

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.