it-swarm-tr.com

Bir klasörü aynı ev ağındaki başka bir Linux makinesiyle nasıl paylaşabilirim?

Bir Ubuntu makinesindeki bir klasörü aynı ev ağındaki başka bir Ubuntu makinesiyle paylaşmaya çalışıyorum. Klasöre sağ tıklayıp Paylaşma Seçenekleri'ni seçtiğimde, klasörleri paylaşmak için Windows ağ paylaşım servislerini kurmam gerektiğini söylüyor. Windows'un bununla ne alakası var? Windows makineyle paylaşmaya çalışmıyorum ...

42
EmmyS

Windows'un bununla ne alakası var? Windows makineyle paylaşmaya çalışmıyorum ...

Haklısın, bu kafa karıştırıcı olabilir. Öyleyse her şeyden önce şartları açıklığa kavuşturmaya çalışayım:

Windows'un dosyaları ve yazıcıları paylaşma biçimine SMB denir. SAMBA projesinden gelen insanlar, Microsoft’un tüm protokollerini ve özelliklerini Linux için uygulamıştır. Bu nedenle Ubuntu, Samba denilen Windows ile aynı tür dosya paylaşımını destekler.

  • SAMBA'yı Linux makineleri arasında dosya paylaşmak için kullanabilirsiniz. Aslında, örneğin, arkadaşlarıyla bir arkadaşınız olması durumunda tercih edebilirsiniz. Windows bilgisayar.

  • Alternatif olarak, NFS olan paylaşım dosyalarının Linux Yolu kullanabilirsiniz (Ağ Dosya Sistemi) - Önceki bir sorunun cevabı nasıl yapılacağını açıklar. o. (ama oldukça teknik)

Bu nedenle, Paylaşma Seçenekleri iletişim kutusu sizden paketleri yüklemenizi istediğinde, aslında herhangi bir Microsoft yazılımı ya da benzeri bir şey yüklemiyorsunuzdur. Devam et ve yap, tamamen güvenli.

Zeyilname:

Salih Emin'in talimatlarını takip etmeden önce sadece paylaşımı etkinleştirmeyi deneyebilirsiniz; işe yaramazsa, basit bir uyarı alırsınız, ardından Salih'in gerekirse izah ettiği adımları uygulayabilirsiniz. Yeni kurulmuş ve güncel bir sistemde denedim ve gerçekten de bunu yapmam gerekiyordu.

22
Stefano Palazzo

Şu anda, Lucid'de Launchpad'de listelenen küçük bir hata var: bug # 536766 . Bu hata, dosya paylaşım kurulumunu tamamlamak için gerekli gerekli paketleri kurmasını kullanıcıdan istemez. Bu çözülene kadar, hızlı bir geçici çözüm.

libapache2-mod-dnssd kurmanız ve yeniden başlatmanız gerekir. Yüklemek için bu bağlantıya tıklayın veya Yazılım Merkezinde libapache2-mod-dnssd öğesini bulun.

Kurduktan sonra, Sistem → Tercihler → Kişisel dosya Paylaşımı 'ya gidin ve' Genel dosyaları ağda paylaş 'kutusunu işaretleyin.

alt text

Tüm bunlar tamamlandıktan sonra, ağınızdaki Genel klasörde ortak dosya paylaşımına izin veren tüm diğer bilgisayarları görüntüleyebilmelisiniz. Yalnızca Yerler → Ağ seçeneğine tıklayın; orada tüm kullanılabilir bilgisayarları ve paylaşılan Ortak klasörlerini görmelisiniz.

Sunucu simgesine çift tıklamak, masaüstünüzdeki ilgili ortak klasörü bağlar.

Üzerinden bağlantı metni

8
Salih Emin

Linux makinesinde bir basitHTTP sunucusu çalıştırabilir ve diğerine aynı makineye erişebilirsiniz.

Adımlar:

  1. önce terminali paylaşılacak klasörden başlatın.
  2. terminalde çalıştır - python -m SimpleHTTPServer
  3. ipinizi ifconfig kullanarak kontrol edin.
  4. diğer makinenin tarayıcısına ip adresini girin: 8000 (örneğin, ipiniz 127.3.4.123 ise tarayıcıda 127.3.4.123:8000 yazarsınız)

Gerekli dosyaları indirmek için klasörde olsun.

5
John

"Qweborf" uygulamasını yükleyebilirsiniz. Dizini HTTP üzerinden paylaşacak ve diğer ana bilgisayarlar bir tarayıcı ile erişebilecekler.

Ayrıca webdav'ı etkinleştirebilir ve dizinin bir dosya sistemini okuma/yazma olarak monte edilmesini sağlayabilir (davfs2, KDE, Gnome2, OsX ile test edilmiştir).

2
LtWorf

SAMBA paketlerinin altında listelendiğine ya da açıklamalarının en azının altında olduğuna inanıyorum. Alternatif olarak, farklı bir mekanizma kullandığına inandığım Tercihler-> Dosya Paylaşma'yı deneyebilirsiniz. Samba yüklü olması için kullanışlı bir şey.

