เหตุใดผู้ใช้รายอื่นจึงเห็นไฟล์ในโฟลเดอร์บ้านของฉัน


36

ฉันเพิ่งเพิ่ม "ผู้ใช้เดสก์ท็อป" ตัวใหม่ที่ด้อยโอกาสและฉันรู้สึกประหลาดใจที่พบว่าสามารถดูไฟล์ในโฟลเดอร์บ้านของฉันได้

เหตุผลในการตั้งค่าการอนุญาตหละหลวมดังกล่าวคืออะไร?


ที่เกี่ยวข้อง: unix.stackexchange.com/a/315197/85039
Sergiy Kolodyazhnyy

คำตอบ:


32

มีPublicโฟลเดอร์อยู่ในไดเรกทอรี Home ของคุณ ( /home/user) เพื่อแชร์ไฟล์กับผู้ใช้รายอื่น หากผู้ใช้รายอื่นต้องการเข้าถึงPublicโฟลเดอร์นี้บิตการดำเนินการสำหรับโลกควรถูกตั้งค่าไว้ในไดเรกทอรี Home

หากคุณไม่จำเป็นต้องอนุญาตให้ผู้อื่นเข้าถึงโฟลเดอร์หลักของคุณ (คนอื่นหรือผู้ใช้เช่นwww-dataเว็บเซิร์ฟเวอร์) คุณจะสบายดีchmod o-rwx "$HOME"(ลบการอ่าน / เขียน / ดำเนินการจาก "อื่น ๆ " ซึ่งเทียบเท่ากับchmod 750 "$HOME"เนื่องจากสิทธิ์เริ่มต้นคือ 750 ) มิฉะนั้นคุณควรเปลี่ยนการumaskตั้งค่าด้วยเพื่อป้องกันไฟล์ที่เพิ่งสร้างขึ้นใหม่จากการขออนุญาตอ่านทั่วโลกโดยปริยาย

สำหรับการกำหนดค่าทั้งระบบให้แก้ไข/etc/profile; ~/.profileการตั้งค่าต่อผู้ใช้สามารถกำหนดค่าใน ฉันชอบนโยบายเดียวกันสำหรับผู้ใช้ทั้งหมดดังนั้นฉันจะแก้ไข/etc/profileไฟล์และต่อท้ายบรรทัด:

umask 027

คุณต้องลงชื่อเข้าใช้อีกครั้งเพื่อใช้การเปลี่ยนแปลงเหล่านี้ยกเว้นว่าคุณอยู่ในเชลล์ ในกรณีนั้นคุณสามารถเรียกใช้umask 027ในเชลล์

ตอนนี้เพื่อแก้ไขสิทธิ์ที่มีอยู่คุณต้องลบสิทธิ์อ่าน / เขียน / ดำเนินการจากอื่น ๆ :

chmod -R o-rwx ~

ตอนนี้ถ้าคุณตัดสินใจที่จะแชร์~/Publicโฟลเดอร์ให้กับทุกคนให้รันคำสั่งถัดไป:

  • chmod o+x ~- อนุญาตให้ทุกคนลงมาในไดเรกทอรี ( x) แต่ไม่ได้รับรายชื่อไดเรกทอรี ( rไม่ควรเพิ่ม)
  • find ~/Public -type f -exec chmod o+r {} \; - อนุญาตให้ทุกคนอ่านไฟล์ใน ~/Public
  • find ~/Public -type d -exec chmod o+rx {} \; - อนุญาตให้ทุกคนลงมาในไดเรกทอรีและรายการเนื้อหาของพวกเขา

หากคุณใช้ coreutils ของ GNU (เช่นใน Ubuntu ไม่ใช่ในระบบฝังตัวที่มีเท่านั้นbusybox) จากนั้นคำสั่งสองคำสั่งก่อนหน้านี้ที่ใช้findและchmodสามารถถูกแทนที่ด้วยคำสั่งเดียวนี้ที่ทำให้โฟลเดอร์และไฟล์อ่านซ้ำได้ บิตสำหรับไดเรกทอรีเท่านั้น ):

chmod -R o+rX ~/Public

13

ตามที่เจ้าหน้าที่ของ Ubuntuforms.org บอกไว้คือการทำให้การแชร์ไฟล์ระหว่างผู้ใช้ใหม่ง่ายขึ้น

