আমি কীভাবে অস্থায়ীভাবে কোনও এফটিপি সার্ভার চালাব?


48

উবুন্টু বিশ্বে এটি মনে হয় আপনি সর্বদা একটি এফটিপি সার্ভার চালান বা আপনি কখনও করেন না। সম্ভবত আমি প্রথম নেটওয়ার্ক বিশ্লেষক যিনি উবুন্টু ব্যবহার করে সিসকো, চেকপয়েন্ট বা নোকিয়া চিত্র ফ্ল্যাশ করার প্রয়োজন ... আমার 5 মিনিটের জন্য একটি এফটিপি সার্ভার প্রয়োজন, এর চেয়ে বেশি আর কিছু নয়।

আমি খালি-হাড়ের সন্ধান করছি, ব্যবহারকারী-উদ্যোগে এফটিপি সার্ভার। আমি বুঝতে পারি যে এটি সম্ভবত সুডো দিয়ে চালাতে হবে। এটি দুর্দান্ত - তবে আমি এটি একটি সাধারণ প্রোগ্রামের মতো শুরু / থামাতে চাই।

উইন্ডোজ প্ল্যাটফর্মে, এই ধরণের সরঞ্জামগুলি এক ডজন ডাইম - আমি কয়েক বছর ধরে 3 সিডিমন ব্যবহার করেছি এবং সম্প্রতি কোরএফটিপি পেয়েছি। দুজনই দুর্দান্ত। আপনি কোনও ব্যবহারকারীকে কনফিগার করুন, এটি ডিরেক্টরিতে নির্দেশ করুন, তারপরে "স্টার্ট" বোতামটি চাপুন। কয়েক মিনিট পরে, আপনি সাধারণত সম্পন্ন হয়ে যান এবং আপনি "স্টপ" বোতামটি চাপান। কাজ শেষ.

উবুন্টুতে এ জাতীয় সরঞ্জাম বিদ্যমান বলে মনে হয় না। আমি একটি গুগল কোড প্রকল্প পেয়েছি যা একটি টিএফটিপি উদাহরণটি যথাযথভাবে তৈরি করে (এটি ধরে চলেছে এখনও চলমান - আমি এটি প্রায় এক বছরে ব্যবহার করি নি এবং পাইথন এগিয়ে গেছে), তবে কীভাবে এফটিপি? কিছু আছে বাইরে?


2
খুব খারাপ আমার কাছে জেটএফটিপি শেষ করার সময় নেই। এটি আপনি যা বর্ণনা করেছেন ঠিক তেমনই করে এবং এটি মূল অধিকার ছাড়াই চলতে পারে (অবশ্যই আপনাকে একটি বন্দর> 1024 অবশ্যই ব্যবহার করতে হবে)। এটি কোনও কনফিগারেশন ছাড়াই এবং খুব সুন্দর জিইউআই সহ বাক্সটির বাইরে চলে যাবে। এটি কেমন হবে তার ধারণা পেতে, জেটএইচটিটিপি দেখুন , যা নকশা এবং ইন্টারফেসের মতো similar
নাথান ওসমান

ধন্যবাদ জর্জ, আমি এটিও পরীক্ষা করে দেখব। উভয়ের মধ্যে সেরাকে একত্রিত করা যেতে পারে। আমার এবং অজগরটির প্রথম দিনগুলি, সুতরাং আমি সন্দেহ করি যে আমি সেখানে অনেক সাহায্য করব!
স্কেইন

উত্তর:


52

আপনি একটি এফটিপি সার্ভার পাইফটপিডিলিব ব্যবহার করে এক দুই তিনের মতো সহজ হয়ে উঠতে পারেন :

  1. পিপ দিয়ে ইনস্টল করুন pip install --user pyftpdlib
  2. সাথে চালান python -m pyftpdlib, -wআপনি লেখার অ্যাক্সেসও চাইলে যুক্ত করুন ।
  3. তিন ধাপ নেই :)

আপনার এখন একটি এফটিপি সার্ভার রয়েছে যা আপনি বেনামে আপনার হোম ডিরেক্টরিটি ভাগ করে নিতে লগ ইন করতে পারেন। এটি মডিউলটির পরীক্ষা হিসাবে আরও বোঝানো হয়েছে, তবে এটি টিনে যা বলেছে তা করে।

এই আদেশ:

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

2121 পোর্টে মূল অধিকার ছাড়াই পরিবেশন করবে এবং বেনামী ব্যবহারকারীদের লেখার প্রবেশাধিকার দেবে। এটি FTPআপনার বাড়ির পরিবর্তে বর্তমান কার্যক্ষম ডিরেক্টরিতে ডিরেক্টরিটিও ব্যবহার করবে । python ftpserver.py --helpসমস্ত অপশন সম্পর্কে তথ্য পেতে টাইপ করুন।

  • এটিতে লগ ইন করুন anonymous@localhost:2121/

বিকল্প পাঠ

