การอนุญาต 755 ใน / home / <user> /


15

ฉันกำลังสงสัยว่าทำไมโดยค่าเริ่มต้นไดเรกทอรีของฉันมีสิทธิ์ที่จะตั้ง/home/<user>/ 755สิ่งนี้ทำให้ผู้ใช้รายอื่นสามารถเข้าสู่ไดเรกทอรีและอ่านไฟล์ในบ้านของฉัน มีเหตุผลที่ถูกต้องสำหรับสิ่งนี้หรือไม่?

ฉันสามารถตั้งค่าการอนุญาต700สำหรับบ้านและไดเรกทอรีย่อยทั้งหมดได้หรือไม่:

chmod -R o-xw /home/<user>/ 
chmod -R g-xw /home/<user>/

โดยไม่ทำลายอะไรเลย?

นอกจากนี้เป็นไปได้ไหมที่จะตั้งค่าการอนุญาตในบ้านของฉันเพื่อให้ไฟล์ใหม่ทั้งหมดที่สร้างขึ้นมี600และไดเรกทอรี700?


1
ในค่าเริ่มต้น RHEL / CentOS 5 คือ 700 แต่ใน Ubuntu 755
Rahul Patil

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

คำตอบ:


18

หากโฮมไดเร็กตอรี่ของคุณเป็นแบบส่วนตัว, ไม่มีใครสามารถเข้าถึงไฟล์ใด ๆ ของคุณได้ เพื่อให้สามารถเข้าถึงไฟล์กระบวนการจำเป็นต้องมีการดำเนินการอนุญาตไปยังไดเรกทอรีทั้งหมดในเส้นทางลงต้นไม้จากไดเรกทอรีราก ตัวอย่างเช่นการอนุญาตให้ผู้ใช้อื่นในการอ่าน/home/martin/public/readmeไดเรกทอรี/, /home, /home/martinและ/home/martin/publicทุกความต้องการที่จะมีสิทธิ์d??x??x??x(สามารถdrwxr-xr-xหรือdrwx--x--xหรือบางชุดอื่น ๆ ) และนอกจากนี้ไฟล์readmeจะต้องอ่านต่อสาธารณชน ( -r??r??r??)

เป็นเรื่องปกติที่จะมีโฮมไดเรกทอรีพร้อมโหมดdrwxr-xr-x(755) หรืออย่างน้อยdrwx--x--x(711) โหมด 711 (เรียกใช้การอนุญาตเท่านั้น) ในไดเรกทอรีอนุญาตให้ผู้อื่นเข้าถึงไฟล์ในไดเรกทอรีนั้นหากพวกเขารู้ชื่อ แต่ไม่สามารถแสดงรายการเนื้อหาของไดเรกทอรี ภายใต้โฮมไดเรกทอรีนั้นให้สร้างไดเรกทอรีย่อยสาธารณะและส่วนตัวตามต้องการ

หากคุณไม่เคยต้องการให้คนอื่นอ่านไฟล์ใด ๆ ของคุณคุณสามารถสร้างโฮมไดเร็กตอรี่ของคุณdrwx------(700) หากคุณทำเช่นนั้นคุณไม่จำเป็นต้องปกป้องไฟล์แยกต่างหาก สิ่งนี้จะไม่ทำลายสิ่งอื่นใดนอกจากความสามารถของคนอื่นในการอ่านไฟล์ของคุณ

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

คุณสามารถเปลี่ยนสิทธิ์เริ่มต้นสำหรับไฟล์ที่คุณสร้างขึ้นโดยการตั้งค่าumask.profileค่าในของคุณ umask เป็นส่วนเสริมของสิทธิ์สูงสุดของไฟล์ ค่าทั่วไปประกอบด้วย 022 (เขียนได้โดยเจ้าของเท่านั้นทุกคนสามารถอ่านและปฏิบัติได้) 077 (เจ้าของเท่านั้นเข้าถึงได้) และ 002 (เช่น 022 แต่ยังเขียนเป็นกลุ่มได้) เหล่านี้คือสิทธิ์สูงสุด: แอปพลิเคชันสามารถตั้งค่าสิทธิ์ที่ จำกัด มากขึ้นตัวอย่างเช่นไฟล์ส่วนใหญ่จะไม่สามารถใช้งานได้เนื่องจากแอปพลิเคชันที่สร้างขึ้นไม่ได้ตั้งค่าบิตสิทธิการใช้งานเมื่อสร้างไฟล์