คุณสามารถเปลี่ยนการอนุญาตเป็น 700 หรือ 750 หากคุณไม่ต้องการให้ผู้อื่นสามารถอ่านและอ่านไฟล์ได้

คำสั่งคือ:

chmod 750 $HOME

หมายเหตุ: ค่าเริ่มต้นของ Ubuntu คือ 755


2
แน่นอนผู้ใช้อื่น ๆไม่ควรจะ sudoers
Pablo A

7

ตามที่มาร์ค Shuttleworth ,

"ผู้ใช้ส่วนใหญ่ของระบบ Ubuntu มีการใช้งานเฉพาะเครื่อง (แล็ปท็อปส่วนตัว) หรือแบ่งปันกับเพื่อนและญาติเราคิดว่าผู้ที่ใช้เครื่องร่วมนั้นเชื่อถือได้หรืออยู่ในตำแหน่งที่แฮ็คเครื่อง (บูต) จาก USB!) เล็กน้อยดังนั้นไม่มีประโยชน์เลย "

... จากการลบการอนุญาตเหล่านั้น


12
ฉันคิดว่าการทำงานแบบเดียวกันในรุ่นเซิร์ฟเวอร์เป็นช่องโหว่ด้านความปลอดภัย
warvariuc

4
นั่นคือคำอธิบายที่บ้าคลั่ง นอกเหนือจากบัญชีบุคคลมีบัญชีทางเทคนิคที่ผู้คนสามารถใช้เพื่อแยกแอปพลิเคชันได้ นอกจากนี้ยังมีคำแนะนำมากมายเกี่ยวกับวิธีการตั้งค่าเซิร์ฟเวอร์ ftp ภายในเครื่องที่ใช้บัญชีร่วมกันบนเครื่องเป็นหลัก
Barafu Albino

4
ฉันรู้ว่านี่เป็นเธรดเก่า แต่ให้ถือว่านี่เป็นการตัดสินใจที่โง่ ลองนึกภาพหนึ่งในผู้ใช้ที่เรียกใช้แอป / สคริปต์ (สามารถโดยไม่ได้ตั้งใจ) ซึ่งสามารถอ่านและส่งไฟล์จากโปรไฟล์อื่น ๆ
mauron85

5

คุณสามารถอ่านส่วนการจัดการผู้ใช้ของคู่มือเซิร์ฟเวอร์อูบุนตูซึ่งครอบคลุมรายละเอียดที่จำเป็น โปรไฟล์ผู้ใช้การรักษาความปลอดภัยวรรคอาจจะตอบคำถามของคุณ - อย่างเป็นทางการ


4
ฉันขอขอบคุณแหล่งที่มาอย่างเป็นทางการ น่าเศร้าที่ดูเหมือนว่าจะให้เหตุผลใด ๆ ก็ตาม
ændrük

1

ฉันคิดว่าคำตอบของLekensteynสามารถปรับปรุงได้โดยแทนที่คำสั่งค้นหาสองคำล่าสุดด้วย chmod โดยใช้ตัวเลือก -X (หมายเหตุตัวพิมพ์ใหญ่ X) คำสั่ง find สองคำสั่งสามารถถูกแทนที่ด้วย

chmod -R o+rX ~/Public

สิ่งนี้แตกต่างอย่างเหมาะสมระหว่างไฟล์และไดเรกทอรี แต่มีผลเพิ่มเติมในการอนุญาตให้ผู้อื่นเรียกใช้ไฟล์ที่ปฏิบัติการได้


0

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

วิธีที่ง่ายที่สุดในการดำเนินการคือระหว่างกระบวนการติดตั้งมีช่องทำเครื่องหมายระบุ "เข้ารหัสไดเรกทอรีบ้านของคุณ" และคุณต้องเลือก

เนื่องจากไม่น่าเป็นไปได้ที่คุณจะต้องการติดตั้งใหม่เพียงแค่นั้น (และเนื่องจากยังคงมีความเสี่ยงทั้งหมดที่เกี่ยวข้องกับการทำโดยไม่ต้องติดตั้งใหม่) คุณสามารถทำสิ่งต่อไปนี้:

sudo apt-get install encryptfs-utils
encryptfs-migrate-home

-1

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

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

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