ব্যবহারকারী SFTP এর মাধ্যমে / var / www / html / এ সংযোগ করতে পারবেন না


2

আমার অ্যামাজনে ল্যাম্প এবং ওয়ার্ডপ্রেস চলমান একটি উবুন্টু সার্ভার রয়েছে। আমি ftpuser নামে একটি ব্যবহারকারী তৈরি করেছি যা এসটিপিটি প্রোটোকলের মাধ্যমে এফটিপি ক্লায়েন্ট থেকে একটিতে সংযুক্ত হবে /var/www/html/site/এবং এর উপর অধিকার থাকবে।

  1. আমি এসএসএইচ কী তৈরি করেছি এবং ব্যবহারকারী তার /home/ftpuser/ফোল্ডারে সংযোগ স্থাপন করেছে ।
  2. আমি সেট করেছি

    usermod -m -d /var/www/html/site/ ftpuser
    
  3. অনুলিপি করা /home/ftpuser/.ssh/হয়েছে /var/www/html/site। আমি মালিকানাটি ftpuser এ সেট করেছি।

  4. দলে যুক্ত ftpuserহয়েছে www-data

তবে এটি আমার পক্ষে কাজ করে না। এফটিপি ব্যবহারকারী এমনকি সংযোগও দেয় না। ব্যবহারকারী আসলে ব্যবহারকারীর প্রাথমিক হোম ডিরেক্টরিতে কেবল সংযোগ স্থাপন করে।

আমি মালিকানা পরিবর্তন করতে হবে না /var/www/html/site/একটি থেকে ftpuser, কিন্তু এই ক্ষেত্রে ওয়ার্ডপ্রেস সাইটের স্টপ কারণ পরিশ্রমী হবে www-dataএ্যাপাচি চালানোর জন্য সেট করা হয়, অথবা আমি ভুল বুঝলাম?

কিছু ম্যানুয়ালটিতে বলা হয়েছে:

chmod ug+w /var/www/html/site/
chmod g+s /var/www/html/site/
setfacl -d -m g::rwx /var/www/html/site/

আমি নিশ্চিত নই যে এটি আমাকে সাহায্য করবে এবং আমি ডিরেক্টরিগুলি ভুল কনফিগার করতে চাই না এবং কার্যকারী ওয়েবসাইটটি থামিয়ে দেব।

কোন সাহায্য দয়া করে? ডিরেক্টরিগুলি সম্পর্কে এখানে কিছু ইনফস রয়েছে:

ls -l /var/www/html/
drwxr-xr-x 12 www-data www-data 4096 Jan 29 13:16 site

ls -al /var/www/html/site/
drwx-w----  2 ftpuser  www-data  4096 Jan 29 13:16 .ssh

ls -l /var/www/html/site/.ssh/
-rw-r--r-- 1 ftpuser www-data  407 Jan 29 13:16 authorized_keys
-rw------- 1 ftpuser www-data 1675 Jan 29 13:16 id_rsa
-rw-r--r-- 1 ftpuser www-data  406 Jan 29 13:16 id_rsa.pub

getfacl /var/www/html/site/
getfacl: Removing leading '/' from absolute path names
# file: var/www/html/site/
# owner: www-data
# group: www-data
user::rwx
group::r-x
other::r-x

getfacl /var/www/html/site/.ssh/
getfacl: Removing leading '/' from absolute path names
# file: var/www/html/site/.ssh/
# owner: ftpuser
# group: www-data
user::rwx
group::-w-
other::---

সমাধান। আমার ক্ষেত্রে আমারও করতে হয়েছিল:

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

আপনার পদ্ধতি এবং ব্যাখ্যা বোঝা কঠিন। প্রথমত, ব্যবহারকারীর হোম ডিরেক্টরি পরিবর্তন করা একটি ভয়াবহ ধারণা। আপনার হোম ডিরেক্টরিতে কেবল একটি প্রতীকী লিঙ্ক সেট করুন। এরপরে, আপনি যদি অ্যামাজন এডাব্লুএসে থাকেন তবে নিশ্চিত হয়ে নিন যে এসএফটিপি-র জন্য প্রয়োজনীয় বন্দরগুলি আপনার নজরে খোলা রয়েছে। যদি এটি সত্যই এসএফটিপি হয় তবে এটি এসএসএইচের মতো একই বন্দর ব্যবহার করে; পোর্ট 22. এটি যদি এফটিপিএস হয় তবে পোর্টটি 21 বা 990 ​​হওয়া উচিত You ফায়ারওয়াল ট্যাবের জন্য অ্যামাজনের নাম কী তা ভুলে যান তবে তা হ'ল: একটি ফায়ারওয়াল সমস্যা।
জ্যাকগল্ড

