Linux Shell เป็นหนึ่งในเครื่องมือที่น่าสนใจและทรงพลังที่สุดของ GNU/Linux แอปพลิเคชันทุกอย่าง รวมถึง X สร้างขึ้นบนเชลล์ และ Linux shell มีพลังมากจนสามารถควบคุมระบบ Linux ทั้งหมดได้อย่างแม่นยำ ด้านอื่นของ Linux shell คือ มันอาจเป็นอันตราย เมื่อคุณรันคำสั่งระบบโดยไม่รู้ผลลัพธ์ หรือโดยไม่ได้ตั้งใจ
จากการเป็นผู้ใช้ที่ไม่รู้เรื่อง เพื่อวัตถุประสงค์นี้ เราจึงนำเสนอ restricted shell เราจะอภิปราย restricted shell อย่างละเอียด ข้อจำกัดที่นำไปปฏิบัติ และอีกมากมาย
rbash คืออะไร?
Restricted Shell คือ Linux Shell ที่จำกัดบางคุณสมบัติของ bash shell และชัดเจนจากชื่อ ข้อจำกัดถูกนำไปปฏิบัติอย่างดีสำหรับคำสั่งและสคริปต์ที่รันใน restricted shell มันให้ชั้นความปลอดภัยเพิ่มเติมให้กับ bash shell ใน Linux
ข้อจำกัดที่นำไปปฏิบัติใน rbash
- คำสั่ง cd (Change Directory)
- PATH (การตั้งค่า/ยกเลิกการตั้งค่า)
- ENV หรือ BASH_ENV (การตั้งค่าสภาพแวดล้อม/ยกเลิก)
- การนำเข้า Function
- การระบุชื่อไฟล์ที่มีอาร์กิวเมนต์ '/'
- การระบุชื่อไฟล์ที่มีอาร์กิวเมนต์ '-'
- การเปลี่ยนทิศทางเอาต์พุตด้วย '>', '>>', '>|', '<>', '>&', '&>'
- การปิดข้อจำกัดด้วย 'set +r' หรือ 'set +o'
หมายเหตุ: ข้อจำกัดของ rbash ถูกบังคับใช้หลังจากอ่านไฟล์เริ่มต้นแล้ว
การเปิดใช้งาน Restricted Shell
ในบางรุ่นของ GNU/Linux เช่น Red Hat/CentOS rbash อาจไม่ได้ถูกนำไปปฏิบัติโดยตรงและต้องสร้าง symbolic links
# cd /bin # ln -s bash rbash
ในการแจกจ่าย GNU/Linux มาตรฐานส่วนใหญ่วันนี้ rbash พร้อมใช้งานโดยค่าเริ่มต้น หากไม่มี คุณสามารถดาวน์โหลด source tarball และติดตั้งจากซอร์สในระบบของคุณได้
การเริ่มต้น rbash
เพื่อเริ่ม rbash restricted shell ใน Linux ให้รันคำสั่งต่อไปนี้
# bash -r หรือ # rbash
หมายเหตุ: หาก rbash เริ่มต้นสำเร็จ จะคืนค่า 0
การทดสอบข้อจำกัดบางอย่าง
ที่นี่ เรารันคำสั่งบางอย่างบน rbash shell เพื่อตรวจสอบข้อจำกัด
# cd rbash: cd: restricted
# pwd > a.txt bash: a.txt: restricted: cannot redirect output
ข้อดีของ Restricted Shell
- Restricted shell ใช้ร่วมกับ chroot jail เพื่อจำกัดการเข้าถึงระบบโดยรวมอีกชั้น
ข้อเสียของ Restricted Shell
- ไม่เพียงพอที่จะอนุญาตให้รันซอฟต์แวร์ที่ไม่น่าเชื่อถือได้ทั้งหมด
- เมื่อคำสั่งที่พบว่าเป็น shell script ถูกรัน rbash จะปิดข้อจำกัดในเชลล์ที่สร้างขึ้นเพื่อรันสคริปต์นั้น
- เมื่อผู้ใช้รัน bash หรือ dash จาก rbash พวกเขาจะได้ unrestricted shells
- rbash ควรใช้เฉพาะภายใน chroot เว้นแต่คุณจะรู้ว่ากำลังทำอะไร
- มีหลายวิธีในการหลุดพ้น restricted bash shell ที่คาดเดาไม่ออกล่วงหน้า
สรุป
rbash เป็นเครื่องมือยอดเยี่ยมสำหรับทำงานในสภาพแวดล้อมที่จำกัด และทำงานได้อย่างเยี่ยม คุณต้องลองใช้และจะไม่ผิดหวัง
ขอจบเพียงเท่านี้ ผมจะกลับมาอีกเร็วๆ นี้กับหัวข้อที่น่าสนใจและมีความรู้อีกครั้ง อย่าลืมให้ความคิดเห็นที่มีค่ากับเราในส่วนความคิดเห็น