ऐसा करने का सबसे अच्छा तरीका उपयोगकर्ता के लिए चेरोट जेल बनाना है। जब मैं घर पहुँचता हूँ तो यहाँ उत्तर को साफ़ कर देता हूँ लेकिन मैंने अपने ब्लॉग पर समाधान पोस्ट कर दिया है।
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 में बदलें
- एक चेरोट फ़ोल्डर बनाएँ
- chroot फ़ोल्डर के अंदर एक उपयोगकर्ता फ़ोल्डर बनाएँ
- उपयोगकर्ता फ़ोल्डर के अंदर एक फ़ोल्डर बनाएं जिसे उपयोगकर्ता संशोधित कर सकता है
- स्वामित्व और अनुमतियां सेट करें
अब /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
।
अगर आप Users चेरोट यूजर्स ’के लिए वर्कग्रुप एडमिन में एक ग्रुप बनाना चाहते हैं तो ग्रुप में जो नए यूजर्स आपने वर्कग्रुप में बनाए हैं उन्हें ग्रुप में एड करें, आपको /etc/sshd_config
फाइल को एडिट करना नहीं पड़ेगा । उपरोक्त के बजाय, निम्नलिखित जोड़ें। सुनिश्चित करें कि आप सर्वर व्यवस्थापक में SSH पहुँच ACL में 'चेरोट उपयोगकर्ता' समूह जोड़ते हैं।
Match Group chrootusers
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
ChrootDirectory /chroot/%u
परीक्षण करने के लिए कि ऊपर काम कर रहा है, टर्मिनल से निम्नलिखित जारी करें।
$ sftp user@domain.com
Password:
sftp>