ব্যবহারকারী আসলে সংযোগ স্থাপন করে তবে কেবল তার প্রাথমিক হোম ডিরেক্টরিতে।
জ্যাক ডাব্লু।

উত্তর:


3

প্রথমত, আপনি বলেছিলেন "এফটিপি ব্যবহারকারী সংযোগও দেয় না।" যদি ব্যবহারকারীটির মতো ত্রুটিগুলি পেয়ে Connection timed outথাকে তবে আপনার সম্ভবত ফায়ারওয়াল / আইপটিবল সমস্যা রয়েছে এবং আপনাকে প্রথমে এটি ঠিক করতে হবে। এসএফটিপি এসএসএইচের মতো একই টিসিপি পোর্ট ব্যবহার করে: ডিফল্টরূপে এটি 22 হয়।

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

sshdব্যবহারকারীর হোম ডিরেক্টরি, মূল ডিরেক্টরিতে সমস্ত উপায়ে ডিরেক্টরি, যে কোনও .sshউপ-ডিরেক্টরি এবং এতে থাকা authorized_keysফাইল অন্য ব্যবহারকারীদের দ্বারা লিখিত নয় , অন্যথায় sshdকোনও "অনুমোদিত কী" সন্নিবেশ করা হয়েছে তা ধরে নিতে হবে অন্য দূষিত ব্যবহারকারীর দ্বারা এবং তাদের বিশ্বাস করবে না। HTTP সার্ভারের সাবট্রির মাঝখানে ব্যবহারকারীর হোম ডিরেক্টরি স্থাপন করা এই প্রয়োজনীয়তাগুলি পূরণ করা আরও কঠিন করে তুলতে পারে।

সিস্টেমে যদি সেলইনাক্স বা অন্যান্য অতিরিক্ত সুরক্ষা ব্যবস্থা কার্যকর হয় তবে ব্যবহারকারীর হোম ডিরেক্টরিটি কোনও মানহীন স্থানে স্থাপনের চেষ্টা করার জন্য অতিরিক্ত পদক্ষেপের প্রয়োজন হতে পারে। সাধারণভাবে, ftpuserসাইটের প্রকৃত অবস্থানের দিকে ইঙ্গিত করে কেবলমাত্র নিজের হোম ডিরেক্টরিতে একটি প্রতীকী লিঙ্ক তৈরি করা অনেক সহজ হবে । ব্যবহারকারীর একটি উপ-ডিরেক্টরি ব্যবহার করতে হবে তবে এটি সাধারণত সহনীয়।

আমি প্রথমে ব্যবহারকারীর হোম ডিরেক্টরি অবস্থানটি স্বাভাবিক অবস্থায় পুনরুদ্ধার করার পরামর্শ দেব:

usermod -d /home/ftpuser ftpuser

তারপরে প্রতীকী লিঙ্কটি তৈরি করা:

ln -s /var/www/html/site /home/ftpuser/site

তারপরে পরীক্ষা শুরু করুন। প্রথমে এফটিপি ব্যবহারকারীর কমপক্ষে সংযোগ স্থাপনের চেষ্টা করুন: কোনও নেটওয়ার্ক সংযোগ স্থাপন করা হয়েছে কিনা তা দেখতে সার্ভারের লগগুলি পরীক্ষা করুন। তারপরে নিশ্চিত করুন যে এসএসএইচ কী প্রমাণীকরণ কাজ করে। তারপরেই ফাইল অনুমতিগুলির বিষয়ে চিন্তা করার সময়। সেগুলি সম্পর্কে একটি পৃথক প্রশ্ন লেখাই আপনার পক্ষে ভাল।

এবং যদি আপনি ftpuserকেবল ওয়েবসাইটের সামগ্রী এবং সিস্টেমের কোনও অংশই দেখতে চান তবে এটি একটি বিশেষ ঘটনা: এটি একটি ক্রোয়েটেড এসএফটিপি অ্যাকাউন্ট এবং sshdসিস্টেমটিতে ব্যবহৃত সংস্করণের উপর নির্ভর করে এর কিছু অতিরিক্ত প্রয়োজনীয়তাও রয়েছে । ftpuserতাদের স্ট্যান্ডার্ড হোম ডিরেক্টরিতে কারাগারে রাখা আরও সহজ হতে পারে এবং তারপরে বাইন্ড মাউন্ট ব্যবহার করে কারাগারের মধ্যে সাইটটি অ্যাক্সেসযোগ্য করে তুলতে পারেন :

