Linux'ta NFS ve Samba ile ağ paylaşımı nasıl kurulur
Beceri rehberi

Linux'ta NFS ve Samba ile ağ paylaşımı nasıl kurulur

Hazırlayan: Mindset Institute EditörlüğüGüncellendi: 5 dk okuma

NFS sunucusu, Samba paylaşımı, istemci bağlama, fstab kalıcılığı, güvenlik duvarı ve SELinux adımlarını örneklerle öğrenin.

NFS ve Samba: hangisi ne zaman?

Ağ üzerinden dosya paylaşımı, birden fazla makinenin aynı veriye erişmesini sağlar. Linux dünyasında başlıca protokoller şunlardır. NFS (Network File System), Unix ve Linux sistemleri arasındaki doğal paylaşım yoludur: paylaşılan dizin istemcide sanki yerel bir dizinmiş gibi bağlanır, izinler kullanıcı ve grup kimlikleriyle işler. Samba ise SMB/CIFS protokolünü Linux'ta sunar; Windows istemcileriyle uyumlu paylaşım gerektiğinde ya da Windows ağında bir Linux sunucunun dosya sunucusu rolünü üstlenmesi istendiğinde kullanılır.

Seçim çoğunlukla istemcilerin türüne bağlıdır. Yalnızca Linux sunucular arasında paylaşım, ortak ev dizinleri ya da uygulama verisi için NFS sade ve hızlıdır. Windows kullanıcılarının eriştiği ofis paylaşımları için Samba uygundur. Aynı dizini birden fazla protokolle sunmak teknik olarak mümkündür ama kilitleme ve izin modelleri farklı olduğundan dikkatli planlama ister.

Her durumda şu katmanlara bakmak gerekir: sunucuda paylaşımın tanımı, güvenlik duvarı ve SELinux gibi erişim engelleri, istemcide bağlama. Sorun giderirken bu katmanları sırayla kontrol etmek vakit kazandırır.

NFS sunucusu kurmak

Sunucu tarafında nfs-utils paketini kurup paylaşılacak dizini /etc/exports dosyasında tanımlarsınız. Örnek satır, dizini belirli bir ağdaki istemcilere okuma-yazma olarak açar:

  • /veri/paylasim istemci-agi(rw,sync)

Satırı yazdıktan sonra exportfs -r ile yeniden okutur, exportfs -v ile güncel paylaşımları görürsünüz. Servisi systemctl enable --now nfs-server ile başlatıp kalıcı yaparsınız. Güvenlik duvarında NFS servisine izin vermek gerekir: firewall-cmd --permanent --add-service=nfs, ardından firewall-cmd --reload.

Seçenekler önemlidir. rw ve ro okuma yetkisini; sync istemciye yazma onayının veri diske yazıldıktan sonra verilmesini; root_squash (varsayılan) ise istemcideki root kullanıcısının sunucuda yetkisiz bir kullanıcıya eşlenmesini sağlar. no_root_squash seçeneğini yalnızca gerçekten ihtiyaç duyulduğunda ve güvenilen istemcilerde kullanın; sunucudaki dosyalara tam yetkiyle erişim açar.

Dizinin sunucudaki izinleri de ayrıca doğru olmalıdır: NFS klasik olarak kullanıcı ve grup kimliklerine güvenir, bu yüzden sunucuda ve istemcide aynı kullanıcının aynı kimlik numarasına sahip olması gerekir; aksi halde sahiplikler yanlış görünür.

NFS istemcisinde bağlama ve kalıcılık

İstemcide önce sunucunun paylaşımlarını görün: showmount -e sunucu. Sonra bağlayın:

  • mkdir /mnt/veri
  • mount -t nfs sunucu:/veri/paylasim /mnt/veri

Kalıcı olması için /etc/fstab dosyasına bir satır eklenir; ağ gerektiren bağlamalarda _netdev seçeneği, ağ hazır olmadan bağlamayı denememesini söyler. Satırı ekledikten sonra mount -a ile hatasız geçtiğini doğrulayın. Yanlış fstab satırı sistem açılışını geciktirebilir ya da acil durum kipine düşürebilir; ağ paylaşımları için nofail seçeneği bu riski azaltır.

Çok sayıda ya da seyrek kullanılan paylaşım varsa autofs, dizine ilk erişildiğinde bağlayıp kullanılmayınca ayırır. Özellikle ev dizinlerinin sunucudan geldiği ortamlarda yaygın çözümdür ve açılış sırasındaki bağımlılık sorunlarını azaltır.

Bağlama başarısız olduğunda sırayla bakın: sunucuya ağ erişimi var mı, paylaşım dışa aktarılmış mı (showmount), güvenlik duvarı izin veriyor mu, istemcinin adresi exports tanımına uyuyor mu?

Samba paylaşımı kurmak

Samba sunucusu için samba paketini kurar, /etc/samba/smb.conf dosyasında paylaşımı tanımlarsınız. Basit bir paylaşım bölümü şöyle görünür:

[muhasebe] path = /srv/muhasebe valid users = @muhasebe read only = no

Burada köşeli parantez içindeki ad istemcinin göreceği paylaşım adıdır; path dizini, valid users kimlerin erişebileceğini, read only ise yazma izni olup olmadığını belirtir. Yapılandırmayı testparm ile denetleyin; sözdizimi hatalarını servisi başlatmadan yakalar.

Samba kendi parola veritabanını kullandığından Linux kullanıcısı olarak var olan hesabı Samba'ya ayrıca eklemek gerekir: smbpasswd -a kullanıcı. Sonra servisleri başlatın: systemctl enable --now smb. Güvenlik duvarında samba servisine izin verin: firewall-cmd --permanent --add-service=samba.

