คุณต้องการเปลือกสำหรับ SCP หรือไม่?


33

ฉันอนุญาตให้บัญชีภายในเครื่องของเพื่อนของฉันสำหรับ SCP โดยเฉพาะ ฉันสามารถระบุเปลือกบัญชีของเขาเป็น/bin/trueหรือในทางอื่น จำกัด บัญชีในขณะที่ยังอนุญาต SCP อยู่หรือไม่?

คำตอบ:


39

คุณสามารถตั้งค่าเชลล์ของผู้ใช้เป็น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 หรือ / bin / true ไม่ทำงาน - หรืออนุญาต sftp เท่านั้น?
Danny Staple

2
@DannyStaple หากเชลล์ของผู้ใช้ถูกตั้งค่าเป็น/bin/falseหรือโปรแกรมอื่น ๆ ที่ไม่ทำอะไรทั้ง SCP และ SFTP จะไม่ทำงาน สำหรับทั้งคำสั่ง SSH daemon จะยิงคำสั่งเชลล์ที่รันกระบวนการเซิร์ฟเวอร์เฉพาะ ( scp -fหรือsftp-server) มันต้องการเชลล์สไตล์ Bourne หรืออย่างน้อยก็ใกล้พอสมควร (เช่นrsshซึ่งอนุญาตเฉพาะคำสั่งไม่กี่คำเหล่านี้เท่านั้น)
Gilles 'หยุดความชั่วร้าย'

3

ไม่คุณทำไม่ได้ ขณะที่กิลส์ชี้ให้เห็น rssh ทำงานอย่างมากเพื่อการนี้เช่นเดียวกับscponly ดูการอภิปรายในคำถามที่เกี่ยวข้องนี้


1
พวกเขายังคงเป็นหอยตามที่ชี้ให้เห็น/bin/falseจะไม่ทำงานchmod 644 ksh จะไม่
Steve-o
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.