mkdir /home/ftpuser/site  #empty directory for a mount point
mount -o bind,rw /var/www/html/site /home/ftpuser/site

প্রতীকী লিঙ্কের অনুরূপ, ftpuserসাইট ডিরেক্টরিটি তাদের বাড়ির ডিরেক্টরিটির একটি উপ ডিরেক্টরি হিসাবে "ডিরেক্টরি" "দেখার" জন্য এটি ক্রোট-সামঞ্জস্যপূর্ণ উপায় : এটি কোনওভাবেই সাইটের ক্রিয়াকলাপকে প্রভাবিত করবে না।

(প্রতীকী লিঙ্কগুলি ক্রুট জেলের অভ্যন্তর থেকে বাইরের বিশ্বের দিকে নির্দেশ করতে পারে না, তবে একটি বাইন্ড মাউন্ট অন্যান্য ফাইল সিস্টেমের অংশগুলি কারাগারের মধ্যে অ্যাক্সেসযোগ্য করে তুলতে পারে))

অ-রুট ব্যবহারকারীদের দ্বারা রক্ষণাবেক্ষণের জন্য কোনও ওয়েবসাইট ডিরেক্টরি ট্রি স্থাপন করার সময়, বিবেচনা করার জন্য অনেকগুলি অ্যাক্সেস বিভাগ থাকতে পারে:

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

বিভাগ এবং এ) বিভাগে ফাইল এবং ডিরেক্টরিগুলি সহজ: এগুলি ব্যতীত অন্য কোনও ব্যবহারকারী / গোষ্ঠীর মালিকানা হতে পারে www-data। একমাত্র প্রয়োজনীয়তা হ'ল সেগুলি ব্যবহারকারী দ্বারা পঠনযোগ্যwww-data এবং বিশ্ব-পঠনযোগ্য / অ্যাক্সেসযোগ্য অনুমতি বিটগুলি এটিকে আবরণ করবে।

বিভাগে ফাইল এবং ডিরেক্টরিগুলি ক) ব্যবহারকারীর রুট, গোষ্ঠী মূলের মালিকানাধীন এবং -rw-r--r--নিয়মিত ফাইলগুলির -rwxr-xr-xজন্য, এক্সিকিউটেবল ফাইলগুলির drwxr-xr-xজন্য এবং ডিরেক্টরিগুলির জন্য অনুমতি থাকতে পারে ।

যদি আপনার সাইটে বি বিভাগে ফাইল অন্তর্ভুক্ত থাকে তবে আপনি একটি দ্বিতীয় গ্রুপ তৈরি wwwadminকরতে এবং ftpuserসেই গোষ্ঠীর সদস্যও তৈরি করতে চাইতে পারেন । এই দলের জন্য, এটি গুরুত্বপূর্ণ যে ব্যবহারকারী www-dataহয় না একজন সদস্য।

বি বিভাগে থাকা ফাইল এবং ডিরেক্টরিগুলি ব্যবহারকারীর ftpuser(বা যে কেউ), গোষ্ঠী wwwadmin, এবং -rw-rw-r--নিয়মিত ফাইলগুলির -rwxrwxr-xজন্য এক্সিকিউটেবল ফাইল এবং drwxrwxr-xডিরেক্টরিগুলির জন্য অনুমতিগুলির মালিকানাধীন ।

যদি অ্যাপাচি www-data ব্যবহারকারী হিসাবে চালায় তবে ওয়ার্ডপ্রেস এবং / অথবা অন্য কোনও সাইটের উপাদান দ্বারা নির্মিত যে কোনও নতুন ফাইল ব্যবহারকারী www-data, গোষ্ঠীর মালিকানাধীন থাকবে www-data। যেহেতু আপনি ftpuserইতিমধ্যে www-dataগ্রুপটির সদস্য , আপনাকে কেবল বিভাগের সিতে নিশ্চিত করতে হবে) সমস্ত ফাইলের প্রাথমিক অনুমতি আছে rw-rw-r-- এবং যে কোনও ডিরেক্টরি অনুমতি drwxrwxr-x। যে মালিকানাধীন সমস্ত ফাইল গ্রুপ লেখার অনুমতি যোগ অর্থ হবে www-dataএবং কনফিগার করার এ্যাপাচি এবং / অথবা ওয়ার্ডপ্রেস ব্যবহার করতে umask 002। উবুন্টুতে, আমি মনে করি /etc/apache2/envvarsফাইলটিতে অ্যাপাচি উমাস্ক সেট করা যেতে পারে । ওয়ার্ডপ্রেস ওয়েব সার্ভারের ডিফল্ট উমাস্ককে ওভাররাইড করতে পারে, তাই আপনার এটি আলাদাভাবে কনফিগার করার প্রয়োজন হতে পারে।

