it-swarm-tr.com

Bir FTP sunucusunu geçici olarak nasıl çalıştırırım?

Ubuntu dünyasında, ya her zaman bir FTP sunucusu çalıştırıyorsunuz ya da asla . Belki de Ubuntu kullanarak bir Cisco, Checkpoint veya Nokia görüntüsünü flaşlamak için gereken ilk ağ analistiyim ... Belki 5 dakika boyunca bir FTP sunucusuna ihtiyacım var, bundan daha fazla değil.

Çıplak kemikli, kullanıcı tarafından başlatılan bir FTP sunucusu arıyorum. Muhtemelen Sudo ile koşmak zorunda kalacağını anlıyorum. Bu iyi - ama normal bir program gibi başlatmak/durdurmak istiyorum.

Windows platformunda, bu tür araçlar bir düzine düzinedir - 3CDaemon'u yıllarca kullandım ve yakın zamanda CoreFTP'yi buldum. Her ikisi de mükemmel. Bir kullanıcıyı yapılandırır, bir dizine yönlendirir ve "Başlat" düğmesine basarsınız. Birkaç dakika sonra, genellikle işiniz bitti ve "Durdur" düğmesine basın. İş bitmiş.

Bu tür araçlar Ubuntu'da mevcut görünmüyor. Bir TFTP örneği oluşturan bir Google Code projesi buldum (hala çalıştığını varsayarsak - yaklaşık bir yıl içinde kullanmadım ve python taşındı) ), ama FTP'ye ne dersiniz?

50
Scaine

Bir FTP sunucusunu pyftpdlib kullanarak bir iki üçe kadar kolaylaştırabilirsiniz:

  1. Pip ile yükleyin pip install --user pyftpdlib
  2. python -m pyftpdlib İle çalıştırın, yazma erişimi de istiyorsanız -w Ekleyin.
  3. üçüncü adım yok :)

Artık ana dizininizi anonim olarak paylaşmak için giriş yapabileceğiniz bir ftp sunucunuz var. Bu daha çok modülün bir testi olarak ifade edilir, ancak kalayda söylediklerini yapar.

Bu komut:

python -m pyftpdlib --directory=FTP --port=2121 --write

kök ayrıcalıkları olmadan 2121 numaralı bağlantı noktasında hizmet verecek ve anonim kullanıcılara yazma erişimi sağlayacaktır. Geçerli çalışma dizininde eviniz yerine FTP dizinini de kullanır. Tüm seçenekler hakkında bilgi almak için python ftpserver.py --help Yazın.

alt text

Lütfen bu yazılımın MIT License koşulları altında yayınlandığını unutmayın. Lisans metnini okuyun, sadece birkaç satır ve haklarınızı bilin.


Şimdi, bu komut dosyası tek başına işlevselliğinin bir parçası olarak kullanıcı adını ve şifreyi desteklemiyor (hayal ettiğim güvenlik nedenleriyle).

Bu özelliği ekledim:

Artık bahsettiğim tüm seçeneklere ek olarak komut satırı parametrelerine sahipsiniz

--username=USERNAME Ve --password=PASSWORD:

python ftpserver.py --port=2121 --username=ftpuser --password=3r2u389r2u333j

Yine, hepsini görmek için --help Kullanın.

Bu olabildiğince kolay olmalı.


Bunun için küçük bir gui de yazdım:

alt text

  • Buradan indirin (rev.6'da güncellendi)

    Üzgünüm 3999 satır uzunluğunda, ama orijinalin yaptığı her şeyi yapacak. Ve hepsini tek bir dosyada tutmak istedim. Herhangi bir parametre olmadan başlatıldığında (yani yürütülebilir hale getirin ve çift tıklayın veya bunun için bir başlatıcı oluşturun ), sunucunuzu yapılandırmanız için küçük bir gui başlatır. Yine de bir python modülü olarak içe aktarabilir veya yukarıdaki komut satırı fu'yu kullanabilirsiniz.

    Bilinen Sorunlar:

    • Ben bağlantı noktası 2121 dışında başka bir şey ile rahatsız değil. Bu basit olmalıdır, bağlantı noktası yapılandırılabilir yapmak kullanıcı ile uğraşmak istemiyorum karmaşık hata işleme gerektirir. 2121 her zaman iyi çalışmalıdır.

    • Komut satırının yaptığı gibi güvenli olmayan bir yapılandırma kullanma konusunda sizi uyarmaz. Yani bir şifre veya benzeri bir şey belirlemez.


DÜZENLEME: pyftpdlib ve ftpserver.py API'leri değiştiği için (ve ubuntu Pastebin bağlantıları kayboldu); Yukarıdaki yazının çoğu artık çalışmıyor. pyftpdlib (2014) sürümü için, yukarıdaki komut dosyasını elde etmek üzere bu komut dosyasını (ftpserver-cli.py) Kullanın:

#!/usr/bin/env python
# ftpserver-cli.py
import sys
sys.path.append("/path/to/pyftpdlib-svn") # enter your proper path here
import argparse

from pyftpdlib.authorizers import DummyAuthorizer
from pyftpdlib.handlers import FTPHandler
from pyftpdlib.servers import FTPServer

def processCmdLineOptions():
  global optparser
  optparser = argparse.ArgumentParser(description="ftpserver-cli",
              formatter_class=argparse.RawDescriptionHelpFormatter)
  optparser.add_argument('-u', '--username', action='store', type=str,
      default="user", help="username")
  optparser.add_argument('-p', '--password', action='store', type=str,
      default="12345", help="password")
  optparser.add_argument('-t', '--port', action='store', type=int,
      default="21", help="port")
  optparser.add_argument('-d', '--directory', action='store', type=str,
      default="/home/stefano/Projekte/", help="port")
  optargs = optparser.parse_args(sys.argv[1:]) #(sys.argv)
  return optargs


optargs = processCmdLineOptions()

print("Using: user: %s pass: %s port: %d dir: %s" % (optargs.username, optargs.password, optargs.port, optargs.directory))

authorizer = DummyAuthorizer()
authorizer.add_user(optargs.username, optargs.password, optargs.directory, perm="elradfmw")
#authorizer.add_anonymous("/home/nobody")

handler = FTPHandler
handler.authorizer = authorizer

server = FTPServer(("127.0.0.1", optargs.port), handler)
server.serve_forever()

ile ara:

$ Sudo python ftpserver-cli.py --directory=/tmp/srvtest
Using: user: user pass: 12345 port: 21 dir: /tmp/srvtest
[I 14-03-02 21:40:57] >>> starting FTP server on 127.0.0.1:21, pid=19286 <<<
...
56
Stefano Palazzo
  • pure-ftpd Install pure-ftpd

  • Bir ssh sunucunuz varsa scp kullanabilirsiniz.

1
karthick87

Yönlendiricilere/yönlendiricilerden dosya kopyalayanlar için bu aracı denemek isteyebilirsiniz: tftpgui

Benim için çalıştı ve yapılandırması çok kolay. Aynı zamanda bir Python betiğidir ancak ftp yerine tftp yapar. Tek yapmanız gereken python-tk'yi yüklemek ve betiği indirmek

Dikkat edilmesi gereken tek şey, Ubunutu'nun Phython2'yi varsayılan olarak kullanmasıdır, bu yüzden komut dosyasını başlatmanın en iyi yolu:

Sudo python3 ./tftpgui.py

Daha sonra GUI'de yapılandırabilirsiniz. işiniz bittiğinde çıkış tuşuna basarsınız.

0
BO VESTERGAARD