2
Nerdfest

Ubuntu ile sorunsuz entegrasyon istiyorsanız ve Windows uyumluluğu ile ilgilenmiyorsanız, SSH sizin yabanmersininizdir.

Bkz --- LAN üzerinden iki Linux makinesi arasında dosyaları nasıl paylaşabilirim?

SSH sunucusunu aşağıdakilerle yüklemeniz gerekebilir:

Sudo apt-get install openssh-server

İstemcinizdeki dosya yöneticisi uygulamasından, sunucunuza şunlarla erişebilirsiniz:

sftp://servername.local

Bir terminalden veya programlı olarak dosyalara erişmek için, istemcinin dosya sisteminde bir bağlantı noktası oluşturmak için sshfs kullanın.

2
nobar

Yalnızca Linux ağları için SSHFS'nin yerel, kararlı ve çok hızlı olduğunu düşünüyorum. SSH üzerinden iki Xubuntu makinem (18.04) paylaşım/ev klasörüm var.

İşte bunun nasıl ayarlanacağını sshfs ve fstab kullanarak yeniden başlattıktan sonra otomatik olarak yeniden bağlanmanın yolu bir şifre vermek zorunda kalmadan. Uzaktan askıya alma/sürdürme işleminden sonra yeniden nasıl bağlanacağınız için serverfault user kubanczyk adresine teşekkür ederiz.

Bağlandığınız bilgisayar için "Yerel makine - sörf kutusu" ve bağlandığınız bilgisayar için "Uzak makine - aygıt kutusu" kullanacağım.

Uzaktaki makineye giriş yaptığınız kullanıcı adıyla aşağıdaki "uzak kullanıcı" yı ve Yerel makinede giriş yaptığınız kullanıcı adı olan "yerel kullanıcı" yı değiştirin. Kullanıcı adlarını doğrulamak için uzak ve yerel makinelerdeki terminalde echo $USER yazın.

Ayrıca, kullanıcı kimliğinizi ve grup kimliğinizi kontrol edin, her ikisi de 1000 olmalıdır.

Grup kimliği: id -g localuser Kullanıcı kimliği: id -u localuser

1. Yerel ve Uzak Makinelerinizin IP adreslerini alın.

hostname -I

Yerel Makine ('surfbox') için 192.168.1.150 ve Uzak Makine ('devbox') için 192.168.1.151 kullanacağım

2. Yerel ve Uzak Makinelere paketleri kurun

Sudo apt install sshfs Fuse ssh

3. Bir grup sigortası oluşturun ve yerel kullanıcı ekleyin

Grup oluştur: Sudo groupadd Fuse

Şu gruba yerel kullanıcı ekle: Sudo usermod -a -G Fuse $user

4. Fuse config içerisinde "allow_other" i etkinleştirin

Fstab'a monte ederken bu seçeneğe ihtiyacımız olacak

Komut satırı düzenleyicinizle /etc/Fuse.conf öğesini düzenleyin. user_allow_other önce etiketini çıkarın ve saklayın.

5. Yerel Makinede SSH anahtarları oluşturun

İstendiğinde bir şifre girmeyin . Boş bırakmak için sadece Enter tuşuna basın.

ssh-keygen -t rsa -C [email protected]

Anahtarlar Yerel makine giriş dizini /.ssh klasöründe saklanır

6. Yerel makine genel SSH anahtarınızı Uzak makineye aktarın

ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]

Uzak makinede Uzak kullanıcı için parola girmeniz istenir. Uzak makine üzerindeki ~/.ssh/yetkili_keys dosyasına yerel makine genel anahtarı eklenmiştir.

7. Uzak makine/ana klasörü bağlayacağınız Yerel makine/mnt klasöründe bir dizin oluşturun.

Uzak makineniz için anlamlı olan herhangi bir adı seçin.

Sudo mkdir /mnt/devboxhome

8. Uzak makineyi/ana dizini terminalden ekleyin

Sshfs için sözdizimi

sshfs [[email protected]]Host:[directory] mountpoint [options]

kullanırız

Sudo sshfs [remoteuser]@192.168.1.151:/home/[remoteuser] /mnt/devboxhome -o allow_other,default_permissions -o identityfile=/home/[localuser]/.ssh/id_rsa

örnek: "steve" olduğunu farz etmek, hem Yerel hem de Uzak makinelerde kullanıcı adıdır.

Sudo sshfs [email protected]:/home/steve /mnt/devboxhome -o allow_other,default_permissions -o identityfile=/home/steve/.ssh/id_rsa

Genel RSA anahtarını Uzak makineye aktardığınızdan, uzak kullanıcı şifresi girmeniz istenmemelidir.

Makinenin güvenilir olmadığı ve eklenmesi gerekip gerekmediği konusunda uyarıda bulunulur. Uzak makineyi güvenilir olarak ekleyin.

9. Doğrulayın: Uzak Makine/Ana dizine göz atın

Yerel makinedeki terminalde artık/mnt/devboxhome altındaki Uzak makine/ana dizini listeleyebilirsiniz.

