Ubuntu: โหมดการเข้าถึงเริ่มต้น (สิทธิ์) สำหรับผู้ใช้ที่บ้าน (/ home / ผู้ใช้)


15

โหมดการเข้าใช้เริ่มต้นคืออะไร (เช่น 0755) สำหรับผู้ใช้งานที่บ้านใน Ubuntu (เช่นอะไรที่ส่งออกls -ld /home/*) ในลินุกซ์สำคัญอื่น ๆ (Debian, RedHat, Gentoo, Arch)?

ฉันจะเปลี่ยนค่าเริ่มต้นนี้ได้อย่างไร

PS: ขออภัย แต่ตอนนี้ฉันหาอูบุนตูไม่ได้แล้วทดสอบด้วยตัวเอง


ฉันไม่ได้ถาม umask แต่เกี่ยวกับskelและhome-dirs
osgx

โปรดอย่าเพิ่มข้อมูลใหม่ในความคิดเห็น แต่รวมไว้ในคำถามเดิม
bbaja42

มันไม่ใช่ข้อมูลใหม่มันเป็นความคิดเห็นเกี่ยวกับการทำความเข้าใจคำถามของฉันผิด
osgx

คำตอบ:


15

เมื่อสร้างผู้ใช้ที่ใช้useradd --create-home usernameไดเรกทอรี Skeleton (ปกติ/etc/skel) จะถูกคัดลอกรวมถึงการอนุญาต

ไดเรกทอรีบ้าน ( /home/username) อยู่ภายใต้การตั้งค่าในUMASK โดยค่าเริ่มต้น/etc/login.defsถูกตั้งค่าไว้022ดังนั้นการอนุญาตสำหรับสิทธิ์/home/usernameจะกลายเป็น 755

ข้อความที่ตัดตอนมาที่เกี่ยวข้องจากหน้าคู่มือ Ubuntu ของuseradd :

ตัวแปรการกำหนดค่าต่อไปนี้ใน /etc/login.defs เปลี่ยนลักษณะการทำงานของเครื่องมือนี้:
[.. ]
UMASK (number)

มาสก์การสร้างโหมดไฟล์จะเริ่มต้นเป็นค่านี้ หากไม่ได้ระบุมาสก์จะเริ่มต้นเป็น 022

useradd และ newusers ใช้ mask นี้เพื่อตั้งค่าโหมดของโฮมไดเร็กทอรีที่พวกเขาสร้าง


แล้ว redhat / debian ล่ะ?
osgx

AFAIK เป็นสิ่งมาตรฐานuseraddหากเป็น Ubuntu เฉพาะควรได้รับการกล่าวถึงในหน้าคู่มือ หน้าคู่มือ redhat: linux.die.net/man/8/useradd
Lekensteyn

10

สิทธิ์เริ่มต้นของบ้านผู้ใช้สามารถควบคุมได้ในสถานที่ดังต่อไปนี้

  • ตัวเลือกไดเรกทอรีโครงกระดูก ( -k, --skel SKEL_DIR) useraddของ
  • SKELค่าใน/etc/adduser.confที่กำหนดไดเรกทอรีกระดูกเริ่มต้น
  • DIR_MODEค่าใน/etc/adduser.confที่กำหนดสิทธิ์เริ่มต้น

โฮมไดเรกทอรีของผู้ใช้ใหม่ถูกสร้างขึ้นโดยใช้/etc/skelเป็นแม่แบบ (พฤติกรรมเริ่มต้น)
ได้รับอนุญาตเริ่มต้นของมี/etc/skel การใช้ไดเรกทอรี Skeleton ที่กำหนดเองพร้อมสิทธิ์ที่ถูกต้องจะช่วยให้โฮมไดเรกทอรีใหม่มีสิทธิ์ที่ต้องการ0755 (drwxr-xr-x)

ค่าเริ่มต้นสำหรับการที่กำหนดไว้ในadduser ค่าเริ่มต้นในการมี การเปลี่ยนเป็นสิทธิ์ที่ถูกต้อง ( หรือคล้ายกัน) จะอนุญาตให้ไดเรกทอรีบ้านใหม่มีสิทธิ์ที่ต้องการ ตามเอกสารของ Ubuntu นี่เป็นตัวเลือกที่ดีที่สุด/etc/adduser.conf
DIR_MODE/etc/adduser.conf0755
DIR_MODEDIR_MODE=0750

โฮมไดเรกทอรีผู้ใช้ที่มีอยู่แล้วจะต้องเปลี่ยนด้วยตนเอง

sudo chmod 0750 /home/username

ดังนั้นจึงเป็นความคิดที่ดีที่จะเปลี่ยน/etc/adduser.confหลังจากการติดตั้งเพื่อหลีกเลี่ยงผู้ใช้ใหม่ที่ได้รับการ0755 (drwxr-xr-x)อนุญาตประเภท
ผู้ใช้รายแรกที่สร้างขึ้นระหว่างการติดตั้งจะยังคง0755เป็นโฮมไดเรกทอรีซึ่งควรเปลี่ยนด้วยตนเอง

UMASKin /etc/login.defsคือการตั้งค่าทั่วไปสำหรับไฟล์ / ไดเรกทอรี / ฯลฯ ที่สร้างโดยผู้ใช้ (ไม่เพียง แต่ในโฮมไดเร็กตอรี่ของพวกเขา) และอาจได้รับการเปลี่ยนแปลงขึ้นอยู่กับในUSERGROUPS_ENAB/etc/login.defs

คำอธิบายอย่างเป็นทางการ: การจัดการผู้ใช้ - ความปลอดภัยของโปรไฟล์ผู้ใช้
ตรวจสอบส่วนอื่น ๆ ของการจัดการผู้ใช้เช่นกัน

ที่เกี่ยวข้อง: /ubuntu/46501/why-can-other-users-see-the-files-in-my-home-folder


3
คำตอบสำหรับลิงก์อย่างเดียวนั้นไม่น่าจะเป็นไปได้เนื่องจากการเชื่อมโยงที่เกิดขึ้นในอนาคตอาจเป็นไปได้ โปรดระบุข้อมูลที่เกี่ยวข้องในคำตอบของคุณ
Ƭᴇcʜιᴇ007

@ techie007 ฉันรู้ จะใช้ความคิดเห็นถ้าฉันมีตัวแทนเพียงพอ
Sithsu

1
@ techie007 เพิ่มเนื้อหาเพิ่มเติมให้กับคำตอบ
Sithsu

การตั้งค่าDIR_MODEใน/etc/adduser.confแน่นอนวิธีที่จะไป
user1338062

2

หมายเหตุ: อย่าเปลี่ยนumaskค่าใน/etc/login.defsถ้าคุณต้องการที่จะเปลี่ยนสิทธิ์ไดเรกทอรีบ้านเท่านั้น สาเหตุการเปลี่ยน UMASK จะส่งผลกระทบต่อทุกสิ่ง

ฉันเคยทำเช่นเดียวกันและเมื่อฉันติดตั้งแพคเกจระบบกว้าง ๆ โดยใช้ pip ผู้ใช้รายอื่นไม่สามารถเข้าถึงได้และถูกปฏิเสธการอนุญาตอย่างต่อเนื่อง ตั้งแต่UMASKเริ่มต้นส่งผลกระทบต่อสิทธิ์ของไดเรกทอรีแพคเกจทั้งหมดที่สร้างขึ้นหลังจากมีการใช้การเปลี่ยนแปลง

วิธีที่ถูกต้องคือการปรับเปลี่ยนDIR_MODEใน/etc/adduser.conf เนื่องจาก/etc/adduser.confถูกใช้ใน linux distros ส่วนใหญ่ดังนั้นโซลูชันนี้ใช้งานได้ดีที่สุด


1

สิทธิ์เริ่มต้นสำหรับ / home ใน ubuntu คือ rwxr-xr-x หรือ 755 สำหรับ / home / user ก็ยังเป็น rwxr-xr-x หรือ 755 อย่างน้อยก็อยู่ในการติดตั้งของฉัน

หากต้องการเปลี่ยนการอนุญาตไฟล์ของโฮมไดเรกทอรีให้เปิดเทอร์มินัลแล้วเรียกใช้ดังนี้:

chmod 700 /home/user

อย่าลืมเปลี่ยน 700 เป็นค่า chmod ที่คุณต้องการตั้งค่า

หากคุณไม่ได้เป็นเจ้าของไดเรกทอรีคุณต้องมีสิทธิ์ใช้งานรูทเพื่อเปลี่ยนสิทธิ์ Ubuntu ใช้sudoสำหรับ:

sudo chmod 700 /home/user

เมื่อคุณเรียกใช้คำสั่งนี้จะถามรหัสผ่านผู้ดูแลระบบ


2
ส่วนที่สองของคุณไม่ถูกต้องไดเรกทอรีบ้านเป็นของคุณเองดังนั้นคุณไม่จำเป็นต้องมี superuser เลย
Lekensteyn

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

ฉันแก้ไขโพสต์ของคุณเพื่อให้ถูกต้องมากขึ้น (หวังว่าคุณจะชอบมัน) โพสต์ดั้งเดิมของคุณไม่ได้รวมที่: superuser.com/revisions/303995/1
Lekensteyn

0

ตรวจสอบหน้าumaskคน

การตั้งค่า umask เริ่มต้นคือ

0022

อนุญาตgroupและothersอ่านและดำเนินการเข้าถึง


ไม่คำถามของฉันไม่เกี่ยวกับ umask แต่เกี่ยวกับการอนุญาตเริ่มต้นของโฟลเดอร์ของผู้ใช้เอง (หลังจากaสร้างผู้ใช้แล้วสิ่งที่จะส่งออกls -ld /home/a)
osgx
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.