এটি করার সর্বোত্তম উপায় হ'ল ব্যবহারকারীর জন্য ক্রোট জেল তৈরি করা। আমি ঘরে পৌঁছে উত্তরটি এখানে পরিষ্কার করব তবে আমি সমাধানটি আমার ব্লগে পোস্ট করেছি।
https://thefragens.com/chrootd-sftp-on-mac-os-x-server/
নীচে উপরের পোস্ট থেকে বেশিরভাগ নির্দেশনা দেওয়া হল।
প্রথমত, আপনাকে ওয়ার্কগ্রুপ অ্যাডমিনে নতুন ব্যবহারকারী তৈরি করা উচিত এবং তাদেরকে সার্ভার অ্যাডমিনের মাধ্যমে এসএসএইচের জন্য অ্যাক্সেসের সুযোগগুলি নির্ধারণ করুন বা এসএসএইচ অ্যাক্সেসের অধিকার রয়েছে এমন একটি গোষ্ঠীতে তাদের অর্পণ করুন। আরও আলোচনা নীচে।
টার্মিনাল থেকে, ডানদিকে শুরু করুন।
sudo cp /etc/sshd_config /etc/sshd_config.bkup
sudo chown root /
sudo chmod 755 /
sudo mkdir -p /chroot/user/scratchpad
sudo chown -R root /chroot
sudo chown user /chroot/user/scratchpad
sudo chmod -R 755 /chroot
যুক্ত প্রতিটি অতিরিক্ত নতুন ব্যবহারকারী তারপরে নীচের লাইনের সাথে কিছু হবে।
sudo mkdir -p /chroot/user2/scratchpad
sudo chown root /chroot/user2
sudo chown user2 /chroot/user2/scratchpad
sudo chmod -R 755 /chroot/user2
ক্রুট কারাগারে যাওয়ার প্রতিটি ফোল্ডারের মালিকানা অবশ্যই তার root
। আমি মনে করি না যে এটি ফোল্ডারটি কী গ্রুপে রয়েছে তা বিবেচনা করে। উপরে আমি যা করেছি তা হ'ল
- ব্যাকআপ
/etc/sshd_config
- রুট ডিরেক্টরিটির মালিকানা পরিবর্তন করুন
root
- রুট ডিরেক্টরিটির অনুমতিগুলি 755 এ পরিবর্তন করুন
- একটি ক্রুট ফোল্ডার তৈরি করুন
- ক্রুট ফোল্ডারের ভিতরে একটি ব্যবহারকারী ফোল্ডার তৈরি করুন
- ব্যবহারকারীর ফোল্ডারের ভিতরে একটি ফোল্ডার তৈরি করুন যা ব্যবহারকারী পরিবর্তন করতে পারে
- মালিকানা এবং অনুমতি সেট করুন
এখন /etc/sshd_config
নিম্নলিখিত সম্পাদনা করতে।
#Subsystem sftp /usr/libexec/sftp-server
Subsystem sftp internal-sftp
Match User user
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
ChrootDirectory /chroot/user
এটি একটি ক্রুট জেল তৈরি করে যে যখন ব্যবহারকারী লগ ইন করে সেগুলি ফোল্ডারে ফেলে দেবে /chroot/user
, সেই ফোল্ডারে একটি ফোল্ডারে তারা জিনিস যুক্ত করতে পারে /chroot/user/scratchpad
।
আপনি যদি 'ক্রুট ব্যবহারকারীগণ' এর জন্য ওয়ার্কগ্রুপ অ্যাডমিনে একটি গ্রুপ তৈরি করতে চান তবে আপনি ওয়ার্কগ্রুপ অ্যাডমিনে তৈরি হওয়া নতুন ব্যবহারকারীদের গ্রুপে যুক্ত করুন আপনাকে /etc/sshd_config
ফাইল সম্পাদনা করতে হবে না । উপরের পরিবর্তে, নিম্নলিখিত যোগ করুন। আপনি সার্ভার অ্যাডমিনে এসএসএইচ অ্যাক্সেস এসিএলে 'ক্রুট ব্যবহারকারীগণ' গ্রুপটি যুক্ত করেছেন তা নিশ্চিত করুন।
Match Group chrootusers
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
ChrootDirectory /chroot/%u
উপরেরটি কাজ করছে কিনা তা পরীক্ষা করতে, টার্মিনাল থেকে নিম্নলিখিতটি জারি করুন।
$ sftp user@domain.com
Password:
sftp>