Dizinin klasik izinleri doğru olsa bile SELinux erişimi engelleyebilir. Paylaşılan dizine samba_share_t bağlamı vermek ya da uygun bir boolean'ı açmak gerekir (semanage fcontext ve restorecon; veya setsebool -P). Beklendiği halde "erişim reddedildi" alıyorsanız önce SELinux günlüklerine bakın.

Samba istemcisi: bağlama ve test

Linux'tan Samba ya da Windows paylaşımına bağlanmak için cifs-utils paketi gerekir. Önce paylaşımları listeleyin: smbclient -L sunucu -U kullanıcı. Sonra bağlayın:

  • mount -t cifs //sunucu/muhasebe /mnt/muhasebe -o username=ayse

Parolayı komut satırına yazmak hem geçmişe hem süreç listesine düşer; kalıcı bağlamada kimlik bilgilerini yalnızca kök tarafından okunabilen bir dosyada tutup credentials= seçeneğiyle gösterin. Bu dosyanın izinlerini kısıtlamak (yalnızca sahibinin okuyabilmesi) zorunludur.

Windows istemciden test için ağ yolunu adres çubuğuna \\sunucu\muhasebe biçiminde yazmanız yeterlidir. Giriş başarısızsa, Samba kullanıcısının smbpasswd ile eklendiğini, valid users kuralının kullanıcıyı kapsadığını ve dizin izinlerinin yazmaya izin verdiğini kontrol edin.

Sık yapılan hata, Linux kullanıcı parolası ile Samba parolasını aynı sanmaktır; ayrı veritabanlarıdır ve biri değişince öbürü değişmez.

Güvenlik ve sorun giderme

Paylaşım açmak yüzeyi büyütür; yalnızca gerekli ağlara ve kullanıcılara açın. NFS'te exports satırında istemci adres aralığını kısıtlayın, genel joker kullanmaktan kaçının. Samba'da herkese açık (guest) paylaşımı gerçekten gerekmedikçe açmayın. Bağlamayı kimlik bilgileriyle yapıyorsanız bu bilgileri korunan dosyada tutun.

Sorun giderme sırası NFS ve Samba için ortaktır: • Ağ: sunucuya ping ve ilgili porta erişim var mı? • Güvenlik duvarı: firewall-cmd --list-all çıktısında servis görünüyor mu? • Servis: sunucu servisleri çalışıyor mu (systemctl status)? • Paylaşım tanımı: exportfs -v ya da testparm temiz mi? • SELinux: dizin bağlamı uygun mu, günlüklerde ret kaydı var mı? • İzinler: sunucudaki dizin ve kullanıcı eşleşmesi doğru mu? • İstemci: bağlama seçenekleri, fstab satırı ve kimlik bilgileri doğru mu?

Her değişiklikten sonra istemciden gerçek bir dosya oluşturup silerek test edin. Yalnızca "bağlandı" görmek yeterli değildir; yazma izni ve sahiplik ancak dosya yazılınca ortaya çıkar.

Bu beceriyi Mindset programlarında nerede çalışırsınız?

RHCSA Sertifikasyon Hazırlık programının Kalıcı Bağlama ve Ağ Depolama modülü, fstab ile kalıcı bağlama ve ağ depolama konusunu sistem yöneticisi senaryolarıyla çalıştırır; Güvenlik: SELinux ve Güvenlik Duvarı modülü paylaşımların SELinux bağlamı ve güvenlik duvarı kurallarını tamamlar. Ortak dosya paylaşımı kuran ve bakımını yürüten altyapı ekipleri için bu iki modül, sunucuda paylaşımın tanımlanmasından istemcide kalıcı bağlamaya kadar tüm zinciri birlikte ele alır.

İlgili Mindset programı

RHCSA Sertifikasyon Hazırlık

Sık sorulanlar

Sık sorulan sorular

NFS mi Samba mı kullanmalıyım?

İstemciler Linux ise NFS genellikle daha sade ve hızlıdır, kullanıcı kimliklerine dayalı izin modeli sunar. Windows istemciler varsa ya da Active Directory ortamında dosya sunucusu gerekiyorsa Samba uygundur. Karışık ortamlarda protokoller birlikte çalıştırılabilir, ancak kilit ve izin farkları nedeniyle test gerektirir.

NFS bağlaması açılışta neden sorun çıkarıyor?

Ağ hazır olmadan bağlama denendiğinde açılış gecikir ya da hata verir. fstab satırına _netdev seçeneği ekleyin; kritik olmayan paylaşımlar için nofail ve gerektiğinde autofs kullanın. Satırı eklerken mount -a ile test etmeyi unutmayın.

Samba'da kullanıcı eklemek için Linux hesabı yeterli mi?

Hayır. Samba kendi parola veritabanını kullanır. Linux hesabı olan kullanıcıyı smbpasswd -a ile Samba'ya da eklemeniz gerekir. Sonrasında smb.conf içindeki valid users kuralının kullanıcıyı kapsadığından emin olun. Dizin üzerindeki Linux dosya izni de ayrıca gerekir: Samba erişimi kabul etse bile kullanıcının dizine yazma izni yoksa yazma işlemi reddedilir.

SELinux paylaşıma erişimi engelliyorsa ne yapılır?

Klasik izinler doğru olduğu halde erişim reddediliyorsa SELinux bağlamına bakın. Samba için dizine uygun bağlamı semanage fcontext ve restorecon ile verin ya da ilgili boolean'ı setsebool -P ile açın. Engeli kapatmak yerine nedenini denetim günlüklerinden okuyun.

Linux NFS ve Samba ile Ağ Paylaşımı Kurulumu