ฉันอนุญาตให้บัญชีภายในเครื่องของเพื่อนของฉันสำหรับ SCP โดยเฉพาะ ฉันสามารถระบุเปลือกบัญชีของเขาเป็น/bin/true
หรือในทางอื่น จำกัด บัญชีในขณะที่ยังอนุญาต SCP อยู่หรือไม่?
ฉันอนุญาตให้บัญชีภายในเครื่องของเพื่อนของฉันสำหรับ SCP โดยเฉพาะ ฉันสามารถระบุเปลือกบัญชีของเขาเป็น/bin/true
หรือในทางอื่น จำกัด บัญชีในขณะที่ยังอนุญาต SCP อยู่หรือไม่?
คำตอบ:
คุณสามารถตั้งค่าเชลล์ของผู้ใช้เป็นrssh
หรือscponly
ซึ่งได้รับการออกแบบมาอย่างแม่นยำเพื่อจุดประสงค์นั้น:
rssh เป็นเชลล์แบบ จำกัด สำหรับใช้กับ OpenSSH ซึ่งอนุญาตเฉพาะ scp และ / หรือ sftp ตอนนี้ยังรวมถึงการสนับสนุน rdist, rsync และ cvs
scponly เป็นทางเลือก 'shell' (แปลก ๆ ) สำหรับผู้ดูแลระบบที่ต้องการให้การเข้าถึงผู้ใช้ทางไกลทั้งการอ่านและเขียนไฟล์ในเครื่องโดยไม่ต้องมีสิทธิ์ดำเนินการทางไกล
เมื่อคุณรัน scp OpenSSH daemon จะยิงscp
กระบวนการด้วย-f
ตัวเลือก เมื่อคุณรัน sftp OpenSSH daemon จะยิงsftp-server
กระบวนการ ไม่ว่าในกรณีใดการประมวลผลย่อยจะดำเนินการผ่านเชลล์ของผู้ใช้ดังนั้นเชลล์ต้องสนับสนุนคำสั่งเหล่านี้อย่างน้อยที่สุดพร้อมกับไวยากรณ์คล้ายบอร์น เปลือกสไตล์บอร์นใด ๆ ที่จะทำเช่นเดียวกับที่จะ csh (ฉันคิดว่ากฎการอ้างอิงของมันเข้ากันได้มากพอสำหรับสิ่งที่sshd
ใช้) Rssh และ scponly อนุญาตคำสั่งเหล่านี้และไม่มีอะไรอื่น /bin/true
จะไม่แม้แต่เรียกใช้คำสั่งเหล่านี้
/bin/false
หรือโปรแกรมอื่น ๆ ที่ไม่ทำอะไรทั้ง SCP และ SFTP จะไม่ทำงาน สำหรับทั้งคำสั่ง SSH daemon จะยิงคำสั่งเชลล์ที่รันกระบวนการเซิร์ฟเวอร์เฉพาะ ( scp -f
หรือsftp-server
) มันต้องการเชลล์สไตล์ Bourne หรืออย่างน้อยก็ใกล้พอสมควร (เช่นrssh
ซึ่งอนุญาตเฉพาะคำสั่งไม่กี่คำเหล่านี้เท่านั้น)
ไม่คุณทำไม่ได้ ขณะที่กิลส์ชี้ให้เห็น rssh ทำงานอย่างมากเพื่อการนี้เช่นเดียวกับscponly ดูการอภิปรายในคำถามที่เกี่ยวข้องนี้
/bin/false
จะไม่ทำงานchmod 644 ksh จะไม่