मैं केवल sftp के लिए एक उपयोगकर्ता कैसे बना सकता हूं?


15

मैंने adduserउपकरण के माध्यम से सिस्टम में एक उपयोगकर्ता जोड़ा है । फिर, में /etc/passwd, मैं बदल रहा है की कोशिश की /bin/bashकरने के लिए /sbin/nologinया करने के लिए /dev/nullहै, लेकिन इन काम की न।

मैं चाहूंगा कि उपयोगकर्ता के पास एक इंटरैक्टिव शेल प्राप्त करने का विकल्प न हो, और बस उपयोग करने के लिए sftp। क्या उधर रास्ता है?

मुझे पता है कि यह यहाँ पहले पूछा गया था लेकिन ऐसा लगता है कि किसी ने भी संतोषजनक प्रतिक्रिया नहीं दी।


"नो लक" से आपका क्या मतलब है?
पावेल ब्रोडाकी

मेरा मतलब था कि रिमोट scp / sftp काम नहीं किया। मैंने इसे आइने द्वारा सुझाए गए स्कूपली शेल का उपयोग करके हल किया
टोनी रोजा

जवाबों:


9

शेल को बदलने के लिए आपको जो कमांड का उपयोग करना चाहिए वह chsh है । नॉलिन शेल हो सकता है /sbin/nologinया /usr/sbin/nologin(जिसे आप देख कर देख सकते हैं /etc/shells) लेकिन /bin/falseशायद एक बेहतर विकल्प होगा।

chsh -s /bin/false user

आपको स्कूपली की तरह कुछ स्थापित करने पर विचार करना चाहिए जो वास्तव में आप चाहते हैं।


आपके उत्तर के लिए धन्यवाद। मैंने बिना किसी भाग्य के अंदर / आदि / शेल के साथ गोले के साथ कोशिश की है ... / बिन / झूठ "खो दिया कनेक्शन" देता है और / sbin / nologin एक "यह खाता वर्तमान में उपलब्ध नहीं है" देता है। मैं इस scponly कोशिश करेंगे
टोनी रोजा

मैंने इसे स्कल्प्ली शेल का उपयोग करके हल किया! चीयर्स
टोनी रोजा

3
यह जवाब है हा में सुई! सुनिश्चित करें /bin/falseऔर /bin/nologinवास्तव में उपलब्ध हैं /etc/shells!
अफर

@ मित्र ठीक है, लेकिन ... आप वास्तव में serverfault.com/questions/328395/… पढ़ना चाहेंगे । यह बहुत दृढ़ता से contraindicated है।
रिंडरियन

@Afr डाल नहीं nologinमें /etc/shells! serverfault.com/a/328424
RobAu

9

आप इसे ओपनएसएसएच 4.9 और इसके साथ भी कर सकते हैं, जिसके साथ आप अतिरिक्त सुरक्षा के लिए उपयोगकर्ता को चुन सकते हैं।

अपने में /etc/ssh/sshd_config:

Match User user
ChrootDirectory /home/user
ForceCommand internal-sftp
AllowTcpForwarding no

फिर भागो:

chsh -s /bin/false user
chown root:root /home/user
mkdir /home/user/uploads
chown user /home/user/uploads

उपयोगकर्ता केवल / घर / उपयोगकर्ता / अपलोड में ही लिख सकेगा।

https://debian-administration.org/article/590/OpenSSH_SFTP_chroot_with_ChrootDirectory


+1 मैंने इसे अपनी सूची में जांच के लिए रखा है।
user9517

1
मैंने इसका उपयोग किया है और यह ठीक काम करता है - आप उपयोगकर्ता को एक शेल के साथ चुरोट वातावरण में लॉग इन करने का विकल्प भी दे सकते हैं, लेकिन उस मामले में आपको अपेक्षा के अनुसार न्यूनतम पुस्तकालयों और कुछ अन्य उपयोगिताओं की प्रतिलिपि बनानी होगी। जेलकिट ( olivier.sessink.nl/jailkit ) उसके लिए काम आता है।
एडुआर्डो इवानेक

धन्यवाद, फोर्सकमांड एक संकेत था। मुझे चुरोट की आवश्यकता नहीं है, लेकिन मैं सेवा खातों के साथ SFTP में प्रवेश करना चाहता हूं।
अरादमन

2

मुझे लगता है कि सबसे अच्छा तरीका mysecureshell के साथ है

http://mysecureshell.sourceforge.net/en/index.html

आप जरूरत पड़ने पर किसी उपयोगकर्ता को आसानी से और यहां तक ​​कि बैंडविड्थ को सीमित कर सकते हैं।


मैंने इसे स्कैल्ली शेल का उपयोग करके हल किया, लेकिन यह इस माइकोसुरेल को जानने के लिए निरंतर है
टोनी रोजा

1

आप -s /bin/falseअपने शेल को अक्षम करने के लिए एक उपयोगकर्ता को जोड़ सकते हैं , लेकिन आपको वास्तव में जो स्थापित करना चाहिए, वह एक क्रोकेटेड sftp acccount है। यह एक उपयोगकर्ता को अपनी खुद की निर्देशिका में "जेल" करेगा और उन्हें चेरोट निर्देशिका के बाहर किसी भी फाइल या निर्देशिका को एक्सेस या संशोधित करने में सक्षम होने से रोक देगा।


आपके उत्तर के लिए धन्यवाद, लेकिन यह काम नहीं करता है। जब भी मैं किसी उपयोगकर्ता को शेल / बिन / झूठ का उपयोग करने की कोशिश करता हूं, तो मुझे "खोया हुआ कनेक्शन" मिलता है।
टोनी रोजा
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.