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 ...
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.
Ş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.
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
Linux makinesinde bir basitHTTP sunucusu çalıştırabilir ve diğerine aynı makineye erişebilirsiniz.
Adımlar:
python -m SimpleHTTPServer
ifconfig
kullanarak kontrol edin.Gerekli dosyaları indirmek için klasörde olsun.
"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).
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.
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.
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
hostname -I
Yerel Makine ('surfbox') için 192.168.1.150 ve Uzak Makine ('devbox') için 192.168.1.151 kullanacağım
Sudo apt install sshfs Fuse ssh
Grup oluştur: Sudo groupadd Fuse
Şu gruba yerel kullanıcı ekle: Sudo usermod -a -G Fuse $user
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.
İ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
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.
Uzak makineniz için anlamlı olan herhangi bir adı seçin.
Sudo mkdir /mnt/devboxhome
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.
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.
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
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 ....
Ş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
Yerel makinenin/home dizininin paylaşılmasını sağlamak için Uzaktaki makinede de aynı adımları uygulayın.
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.
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.