मैं एक क्लाइंट को अपने सर्वर तक पहुंच देना चाहता हूं, लेकिन मैं उन उपयोगकर्ताओं को उनके होम निर्देशिकाओं तक सीमित करना चाहता हूं। मैं उन सभी फ़ाइलों में बाँधूँगा, जिन्हें मैं देखना चाहता हूँ।
मैंने एक उपयोगकर्ता नाम बनाया है bob
और उसे एक नए समूह में जोड़ा है sftponly
। उनके पास एक घरेलू निर्देशिका है /home/bob
। मैंने /bin/false
SSH लॉगिन को रोकने के लिए उनके शेल को बदल दिया है । यहाँ उनकी /etc/passwd
लाइन है:
bob:x:1001:1002::/home/bob:/bin/false
मैंने /etc/ssh/sshd_config
निम्नलिखित को शामिल करने के लिए भी बदलाव किया है:
Match Group sftponly
ChrootDirectory /home/%u
ForceCommand internal-sftp
AllowTcpForwarding no
जब मैं उनके रूप में लॉग इन करने की कोशिश करता हूं, तो यहां मैं देख रहा हूं
$ sftp bob@server
bob@server's password:
Write failed: Broken pipe
Couldn't read packet: Connection reset by peer
अगर मैं उस ChrootDirectory
लाइन पर टिप्पणी करता हूं जिसमें मैं SFTP कर सकता हूं, लेकिन तब उनके पास सर्वर पर मुफ्त लगाम है। मैंने पाया है कि ChrootDirectory /home
काम करता है, लेकिन यह अभी भी उन्हें किसी भी घर निर्देशिका तक पहुंच प्रदान करता है। मैंने स्पष्ट रूप से कोशिश की है ChrootDirectory /home/bob
लेकिन वह भी काम नहीं करता है।
मैं क्या गलत कर रहा हूं? मैं कैसे सीमित कर सकते हैं bob
करने के लिए /home/bob/
?
---- संपादित करें -----
ठीक है, इसलिए मैंने अभी /var/log/auth.log
देखा और इसे देखा:
May 9 14:45:48 nj sshd[5074]: pam_unix(sshd:session): session opened for user bob by (uid=0)
May 9 14:45:48 nj sshd[5091]: fatal: bad ownership or modes for chroot directory component "/home/bob/"
May 9 14:45:48 nj sshd[5074]: pam_unix(sshd:session): session closed for user bob
मुझे पूरी तरह से यकीन नहीं है कि वहां क्या चल रहा है, लेकिन यह सुझाव देता है कि उपयोगकर्ता निर्देशिका के साथ कुछ गलत है। यहाँ ls -h /home
उत्पादन है:
drwxr-xr-x 26 oli oli 4096 2012-01-19 17:19 oli
drwxr-xr-x 3 bob bob 4096 2012-05-09 14:11 bob
ChrootDirectory /home/%u
प्रतिस्थापित किया जा सकता हैChrootDirectory %h
।