ฉันต้องการสร้างผู้ใช้ที่สามารถทำได้เพียงสิ่งเดียวเท่านั้น: ผ่าน ssh ระบุสคริปต์ (และอาร์กิวเมนต์บรรทัดคำสั่งของสคริปต์) ที่อยู่ในโฟลเดอร์เดียว (สำหรับวัตถุประสงค์ของคำถามนี้ให้เราเรียกมัน/local/remote_only_scripts/foo
) และให้สคริปต์ดำเนินการ แล้วส่งคืนเอาต์พุต
เพื่อให้ชัดเจนบางตัวอย่างของสิ่งที่ฉันไม่ต้องการให้ผู้ใช้สามารถทำได้:
- เข้าสู่ระบบในบัญชี
/bin/login
การประยุกต์ใช้เข้าสู่ระบบเป็น ไม่ใช่สคริปต์ใน/local/remote_only_scripts/foo
โฟลเดอร์ดังนั้นจึงไม่ควรเรียกใช้โดยผู้ใช้ - ลงชื่อเข้าใช้บัญชีจากระยะไกล ล็อกอินอีกครั้ง (นั่นคือสิ่งที่เรียกว่าโดย ssh?) ไม่ใช่สคริปต์ในโฟลเดอร์ที่เกี่ยวข้อง
- แสดงรายการเนื้อหาของไดเรกทอรี LS
/bin/ls
อยู่ใน ไม่ใช่สคริปต์ในไดเรกทอรีที่เหมาะสม - แก้ไขไฟล์ในไดเรกทอรีนั้น emacs, vi, แก้ไขอื่น ๆ ส่วนใหญ่ไม่ได้เป็นสคริปต์ใน directoy นั้น
- ดูเนื้อหาของไฟล์ในไดเรกทอรีนั้น
- ดำเนินการไฟล์ในไดเรกทอรีนั้นว่าเขาไม่ได้รับอนุญาตให้ดำเนินการ
โปรดทราบว่านี่เป็นตัวอย่างที่มีการดำเนินการอื่น ๆ อีกมากมายที่ฉันไม่ต้องการให้ผู้ใช้สามารถทำได้ ในการพิจารณาการกระทำให้ถามว่า "สคริปต์นี้ใช้งาน/local/remote_only_scripts/foo
หรือไม่" ถ้าคำตอบคือไม่มีผู้ใช้ไม่ควรทำ หากคำตอบคือใช่ผู้ใช้ควรจะสามารถทำได้
PS: ให้ฉันอธิบายสิ่งที่ฉันหมายถึงโดย "การเพิ่มผู้ใช้" ฉันไม่ได้หมายถึงการเพิ่มผู้ใช้ไปยังระบบย่อย ssh แต่ฉันหมายถึงการเพิ่มผู้ใช้ไปยังระบบคอมพิวเตอร์ ตัวอย่างเช่นฉันมีระบบที่ใช้เดเบียนเสถียรเรียกมันตามที่อยู่ของมัน www.hg.bar.com ฉันต้องการที่จะเพิ่มผู้ใช้ (ผ่าน kuser ผู้ใช้ผู้ดูแลระบบหรือ useradd หรือวิธีที่คล้ายกัน) เรียกเขาว่า hg_guest hg_guest ไม่สามารถเข้าสู่ระบบในเครื่องหรือทำสิ่งใด ๆ ในรายการด้านบน hg_guest ทั้งหมดสามารถทำได้คือเรียกใช้สคริปต์ "จากระยะไกล" ฉันบอกว่าเขาควรจะสามารถทำได้ผ่านทาง ssh แต่คิดว่าตอนนี้อาจจะอนุญาตให้เขาใช้ ssh อาจอนุญาตให้เขาเข้าสู่ระบบในท้องถิ่นดังนั้นกลไกอื่น ๆ อาจจำเป็นต้องใช้