pyftpdlibを使用してFTPサーバーを1つ2つ3つ簡単に取得できます。
- pipでインストールする
pip install --user pyftpdlib
- で実行し
python -m pyftpdlib
、-w
書き込みアクセスも必要な場合は追加します。
- ステップ3はありません:)
これでFTPサーバーができました。これを使用して、ホームディレクトリを匿名で共有するためにログインできます。これはモジュールのテストとしての意味ですが、ブリキに書かれていることを実行します。
このコマンド:
python -m pyftpdlib --directory=FTP --port=2121 --write
root権限なしでポート2121で機能し、匿名ユーザーに書き込みアクセスを許可します。またFTP
、ホームの代わりに現在の作業ディレクトリのディレクトリを使用します。入力python ftpserver.py --help
して、すべてのオプションに関する情報を取得します。
- にログインします
anonymous@localhost:2121/
このソフトウェアはMIT Licenseの条件に基づいてリリースされることに注意してください。つまり、基本的には何でも好きなことを実行できます。ライセンスのテキストを読んでください。ほんの数行で、あなたの権利を知っています。
現在、このスクリプトは、スタンドアロン機能の一部としてユーザー名とパスワードをサポートしていません(セキュリティ上の理由から)。
だから私はその機能を追加しました:
これで、私が言及したすべてのオプションに加えて、コマンドラインパラメーターがあります。
--username=USERNAME
および--password=PASSWORD
:
python ftpserver.py --port=2121 --username=ftpuser --password=3r2u389r2u333j
繰り返しますが、--help
すべてを見るために使用します。
これはできるだけ簡単にする必要があります。
私はそれのために少しguiも書いています:
EDIT:のAPI以来pyftpdlib
とftpserver.py
変更(とUbuntuのペーストビンリンクはなくなっています)。上記の投稿のほとんどはもう機能しません。の(2014)バージョンではpyftpdlib
、このスクリプト(ftpserver-cli.py
)を使用して上記と同じことを実現します。
#!/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()
で呼び出す:
$ 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 <<<
...