FTP ile Windows O.S ve GNU/Linux O.S. arası dosya transferi
apt-get install vsftpd komutu ile ftp server ı (burada benim kullandığım kali linux dağıtımıdır) kullandığımız GNU/Linux a yükleyelim.
cp /etc/vsftpd.conf /etc/vsftpd.conf.orig komutu ile (eğer bağlantıda sorun yaşarsanız /etc/vsftpd.conf dosyasında konfigürasyon yapılacak ve konfigürasyon öncesinin yedeğini alamak için) vsftpd.conf’un yedeğini alalım.
Kullanıcı adı ve parola,clienttan (client burada windows olacak) FTP bağlantısı yapılacağı zaman gerekli olacağı için adduser nuri komutu ile ftp bağlantısına özel bir kullanıcı yaratalım.“adduser nuri” komutundan sonra kullanacağımız password u girelim.
mkdir /home/nuri/ftp komutu ile yarattığımız nuri kullanıcısı altında ftp bağlantısının yapılacağı klasörü yaratalım.
chown nobody:nogroup /home/nuri/ftp komutu ile ftp dosyasının sahiplikleri ve dahil olduğu grupları ayarlayalım.
Aşağıdaki komutlar ile ftp ve nuri dizinlerinden write yani yazma iznini kaldıralım.
- chmod -R 777 /home/nuri/ftp
- chmod a-w /home/nuri/ftp
- chmod a-w /home/nuri
Aşağıdaki komut ile bağlanılacak ftp dizininin içinde files dizini yaratalım.
mkdir /home/nuri/ftp/files
Aşağıdaki komut ile sahipliklerini (dosyaya sahip kullanıcı ve dahil olduğu grup)verelim.
chown nuri:nuri /home/nuri/ftp/files
cd /home/nuri/ftp/files komutu ile “/home/nuri/ftp/files” dizinine gelelim.
touch deneme.txt komutu ile bu dizinde bir dosya yaratım ve nano deneme.txt komutu ile içine girip “bu bir deneme mesajıdır” yazalım ctrl+o enter ile kaydedip ctrl+x enter diyip çıkış yapalım.
Buraya kadar yapılanın görseli aşağıdadır.
Ve şimdi “service vsftpd start” komutu ile FTP server ı başlatalım.
“service vsftpd status” komutu ile aktif ettiğimizin kontrolünü yapalım.
Server tarafında işimiz bitti şimdi windows makineye geçmeden ftp serverın bulunduğu linux makinemizin ip numarasına ifconfig komutu ile bakalım.(Bu örnekte benim kullandığım linux makinemin ip adresi 192.168.8.120) .Şimdi client olacak windows a geçebiliriz.
cmd komut satırına ftp 192.168.8.120 komutunu giriyorum,ftp bağlantısı için kullanıcı adı ve parola isteyecek buraya yazımın en başında yarattığım kullanıcı ve parolayı girdikten sonra bağlantı tamamlanmış olacak fakat eğer bağlantıda sorun yaşarsanız yazımın sonunda vereceğim konfigürasyonu /etc/vsftpd.conf’nun içindeki tüm bilgileri silip sadece bunları yapıştırın ve sistemi reboot edin(konfigürasyon dosyalarının değişikliklerinin aktif olması için).
Bağlantı sonrası sırasıyla ls,cd ftp,ls,cd files,ls, komutları ile deneme.txt yi gördük.
Ve sonra,linuxtaki /home/nuri/ftp/files dizini altındaki deneme.txt dosyasını get deneme.txt komutu ile windowstaki C:\Users\Lenovo dizini altına çekmiş olduk.
Sorun yaşanması durumundaki /etc/vsftpd.conf dosyası:
listen=YES
anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
ssl_enable=NO
rsa_cert_file=/etc/ssl/private/vsftpd.pem
Yukarıda tek tek verdiğimiz komutların tamamın gerçekleştiren otomatize edilmiş script dosyası.
#!/bin/bash
cp /etc/vsftpd.conf /etc/vsftpd.conf.orig
adduser nuri
mkdir /home/nuri/ftp
chown nobody:nogroup /home/nuri/ftp
chmod -R 777 /home/nuri/ftp
chmod a-w /home/nuri/ftp
chmod a-w /home/nuri
mkdir /home/nuri/ftp/files
chown nuri:nuri /home/nuri/ftp/files
cd /home/nuri/ftp/files
touch deneme.txt
echo “bu bir deneme yazısıdır” > deneme.txt
service vsftpd start