~/public_htmlผมไม่ได้เรียกใช้เว็บเซิร์ฟเวอร์ในเครื่องของฉันดังนั้นฉันไม่จำเป็นต้องอนุญาตให้เข้าถึง มีโปรแกรมทั่วไปอื่น ๆ นอกเหนือจาก Apache ซึ่งสามารถเข้าถึงบ้านของฉันได้หรือไม่? สิ่งที่เกี่ยวกับpostfixยกตัวอย่างเช่น
Martin Vegter

1
@ MartinVegter จุดดี โปรแกรมอีเมลมักจะทำงานเป็นผู้ใช้ของคุณเมื่อพวกเขากำลังส่งจดหมาย แต่บางระบบจำเป็นต้อง.forwardอ่านโดยระบบอีเมลที่ทำงานในฐานะผู้ใช้ระบบ Postfix.forwardแต่จะดีกับเอกชน
Gilles 'หยุดความชั่วร้าย'

3

หากคุณตรวจสอบใน RHEL / CentOS 5.x ค่าเริ่มต้นการอนุญาตคือ 700 แต่ใน Ubuntu คือ 755

ตามที่เจ้าหน้าที่ของ Ubuntuforms.org บอกไว้คือการทำให้การแชร์ไฟล์ระหว่างผู้ใช้ใหม่ง่ายขึ้น คุณสามารถเปลี่ยนการอนุญาตเป็น 700 หรือ 750 หากคุณไม่ต้องการให้ผู้อื่นสามารถอ่านและอ่านไฟล์ได้

นอกจากนี้เป็นไปได้ไหมที่จะตั้งค่าการอนุญาตในบ้านของฉันเพื่อให้ไฟล์ใหม่ทั้งหมดที่สร้างขึ้นมี 600 และไดเรกทอรี 700

คุณสามารถตั้งค่าumask 0077สำหรับสิ่งนั้น

มันจะทำงานเช่น:

สิทธิ์เริ่มต้นสำหรับไดเรกทอรีคือ0777ดังนั้นเมื่อคุณตั้ง umask 0077แล้วไดเรกทอรีใหม่จะสร้างด้วยสิทธิ์(0777-0077) เช่น0700ตามที่คุณต้องการ


ไม่umaskนำไปใช้กับไฟล์เช่นกัน? ดูเหมือนว่าจะมีผลเฉพาะเมื่อฉันสร้างไดเรกทอรีใหม่
Martin Vegter

2
ใช่ ... คุณสามารถตรวจสอบเชลล์ปัจจุบันของคุณเพียงแค่ตั้งค่าumask 0077และสร้างไฟล์, dir และตรวจสอบสิทธิ์stat filename
Rahul Patil

3

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

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

~alice/bin/scriptX.pl mydata

ดังที่คนอื่น ๆ กล่าวไว้ในการเปลี่ยนแปลงคุณจะต้องตั้ง umask ตัวอย่างเช่นหากต้องการให้ไฟล์และโฟลเดอร์ใหม่ที่คุณอ่านได้เท่านั้นให้เพิ่มสิ่งนี้ใน~/.bashrc:

umask 0077

3
บิตเกี่ยวกับการใช้สคริปต์ Perl ของ Alice นั้นน่ากลัว คัดลอกสคริปต์ไปยังโฮมไดเร็กตอรี่ของคุณ, ตรวจสอบ, จากนั้นใช้เฉพาะสำเนาของคุณ
AlexWebr

6
@ AlexWebr ก่อนอื่นฉันจะอ่านก่อนอลิซที่สองในกรณีนี้คือคนที่นั่งถัดจากฉันที่เพิ่งเขียนสคริปต์สุดเจ๋ง เราสามารถสันนิษฐานได้ว่าฉันเชื่อใจพวกเขามากที่สุดเท่าที่ฉันต้องการนักพัฒนาที่มีงานที่ฉันจะติดตั้งและรันบนเครื่องของฉัน ยิ่งกว่าจริงมาก นอกจากนี้ยังเป็นห้องแล็บดังนั้นเรามักจะดาวน์โหลดจีโนมไม่กี่ GB และมันเป็นวิธีที่ง่ายในการให้พวกเขาเข้าถึงกัน
terdon

1

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

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

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