การสร้างบัญชี UNIX ซึ่งดำเนินการเพียงคำสั่งเดียวเท่านั้น


13

มีวิธีการสร้างบัญชีผู้ใช้ใน Solaris ซึ่งอนุญาตให้ผู้ใช้เรียกใช้คำสั่งเดียวเท่านั้นหรือไม่ ไม่มีล็อกอินเชลล์หรืออะไรอย่างอื่น ฉันอาจจะทำมันด้วย/usr/bin/falseใน/etc/passwdและเพิ่งได้รับให้ผู้ใช้ssh <hostname> <command>แต่มีวิธีที่ดีกว่าที่จะทำมันได้หรือไม่

คำตอบ:


15

คุณสามารถใช้คำสั่งบังคับหากผู้ใช้สามารถเชื่อมต่อผ่าน ssh เท่านั้น โดยพื้นฐานแล้วเมื่อใดก็ตามที่ผู้ใช้เชื่อมต่อผ่าน ssh ด้วยคีย์ที่แน่นอนและชื่อผู้ใช้ที่แน่นอนคุณบังคับให้เขารันคำสั่ง (หรือสคริปต์หรือ) ที่คุณกำหนดใน. ssh / authorized_keys คำสั่งที่ออกโดยผู้ใช้จะถูกละเว้น

ตัวอย่างเช่น:

# in .ssh/authorized_keys
command="cd /foo/bar && /path/to/scripts/my_script.sh arg1 arg2",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty ssh-rsa public_key

คุณทั้งคู่ถูกต้องแล้ว สิ่งที่ฉันทำคือสร้างสคริปต์ที่ให้เมนูบนพรอมต์และใช้คำสั่งบังคับให้ตรวจสอบใน. ssh / authorized_keys บนเซิร์ฟเวอร์หน้าคีย์สำหรับผู้ใช้ที่ได้รับอนุญาต ตอนนี้ช่วยให้เขาสามารถ ssh ไปยังเซิร์ฟเวอร์และที่พร้อมท์จะได้รับเมนูดีกับคำสั่งต่าง ๆ เพื่อดำเนินการ ไม่มีอะไรสามารถเรียกใช้ วันแห่งความสุข!
Will Dowling

2
แก้ไข; คุณต้องการตัวเลือกเหล่านี้เพื่อรักษาความปลอดภัยคำสั่งบังคับ: "no-port-forwarding, no-X11-forwarding, no-agent-forwarding, no-pty"
Tobu

11

คุณสามารถตั้งค่าเชลล์ของผู้ใช้นั้นเป็นสคริปต์ที่รันคำสั่งที่คุณต้องการอนุญาต: เมื่อใดก็ตามที่ผู้ใช้ล็อกอินคำสั่งจะถูกเรียกใช้จากนั้นผู้ใช้จะออกจากระบบ และเนื่องจากไม่มี "เปลือกเต็ม" คุณจึงไม่ต้องจัดการกับผู้ใช้ที่พยายามทำสิ่งที่ขี้ขลาด;)


0

ฉันสงสัยว่าคุณสามารถทำสิ่งนี้กับ RBAC และให้เชลล์แก่ผู้ใช้ (pfsh, pfcsh หรือ pfksh) และสร้างโปรไฟล์สำหรับคำสั่งที่อนุญาตให้ผู้ใช้เรียกใช้หรือไม่

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