cd /mnt/devboxhome ls

veya dizine göz atmak için Nautilus kullanın. Harika.

10. Yeniden başlattıktan sonra yeniden bağlanmayı etkinleştir

Bunun gerçekleşmesi için/etc/fstab içine bir girdi ekleyeceğiz. Yerel makine kullanıcısı ve grup bilgisine ihtiyacınız olacak - bunu kaçırdıysanız intro'ya bakın. Komut satırı düzenleyicinizle/etc/fstab dosyasını düzenleyin ve bu iki satırı/etc/fstab komutunun sonuna ekleyin

# Mount devbox at boot [email protected]:/home/[remoteuser]/ /mnt/devboxhome Fuse.sshfs default_permissions,user,delay_connect,reconnect,serversliveinterval=15,serveralivecountmax=3,allow_other,identityfile=/home/[localuser]/.ssh/id_rsa,idmap=user,uid=1000,gid=1000 0 0

  • delay_connect , dizini Uzak makineye bağlamaya çalışana kadar çekirdeğin ağ beklemesini bekler.
  • Önyükleme sırasında root olarak çalıştığımız için localuser home dizininde keyfile belirtmeliyiz.
  • allow_other - asıl montajı yapan kullanıcılar dışındaki kullanıcılar bağlı dosya sistemine erişebilir.
  • idmap = user - yalnızca bağlanan kullanıcının UID'sini çevirir
  • yeniden bağlan, ServersLiveInterval, ServerAliveCountMax - ssh canlı tutma pingleri gönderir. Eğer ServerAliveCountMax ardışık ping başarısız olursa, tekrar bağlayın.

Yerel ve Uzak makinelerde steve olarak giriş yapan bir kullanıcı:

[email protected]:/home/steve/ /mnt/devboxhome Fuse.sshfs default_permissions,user,delay_connect,reconnect,serversliveinterval=15,serveralivecountmax=3,allow_other,identityfile=/home/steve/.ssh/id_rsa,idmap=user,uid=1000,gid=1000 0 0

ÖNEMLI: uzak dizinden sonra bir eğik çizgi: [email protected]:/home/steve /

kaydet/etc/fstab ve ....

11. Yeniden başlat

Şimdi Yerel makine/mnt/devboxhome dizinindeki Uzak makine/ana klasöre erişebilmeniz gerekir. Nautilus'ta bu klasörü Yerler çubuğuna sürükleyebilirsiniz

12. tekrarla

Yerel makinenin/home dizininin paylaşılmasını sağlamak için Uzaktaki makinede de aynı adımları uygulayın.

2
zx81roadkill

zx81roadkill haklı, "sshfs" kullanın. Samba saçmalık, NFS çöp. Sshfs, buradaki California'daki bilgisayarımdan, Arjantin'deki bir bilgisayara tamamen kullanılabilir. Tamamen güvenli, her şey kadar hızlı. (Gibabit hattım var).

Sshfs, Samba ve NFS ile karşılaştırıldığında nispeten yenidir, ancak ikisinden de üstündür. İşte çalışan bir örnek (yüklü tüm paketleri varsayalım)

# mount "username"'s home directory on "machine"
  mkdir -p /tmp/my_mount ; sshfs [email protected]: /tmp/my_mount
# mount the root directory on "machine" (note: if "username" on "machine"
# can't write to the file, neither will you.  You have "username"'s privs
  mkdir -p /tmp/my_mount ; sshfs [email protected]:/ /tmp/my_mount
# mount the directory "Videos" on "username"'s account on "machine"
  mkdir -p /tmp/my_mount ; sshfs [email protected]:Videos /tmp/my_mount

Şifreyi girdikten sonra,/tmp/my_mount, "makine" üzerindeki "kullanıcı adı" nın tüm dosyalarını içerecektir. Samba veya NFS ile uğraşmaya zahmet etme. Onlar sadece yapılandırmak veya ayarlamak için popodaki anlamsız bir acı.

Çıkarmak için:

fusermount -u /tmp/my_mount

ve eğer bu başarısız olursa (ne sebeple olursa olsun):

umount -f /tmp/my_mount

Bağlantı noktasından gönderilen tüm veriler şifrelenir. Bu neden standart değil, tamamen kabul görmüş bir yöntemdir, uzaktaki bir makineye montaj yapmam benim için bir gizemdir. Basitlik açısından diğer tüm yöntemlerden çok daha üstün.

Ham hıza ihtiyacınız varsa, belki de şişirilmiş hurda Samba ya da NFS yapar. Bilmiyorum, 100 MB/sn + benim için yeterince iyi.

0
Jiminy Idiot

Dosyaları paylaşma yöntemim:

Sudo npm install -g http-server

Paylaşmak istediğiniz klasöre gidin, terminali açın ve şu komutu çalıştırın:

http-server -o 

Aynı klasördeki tüm makinelerde bu klasöre, bu komutun çıktısı tarafından belirtilen IP adresinde erişebileceksiniz.

0
rehman_00001