দয়া করে নোট করুন যে এই সফ্টওয়্যারটি এমআইটি লাইসেন্সের শর্তাবলীতে প্রকাশিত হয়েছে যার অর্থ আপনি এটির মাধ্যমে যা করতে পারেন তা মূলত আপনি করতে পারেন। লাইসেন্সের পাঠ্যটি পড়ুন, এটি কেবল কয়েকটি লাইন এবং আপনার অধিকারগুলি জানে।


এখন, এই স্ক্রিপ্টটি ব্যবহারকারীর নাম এবং পাসওয়ার্ডটিকে একা একা কার্যকারিতা হিসাবে সুরক্ষা দেয় না (সুরক্ষার কারণে আমি কল্পনা করি)।

সুতরাং আমি এই বৈশিষ্ট্য যুক্ত করেছি:

আপনার এখন, আমি উল্লিখিত সমস্ত বিকল্প ছাড়াও কমান্ড লাইন পরামিতি

--username=USERNAMEএবং --password=PASSWORD:

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

আবার, --helpতাদের সমস্ত দেখতে ব্যবহার করুন।

এটি যতটা সহজ হয় তত সহজ হওয়া উচিত।


আমি এর জন্য একটু গুই লিখেছি:

বিকল্প পাঠ

  • এটি এখানে ডাউনলোড করুন (পুনর্বিবেচনা 6 এ আপডেট হয়েছে )

    আমি দুঃখিত এটি 3999 লাইন দীর্ঘ, তবে এটি আসল যা করে তা সবই করবে। এবং আমি এটি সব একটি ফাইলে রাখতে চেয়েছিলাম। এটি কোনও পরামিতি ছাড়াই শুরু করা হয় (অর্থাত্ এটি কার্যকরকরণযোগ্য করুন এবং এটিতে ডাবল ক্লিক করুন, বা এর জন্য একটি লঞ্চার তৈরি করুন ), আপনার সার্ভারটি কনফিগার করার জন্য এটি একটু গুই শুরু করে। আপনি এখনও এটি পাইথন মডিউল হিসাবে আমদানি করতে পারেন বা উপরের কমান্ড লাইন ফু ব্যবহার করতে পারেন।

    জ্ঞাত সমস্যা:

    • আমি 2121 পোর্ট ব্যতীত অন্য কোনও বিষয় নিয়ে মাথা ঘামাইনি। এটি সাধারণ হওয়া উচিত, বন্দরটি কনফিগারযোগ্য করার জন্য জটিল ত্রুটি পরিচালনার প্রয়োজন হয় যা আমি ব্যবহারকারীকে বিরক্ত করতে চাই না। 2121 সর্বদা সূক্ষ্ম কাজ করা উচিত।

    • কমান্ড লাইনের মতো এটি কোনও সুরক্ষিত কনফিগারেশন ব্যবহারের বিষয়ে আপনাকে সতর্ক করবে না। অর্থাত্ একটি পাসওয়ার্ড বা সে জাতীয় কিছু সেট করা নেই।


