ประเมินความต้องการของคุณก่อน ปัญหาที่คุณพยายามแก้ไขคืออะไร ทำไมคุณต้องการป้องกันผู้ใช้ออกจากไดเรกทอรีบ้านของพวกเขา มันไม่ได้เป็นมากกว่าที่คุณไม่ต้องการให้พวกเขาคุ้ยผ่านเฉพาะไดเรกทอรีอื่น ๆ - เช่นไดเรกทอรีบ้านของผู้อื่น?
เป็นการยากมากที่จะป้องกันไม่ให้ผู้ใช้ออกจากไดเรกทอรีภายในบ้าน ที่จริงแล้วมันก็ค่อนข้างโง่ด้วยเช่นกัน มันง่ายกว่ามากในการป้องกันไม่ให้ผู้ใช้เข้าสู่ไดเรกทอรีที่คุณไม่ต้องการให้พวกเขาเข้าไป
ออกก่อนใช่คุณสามารถให้ผู้ใช้ที่เรียกว่าเปลือก จำกัดman rbash
ดู สิ่งนี้จะป้องกันไม่ให้พวกมันไปcd
ที่อื่น แต่จะอยู่ข้างในเปลือกเท่านั้น หากผู้ใช้เริ่มต้นvi
หรือnano
(หรือโปรแกรมอื่น ๆ ที่สามารถเปิดไฟล์) พวกเขาสามารถเปิดไฟล์ได้ทุกที่บนระบบ เป็นเรื่องของความเป็นจริงเป็นเปลือก จำกัด cat /etc/passwd
ไม่ได้ป้องกันเช่น
ขั้นตอนต่อไปคือคุกรูท ข้อมูลเพิ่มเติมเกี่ยวกับวิกิชุมชนและในคำถามนี้ แม้ว่าคุกรากจะล็อคผู้ใช้ภายในสวนที่มีกำแพงล้อมรอบ แต่ภายในพวกเขาไม่สามารถเข้าถึงอะไรได้นอกจากไฟล์และคำสั่งที่คุณตั้งใจใส่ไว้ แต่คุกใต้ดินนั้นมีจุดประสงค์เพื่อแยกซอฟต์แวร์ที่ไม่น่าเชื่อถือแทนผู้ใช้ โดยเฉพาะอย่างยิ่งพวกเขามีไว้สำหรับซอฟต์แวร์ที่จำเป็นต้องทำงานด้วยสิทธิ์สูง - ดังนั้นจึงเป็นคุกราก
ในทางกลับกันผู้ใช้มีความน่าเชื่อถือ : พวกเขาต้องรับรองความถูกต้องและเรียกใช้โดยไม่มีสิทธิ์ยกระดับ ดังนั้นสิทธิ์ในการใช้ไฟล์ก็เพียงพอที่จะป้องกันไม่ให้พวกเขาเปลี่ยนไฟล์ที่พวกเขาไม่ได้เป็นเจ้าของ chmod o-r FILE
เพื่อป้องกันผู้ใช้จากการอ่านเนื้อหาของไฟล์ที่ลบของโลกการอ่านกับ chmod o-rwx DIR
เพื่อให้ผู้ใช้ออกจากไดเรกทอรีทำให้โลกไม่สามารถเข้าถึงได้ด้วย
ความสามารถในการอ่านได้ทั่วโลกเป็นค่าเริ่มต้นด้วยเหตุผลที่ดี: ผู้ใช้ต้องการสิ่งที่อยู่ในระบบไฟล์เป็นส่วนใหญ่ อย่าล็อคผู้ใช้ในบ้านเพราะมีความลับอยู่ข้างนอก
เหตุใดการล็อกผู้ใช้ในโฮมไดเรกทอรีของพวกเขาจึงค่อนข้างโง่
ในการทำสิ่งที่มีประโยชน์ผู้ใช้จำเป็นต้องเข้าถึงคำสั่งและแอปพลิเคชัน เหล่านี้อยู่ในไดเรกทอรีเช่น/bin
และ/usr/bin
ดังนั้นถ้าคุณคัดลอกคำสั่งทั้งหมดที่พวกเขาต้องการจากที่นั่นไปยังไดเรกทอรีบ้านของพวกเขาผู้ใช้จะต้องเข้าถึงและ/bin
/usr/bin
แต่นั่นเป็นเพียงจุดเริ่มต้น การประยุกต์ใช้งานต้องห้องสมุดจาก/usr/lib
และ/lib
ซึ่งในการเข้าถึงการเปิดจำเป็นที่จะต้องใช้ทรัพยากรระบบที่อยู่ใน/dev
และแฟ้มการกำหนดค่าในและ/etc
/usr/share
นี่เป็นเพียงส่วนอ่านอย่างเดียว แอปพลิเคชันจะต้องการ/tmp
และบ่อยครั้งที่/var
จะเขียนลงใน ดังนั้นหากคุณต้องการ จำกัด ผู้ใช้ในโฮมไดเร็กตอรี่ของคุณคุณจะต้องคัดลอกจำนวนมากไปไว้ในนั้น ในความเป็นจริงสวยมากระบบไฟล์ฐานทั้งหมด - /
ซึ่งคุณได้ตั้งอยู่ที่