ฉันจะป้องกันไม่ให้ผู้ใช้เข้าถึงสิ่งใดนอกจากโฮมไดเร็กตอรี่ของตัวเอง?


22

ฉันจะป้องกันไม่ให้ผู้ใช้เข้าถึงสิ่งใดนอกจากโฮมไดเร็กตอรี่ของตัวเอง?

ตัวอย่างเช่นฉันมีพาร์ทิชัน NTFS ติดตั้งอยู่ภายใต้/media/ntfsดังนั้นหากผู้ใช้เข้าสู่ระบบผ่าน SSH เขาสามารถเข้าถึงพาร์ทิชันนี้ ฉันจะปิดการใช้งานผู้ใช้ที่จะcdออกจากไดเรกทอรีบ้านของพวกเขาได้อย่างไร

คำตอบ:


22

ประเมินความต้องการของคุณก่อน ปัญหาที่คุณพยายามแก้ไขคืออะไร ทำไมคุณต้องการป้องกันผู้ใช้ออกจากไดเรกทอรีบ้านของพวกเขา มันไม่ได้เป็นมากกว่าที่คุณไม่ต้องการให้พวกเขาคุ้ยผ่านเฉพาะไดเรกทอรีอื่น ๆ - เช่นไดเรกทอรีบ้านของผู้อื่น?

เป็นการยากมากที่จะป้องกันไม่ให้ผู้ใช้ออกจากไดเรกทอรีภายในบ้าน ที่จริงแล้วมันก็ค่อนข้างโง่ด้วยเช่นกัน มันง่ายกว่ามากในการป้องกันไม่ให้ผู้ใช้เข้าสู่ไดเรกทอรีที่คุณไม่ต้องการให้พวกเขาเข้าไป

ออกก่อนใช่คุณสามารถให้ผู้ใช้ที่เรียกว่าเปลือก จำกัด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จะเขียนลงใน ดังนั้นหากคุณต้องการ จำกัด ผู้ใช้ในโฮมไดเร็กตอรี่ของคุณคุณจะต้องคัดลอกจำนวนมากไปไว้ในนั้น ในความเป็นจริงสวยมากระบบไฟล์ฐานทั้งหมด - /ซึ่งคุณได้ตั้งอยู่ที่


2
สิ่งนี้ไม่สมเหตุสมผลสำหรับฉันอาจมีสาเหตุหลายประการที่ทำให้คุณต้องการให้ผู้ใช้มีสิทธิ์เข้าถึง 1 โฟลเดอร์เท่านั้น ตัวอย่างหนึ่งอาจให้การเข้าถึงเพื่อประโยชน์ในการส่งไฟล์จากเซิร์ฟเวอร์หนึ่งไปยังอีกเซิร์ฟเวอร์หนึ่ง ฉันค่อนข้างคิดว่ามันค่อนข้างโง่ที่ผู้ใช้สามารถเรียกดูระบบเต็มรูปแบบแทน
Richard

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

7

ผมจำเป็นต้องมีเพื่อให้สามารถเข้าถึงผู้ใช้samบน/var/xyzเท่านั้นและรายชื่อบล็อกเนื้อหาของโฟลเดอร์อื่น ๆ ภายใน/var/

ฉันใช้ลำดับของคำสั่งต่อไปนี้:

setfacl -R -m user:sam:--- /var/

setfacl -m user:sam:rx /var/

setfacl -R -m user:sam:rwx /var/xyz/

เพื่อให้ผู้ใช้สามารถดูไดเรกทอรีระบุไว้ภายใต้แต่ไม่สามารถมองเห็นเนื้อหาภายใต้ไดเรกทอรีย่อยยกเว้น/var//var/xyz


2
ยินดีต้อนรับสู่ askubuntu! ฉันไม่เห็นสิ่งนี้เป็นคำตอบสำหรับคำถามที่ถามเกี่ยวกับไดเรกทอรีภายในบ้าน
Elder Geek

3
@ElderGeek OP ไม่สามารถใช้คำสั่งเดียวกันได้ แต่สำหรับโฮมไดเรกทอรีใช่ไหม
เซท

@Seth ใช่ แต่นั่นจะชัดเจนกับผู้ใช้โดยเฉลี่ยหรือไม่
Elder Geek

3
@Elder ใช่ฉันเชื่อว่ามันจะ ไม่สมบูรณ์แบบ แต่ยังคงมีคำตอบ
เซท

1

นอกเหนือจากการ จำกัด การเข้าถึงไดเรกทอรีอื่น ๆ โดยเฉพาะไดเรกทอรีบ้านของผู้ใช้อื่นฉันยังไม่ต้องการให้ผู้ใช้ll /homeและดูชื่อของผู้ใช้รายอื่นในระบบ

chmod 701 /homeเพื่อป้องกันการนี้เป็นระยะราก สิ่งนี้ทำให้/homeไดเรกทอรีตัวเอง "อ่าน / เขียน / ดำเนินการ" เพื่อรูทของหลักสูตร แต่เพียง "รัน" เพื่อทุกคน /homeยังคงสามารถเข้าถึงได้cdแต่ผู้ใช้ไม่สามารถอ่านเนื้อหา - โฟลเดอร์บ้านของผู้ใช้รายอื่นและชื่อผู้ใช้


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