প্রথমত, আপনি বলেছিলেন "এফটিপি ব্যবহারকারী সংযোগও দেয় না।" যদি ব্যবহারকারীটির মতো ত্রুটিগুলি পেয়ে 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
সেটিংসটি ftpuser
002 এ পরিবর্তন করেন (এটি যদি ইতিমধ্যে তা না হয়) তবে তাদের তৈরি করা কোনও নতুন ফাইলের ডিফল্টরূপে গ্রুপ রাইটিং অ্যাক্সেস থাকবে। যা গ) ফাইলগুলি সংশোধন করার সময় সহায়তা করে এবং নিয়মিত উবুন্টুতে অন্য কোনও ফাইলের সাথে আঘাত করা উচিত নয়। অবশ্যই, তাদের এসএফটিপি ক্লায়েন্ট ফাইলগুলি স্থানান্তর করার সময় বিদ্যমান অনুমতিগুলি বজায় রাখার চেষ্টা করতে পারে, যার জন্য ক্লায়েন্টের পক্ষ থেকে কিছু টুইটের প্রয়োজন হতে পারে।
আপনি যদি ftpuser
বিভাগ ডি এর ফাইলগুলি পরিচালনা করার অনুমতি দিতে চান তবে ব্যবহারকারীকে জানতে হবে যে তারা যে ডিরেক্টরিটিতে ফাইল রয়েছে সেটিতে লেখার অ্যাক্সেস রয়েছে এবং ফাইলটি পঠনযোগ্য, তারা সর্বদা ফাইলটির মালিকানা গ্রহণ করতে পারে ফাইলটির একটি অনুলিপি তৈরি করা এবং তারপরে আসলটি মোছা।