Windows paylaşımlarına *nix ortamlarından erişmek
Warning: mysqli_query(): (HY000/3): Error writing file '/tmp/MY9Cv5rC' (Errcode: 28 - No space left on device) in /usr/share/nginx/html/syslogs/wp-includes/class-wpdb.php on line 2349
Günün birinde, unix ya da Linux sistemlerinizden, networkünüzdeki windows makinelerin paylaşım klasörlerine erişmeniz gerekebilir. Böyle bir ihtiyaç olduğu zaman, smbfs (smb file system) ya da cifs (common internet file system)'den yararlanarak Windows üzerindeki ilgili dizinleri unix ya da linux sisteminize mount edebilirsiniz. Her ne kadar NFS kullanmak varken smbfs ya da cifs'de karar kılmak, performans ve güvenlik gereksinimleri nedeniyle üretim ortamları için pek doğru bir seçim olmasa da, örneğin Linux istemcinizden Windows bir fileserverda duran mp3'lerinize erişmek istemeniz gibi basit işlemler için oldukça kullanışlı bir yöntemdir. |
Bu yazıda bir freebsd'den smbfs kullanarak ve bir Linux (centos)'dan da cifs kullanarak Windows paylaşım klasörlerini sisteminize nasıl mount edebileceğinizi anlatır bilgiler bulabilirsiniz.
freebsd – MOUNT_SMBFS
smbfs, sambacıların uzunca bir müddettir geliştirmeyi bıraktığı mount edilebilir bir SMB file systemdir. Artık geliştirilmiyor olmasına ve özellikle üretim ortamları için çeşitli dezavantajları ve bugları bulunmasına rağmen yukarıda bahsettiğim tarzdaki basit işlemler için kullanılmaması için bir sebep bulunmamaktadır. Özellikle uzunca bir süredir FreeBSD'ler ile default olarak destekleniyor olmasından ve kullanmak için sisteme herhangi ek bir paket kurmaya gerek olmamasından ötürü iyi bir tercih olabilir.
Adı paylass olan bir windows paylaşım dizinini, FreeBSD'ye mount etmek için /mnt/ dizini altında paylass isimli bir dizin yaratıp, aşağıda görülen mount komutunu kendize uyarlayıp girebilirsiniz. Komutu girdikten sonra sistem, windows paylaşımı için yetkisi olan kullanıcı adınıza ait şifreyi girmenizi isteyen bir prompt düşürür. Şifrenizi girdikten sonra ilgili dizini /mnt/paylass isimli dizininize bağlamış olursunuz.
$ mkdir /mnt/paylass $ mount_smbfs -I [sunucu] -U [user] -W [WorkGroup] //sunucu/paylass /mnt/paylass/
Belki, windows paylaşımlarına kalıcı olarak erişmek isteyeceğiniz durumlar olabilir. Bu dizinin sistem açılışı sırasında mount edilmesini de sağlayabilirsiniz. Aşağıdaki bölümde nasıl yapılabileceğinizi bulacağınız bu mount yöntemi aslında pek de önermeyeceğim bir durumdur. Çünkü windows sunucunun başına bir şey gelirse -ne süpriz olur- Sistem mount edilmiş bu dizine erişemeyeceğinden sorunlar yaşayabilirsiniz. Yazının başında da değindiğim gibi bu tip işler için en güzel yol NFS kullanmaktır. Neyse işte otomatik mount işlemi:
AUTO MOUNT
FreeBSD'de smbfs kullanarak bir dizini mount etmek için nsmb.conf isimli smbfs konfigurasyon dosyasını yapılandırmak ve fstab dosyasına açılış sırasında mounting için gerekli gerekli satırını doğru parametrelerle girmek yeterlidir.
/etc altında nsmb.conf ismi ile bulunması gereken -ancak bulunmaması durumunda bir kopyasını /usr/share/examples/etc/ dizininde bulabileceğiniz bu conf dosyasını editleyin ve içerisine aşağıdaki satırları kendinize göre düzenledikten sonra ekleyin.
[default] workgroup=[WorkGroup ya da Domain adı] [SUNUCU:KULLANICI] password=sifre
Conf dosyası içinde formatla ilgili açıklamalar ve örnekler bulunuyor. Minimal yazım şekli yukarıdaki gibidir. İsteklerinize göre diğer parametrelerle düzenleme yapabilirsiniz.
Bu noktada, paylaşıma erişim izni olan windows kullanıcısının şifresini plain-text olarak yazdığımızdan ötürü, nsmb.conf dosyasının sadece root tarafından okunabilir olmasını sağlamanız yararınızadır. Aksi halde çok kullanıcılı bilgisayarlarda şifreniz rahatça görülebilir.
chmod 600 /etc/nsmb.conf
Bu ayarlamalardan sonra /etc/fstab dosyasının içerisine aşağıdaki satırı sunucu adı ve kullanıcı kısmını düzenledikten sonra ekleyin.
//kullanıcı@sunucu/paylass /mnt/paylass smbfs rw,-N 0 0
-N anahtarı mount işlemi sırasında passwordün interaktif olarak sorulmamasını sağlar. Bu anahtar kullanıldığı zaman şifre bilgisi nsmb.conf dosyasının içinden okunur. Ancak bu dosya içerisinde password bilgisi bulunmuyorsa şifre interaktif olarak sorulur. Bu durumda uzaktaki bir sunucuya ssh ile bağlanıp iş yapar bir pozisyondaysanız sistemi reboot ettiğiniz zaman disklerin mount edilmesi aşamasında password girilmesini isteyen bir prompt düşer ve boot işlemi şifre girilene kadar duraklatılır. Bu nedenle nsmb.conf dosyasını düzgün yapılandırdığınızdan emin olmanız gerekir.
Hem nsmb.conf ve hem de fstab girdilerinin doğruluğunu test etmek için mount -a komutunu kullanabilirsiniz. Bu komut ile fstab dosyasında belirtilen tüm mount işlemlerini gerçekleştirir. Eğer hata ya da password soran bir ekranla karşılaşmadıysanız windows sunucu üzerindeki paylass isimli dizin /mnt/paylass isimli dizine bağlanmış demektir ve
df -h komutu ile mount edilmiş diskleri kontrol ettiğiniz zaman, paylass isimli dizine ait aşağıdakine benzer bir çıktı almanız gerekir.
[cagri@sunucu /]$ df -h Filesystem Size Used Avail Capacity Mounted on /dev/da0s1a 989M 251M 659M 28% / devfs 1.0K 1.0K 0B 100% /dev /dev/da0s1d 1.9G 12K 1.8G 0% /tmp /dev/da0s1e 4.8G 2.4G 2.1G 54% /usr /dev/da0s1f 7.7G 89M 7.0G 1% /var //KULLANICI@SUNUCU/PAYLASS 233G 117G 116G 50% /mnt/sa2dev2
Bir FreeBSD üzerinden windows paylaşımlarını mount etmek bu kadar. Aynı işlemin Linux versiyonu da şu şekilde:
LINUX (centos) – CIFS KULLANARAK MOUNT
Bahsettiğim gibi Samba geliştiricileri artık smbfs'yi update etmiyorlar ama aynı işi yapan cifs isimliş file system üzerinde geliştirme çalışmalarına devam ediyorlar. Uzun uzadıya anlatmayacağım ancak daha güncel olmasından ötürü cifs daha güvenilir ve daha çok özellik sunan bir filesystem. centos ile birlikte default olarak gelmekte diğer dağıtımlarda da default olarak geliyor olması muhtemeldir. Ben sadece CentOS üzerinde denediğim için direk olarak CentOS ile ilgili notları paylaşacağım. Öncesinde, Windows paylaşımlarını cifs kullanarak mount etmek için gerekli olan mount.cifs‘in sisteminizde kurulu olması gerekiyor. mount.cifs, samba-client paketinin içerisinde geldiği için aşağıdaki şekilde kurulum yapabilirsiniz.
# yum install samba-client
CentOS üzerinde komut satırından mount yapabilmek öncelikle root dizini altında örneğin .winshare.txt isimli gizli bir dosya oluşturun ve içerisine kullanıcı adı ve şifre bilgilerini dosyaya girin. İşte şöyle:
username=kullanici password=sifre
Oluşturduğunuz dosyanın root dışındaki kullanıcıların okuyamamasını sağlayın.
chmod 600 ~/.winshare.txt
Bu işlemlerden sonra windows paylaşımını mount edin.
mount -t cifs //sunucu/paylass -o credentials=/root/.winshare.txt /mnt/paylass
Herhangi bir hata almadıysanız df -h ile ilgili dizinin mount edilmiş olduğunu görebilirsiniz.
AUTO MOUNT
Açılışta otomatik olarak mount edilmesi için de fstab dosyanıza aşağıdaki gibi bir satır girebilirsiniz.
//sunucu/paylass /mnt/paylass cifs credentials=/root/.winshare.txt,rw 0 0
Böylece, sistem açılırken windows paylaşımını da mount edecektir. Herhangi bir hata olup olmadığını anlamak için gene mount -a komutunu kullanabilirsiniz.
Basit işler için windows paylaşımlarını sisteme mount etme işlemi bu kadar. Ancak yeniden söylemek isterim ki, üretim ortamlarında windows ve *nix makineler arasında dosya alışverişi gereksinimleri için her zaman NFS kullanmanızı önreririm.
Bu yazılar da ilginizi çekebilir:
- FreeBSD Sistemlerde RamDisk Oluşturulması
- CentOS NFS Server ve Client Yapılandırması
- FreeBSD NFS Server ve Client Yapılandırması
- Linux Sistemlerde FTP Dizinlerinin Mount Edilmesi
- Yet Another Password Encryption Tool (Yapet) ile Şifre Güvenliği
Yorumlar
Trackbacks
Yorumda bulunun.
değerli hocam,
samba clienti pfsense 2.1 freebsd 8.3 amd64 sisteme bir türlü kuramadım. en son hata mesajı teke düştü libiconv… kütüphanesi sistemdeki eski olduğundan kurmuyor diye. bir ara mysqli i kurayım demiştim pfsense tamamen karışmıştı. bütün yazılan makaleler hep eski versiyon ve i386 için yazılmış. acaba bununla ilgili bir bilginiz var mı? teşekkürler.
[Cevapla]