সম্পাদনা: যেহেতু এর API pyftpdlibএবং ftpserver.pyপরিবর্তিত হয়েছে (এবং উবুন্টু পেস্টবিনের লিঙ্কগুলি চলে গেছে); উপরের পোস্টটির বেশিরভাগই আর কাজ করে না। (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 <<<
...

এটি দেখতে দুর্দান্ত এক মডিউলের মতো দেখাচ্ছে - যেহেতু আমি অজগরটি শিখার চেষ্টা করছি, মনে হচ্ছে এটি চারদিকে জিইউআই তৈরির জন্য একটি দুর্দান্ত সূচনা বিন্দু ... আমি ভয় পাচ্ছি যে আমি এটি উত্তর হিসাবে চিহ্নিত করছি না (যদিও আমি ইতিমধ্যে জিইউআই ভিত্তিক একটি সরঞ্জাম সম্পর্কে কেউ জানে কিনা এই আশায় 'এটি উত্সাহিত করেছেন'। যদিও এতে শীর্ষস্থানীয়দের জন্য ধন্যবাদ এবং পরিবর্তিত সংস্করণটির জন্য ধন্যবাদ।
স্কেইন

ধন্যবাদ :-) আমি হাল ছাড়ব না, এটির জন্য এখন একটি জিইউআই প্রোগ্রামিং করছি। : পি
স্টেফানো প্যালাজো

1
ধন্যবাদ স্টেফানো! আমি কখনই তা আশা করিনি! এটি দুর্দান্ত - আপনি (আজ রাতে) চেষ্টা করার জন্য কেবল একজন জিইউআইই নন, আপনি কীভাবে একে একে প্রথম স্থানে নক করেছিলেন সে সম্পর্কে একটি শিক্ষণ গাইডও। অনেক ধন্যবাদ!
স্কেইন

5
পেস্ট.বুন্টু. com/ 542726 এবং পেস্ট.বুন্টু. com / 542852 মারা গেছে, দুর্ভাগ্যক্রমে ... এছাড়াও, ftpserver.py পরিবর্তিত হয়েছে, এবং সম্ভবত উপরের পোস্টটি আর ধরে রাখে না (শেষ স্ট্যান্ডেলোন রিভিশনটি এটি দিয়ে r1116 বলে মনে হচ্ছে , এটি দিয়ে ডিফ )। আমি একটি নতুন স্ক্রিপ্ট দিয়ে পোস্টটিতে একটি সম্পাদনা করেছি (পিয়ার পর্যালোচনা না হওয়া পর্যন্ত অদৃশ্য হয়ে থাকবে)
sdaau

1
উপরের স্ক্রিপ্টটি ব্যবহার করার জন্য, উপরের স্ক্রিপ্টটি ব্যবহার করার জন্য আপনাকে "পাইফটপিডলিব" লাইব্রেরি ইনস্টল করতে হবে, এটি চালাতে হবে ... "sudo apt-get python-pip ইনস্টল করুন" এবং তারপরে "পাইপ ইনস্টল পাইফটপিডলিব" ... এবং আপনি সব সেট!
D.Snap

1
  • আপনি খাঁটি-এফটিপিডি ব্যবহার করতে পারেন খাঁটি-এফটিপিডি ইনস্টল করুন

  • আপনার যদি একটি এসএসএস সার্ভার থাকে তবে আপনি scp ব্যবহার করতে পারেন ।


3
প্রারম্ভিকরা 5 মিনিটের মধ্যে একটি খাঁটি-এফটিপিডি সার্ভার ইনস্টল করতে পারে। এটি প্যাকেজটি ইনস্টল করার মতো, "খাঁটি-এফটিপিডি &" টাইপ করতে পারে এবং এটাই সহজ। আপনার ইতিমধ্যে একটি চলমান সার্ভার রয়েছে এবং ক্লায়েন্টরা সংযোগ শুরু করতে পারে।
hhlp

1
হ্যাঁ, আমি প্রশংসা করি যে খাঁটি সহজ সহজ, বিশেষত খাঁটি-প্রশাসক গুঁই প্যাকেজ সহ - আমি এটি আমার স্থায়ী এফটিপি সার্ভারের জন্য ব্যবহার করি। তবে, পিওরএফটিপি-র সাথে, আপনি / সর্বদা / চালাচ্ছেন এফটিপি, যা ল্যাপটপের সাথে সুরক্ষিত ঝুঁকি যা ডাব্লুআইফাইয়ের মাধ্যমে সংযোগ করে। আমার ফায়ারওয়ালটি চালু করতে এবং এটি ব্যবহার করা (সম্ভবত খুব ছোট) সংস্থাগুলি সম্পর্কে চিন্তা করতে আমি চাই না। আমি আশঙ্কা করি যে স্কিপ সাধারণত কোনও বিকল্প নয়, যদিও কিছু ডিভাইস আরও ভাল হচ্ছে - আমি মনে করি সর্বশেষতম এফ 5 চিত্রগুলি স্কিপ ব্যবহার করে, আজকের দিনে সিসকো কল ম্যানেজারের মতো।
স্কেইন

2
আমি এমনকি প্যাকেজ ইনস্টল করার পরে আপনাকে পিওরএফটিপি ডিমন চালু করতে হবে বলেও মনে করি না। (আমি ভেবেছিলাম এটি postinstপ্যাকেজের স্ক্রিপ্ট দ্বারা শুরু করা উচিত ছিল ।)
নাথান ওসমান

0

যারা রাউটারগুলিতে এবং থেকে ফাইলগুলি অনুলিপি করেন তাদের জন্য আপনি এই সরঞ্জামটি ব্যবহার করে দেখতে পারেন: tftpgui

এটি আমার পক্ষে কাজ করেছে এবং এটি কনফিগার করা খুব সহজ। এটি পাইথন স্ক্রিপ্টও তবে ftp এর পরিবর্তে tftp করে। আপনাকে যা করতে হবে তা হ'ল পাইথন-টিকে ইনস্টল করুন এবং স্ক্রিপ্টটি ডাউনলোড করুন

সচেতন হওয়ার একমাত্র বিষয় হ'ল উবুনুতু ফাইথন 2-এর কাছে ডিফল্ট তাই স্ক্রিপ্টটি শুরু করার সর্বোত্তম উপায় হ'ল:

sudo python3 ./tftpgui.py

এরপরে আপনি এটি জিইউআইতে কনফিগার করতে পারেন। আপনি যখন কাজটি শেষ করেন আপনি প্রস্থানটি টিপুন এবং এটিই।

ছি-ছি


2
ধন্যবাদ বো - আমি ইতিমধ্যে আমার প্রশ্নে সেই দরকারী সরঞ্জামটি উল্লেখ করেছি। যাইহোক, আমি এফটিপি-র জন্য টিএফটিপিগুইয়ের মতো কিছু চাইছিলাম, যা স্টেফানো তার অজগর গুই ছুঁড়ে না দেওয়া পর্যন্ত উপস্থিত ছিল না।
স্কেইন

পাইথনস ftplib এর পরিবর্তে সূক্ষ্মভাবে কাজ করে এবং প্রচুর ডিভাইস (1 কে +) এর সাথে লেনদেন করলে স্ক্রিপ্ট করা অনেক সহজ
lxx
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.