www-dataগোষ্ঠীর মালিকানাধীন সমস্ত ফাইল এবং ডিরেক্টরিগুলির সঠিক গোষ্ঠী অ্যাক্সেসের অনুমতি থাকতে, এই কমান্ডটি চালান:

find /var/www/html/site -group www-data -exec chmod g+rwX {} \+

এছাড়াও আপনি যোগ করতে চান করতে পারেন setgidমালিকানাধীন সমস্ত ডিরেক্টরিগুলিতেই অনুমতি বিট www-dataতা নিশ্চিত করার জন্য সব নতুন ফাইল এবং একটি উপ-ডিরেক্টরির তাদের যোগ স্বয়ংক্রিয়ভাবে মালিকানাধীন হয়ে যাবে ব্যবহারকারী, www-dataগ্রুপ এমনকি যদি এটি যোগ ব্যবহারকারীর প্রাথমিক গ্রুপ নয় ফাইল / ডিরেক্টরি:

find /var/www/html/site -type d -group www-data -exec chmod g+s {} \+

এই গ্রুপ অনুমতি পরিবর্তন drwxrwxr-xকরতে drwxrwsr-x, এবং প্রয়োজনীয়তার সরিয়ে ফেলা হবে ftpuserম্যানুয়ালি ব্যবহার করতে chgrp www-dataকোনো নতুন ফাইল জোড়ার পরে।

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

আপনি যদি ftpuserবিভাগ ডি এর ফাইলগুলি পরিচালনা করার অনুমতি দিতে চান তবে ব্যবহারকারীকে জানতে হবে যে তারা যে ডিরেক্টরিটিতে ফাইল রয়েছে সেটিতে লেখার অ্যাক্সেস রয়েছে এবং ফাইলটি পঠনযোগ্য, তারা সর্বদা ফাইলটির মালিকানা গ্রহণ করতে পারে ফাইলটির একটি অনুলিপি তৈরি করা এবং তারপরে আসলটি মোছা।


পরামর্শের জন্য ধন্যবাদ. যেমনটি আমি উল্লেখ করেছি, আসলে ftpuser তার হোম ডিরেক্টরিটি ftpzilla sftp প্রোটোকলের মাধ্যমে সংযুক্ত করে, এতে কোনও সমস্যা নেই, ফায়ারওয়াল বা কিছু নেই। সমস্যাটি যখন আমি ftpuser ডিরেক্টরিটি সেট করার চেষ্টা করি যা ftpuser দ্বারা সম্পাদনা করা প্রয়োজন। এছাড়াও আপনি "মাউন্ট-ও বাঁধন, rw / var / www / html / সাইট / হোম / ftpuser / সাইট" বলেছিলেন, যাতে এটি / var / www / html / সাইটে প্রভাব ফেলবে না? কারণ আমার ওয়েবসাইট চলছে। এম? ধন্যবাদ
জ্যাক ডব্লিউ

অনুমতি পরামর্শের জন্য সম্পাদিত (যা স্বীকার করে এই উত্তরটি বরং দীর্ঘায়িত করেছে)। না, বাইন্ড মাউন্টটি সাইটের ক্ষতি করবে না।
telcoM

পোস্টের জন্য @telcoM থানস্ক, পুরো ওয়েবে আমি 2 সপ্তাহের পরে অনুসন্ধান করি এবং পড়েছি, কেবলমাত্র এবং কেবলমাত্র আপনার উত্তরটি সঠিক, পুরো এবং সহায়ক। অন্যান্য উত্তরগুলি খুব বিভ্রান্তিমূলক এবং এতে প্রচুর অনুমান এবং ভুল তথ্য রয়েছে। 5 শুরু হয় *****
বিসিয়েন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.