สิทธิ์ใดในไดเร็กทอรี / var / mail


4

ฉันประสบปัญหาการอนุญาตใน Postfix / Dovecot สองสามวันแล้ว การตั้งค่ากำลังใช้โดเมนเสมือนจริงและผู้ใช้ดังนั้นเส้นทางไปยังผู้ใช้homeคือ/var/mail/<domain>/<user>; และเส้นทางที่จะMailDirเป็น/var/mail/<domain>/<user>/MailDir

บันทึกเมลยังคงแสดงการอนุญาตที่ถูกปฏิเสธ :

Apr  3 05:44:16 debian-x2 postfix/virtual[5670]: D6DDD1780100: to=<jeff@deltoid.com>,
relay=virtual, delay=0.15, delays=0.1/0.01/0/0.04, dsn=4.2.0, status=deferred
(maildir delivery failed: create maildir file
/var/mail/deltoid.com/jeff/Maildir/tmp/1396518256.P5670.debian-x2: Permission denied)

สิทธิ์มีดังนี้:

# ls -l /var/mail/
total 96
drw-rws--- 4 vmail  vmail  4096 Apr  2 18:19 deltoid.com
-rw-rw---- 1 nobody mail  80586 Apr  2 07:45 nobody

# ls -l /var/mail/deltoid.com/
total 12
drw-rws--- 3 vmail vmail 4096 Apr  3 04:47 jeff
drw-rws--- 3 vmail vmail 4096 Apr  3 04:47 support
-rw-rws--- 1 vmail vmail  122 Apr  2 03:33 users

# ls -l /var/mail/deltoid.com/jeff/
total 4
drw-rws--- 2 vmail vmail 4096 Apr  3 04:47 Maildir

# ls -l /var/mail/deltoid.com/jeff/Maildir/
total 0

vmailเป็นทั้งผู้ใช้และกลุ่มและตั้งค่าเป็นid5,000:

# id -u vmail
5000

postfixและdovecotทั้งคู่อยู่ในvmailกลุ่ม:

# members vmail
vmail postfix dovecot

และ Postfix's main.conf:

# Mailbox location
virtual_mailbox_base = /var/mail
virtual_uid_maps = static:5000
virtual_gid_maps = static:5000

ฉันมีสคริปต์เล็กน้อยที่พยายามตั้งค่าสิทธิ์ที่เหมาะสม แต่มันผิดปกติ:

# Ensure permissions are set on directories
chown -R vmail:vmail /var/mail/*.com
chmod -R 0660 /var/mail/*.com
chmod -R g+rwxs /var/mail/*.com
# chown -R dovecot:dovecot /var/mail/*.com/users

ฉันได้รับchmod -R g+rwxsคำถามจาก SuperUser เกี่ยวกับการตั้งค่าการอนุญาตไดเรกทอรีและมีไดเรกทอรีย่อยและไฟล์ที่สืบทอดสิทธิ์เหล่านั้น (ตัวอย่างเช่นวิธีการตั้งค่าการอนุญาตไฟล์เพื่อให้ไฟล์ใหม่ได้รับการอนุญาตแบบเดียวกันหรือไม่ , การตั้งค่าการอนุญาตเริ่มต้นสำหรับไฟล์ ใน Linux?และ วิธีการอนุญาตให้ใช้ไฟล์ใหม่สืบทอดจากไดเรกทอรีแม่? )

สองคำถาม:

  1. เกิดอะไรขึ้นกับการอนุญาตในปัจจุบัน?

  2. สิทธิ์ที่ควรจะเป็นคืออะไร?


/var/mail/deltoid.com/jeff/Maildir/tmp/รายชื่อที่ได้รับอนุญาตของคุณจะหายไปหนึ่งที่สำคัญที่สุด,
grawity

ขอบคุณ grawity tmp/ไม่มี ฉันเพิ่มผลลัพธ์ไปยังคำสั่งด้านบน แต่ปัญหาดูเหมือนว่าจะมีสิทธิ์นำไปสู่ไดเรกทอรีและไม่tmpไดเรกทอรี มิฉะนั้นฉันจะได้รับE_NOENTข้อผิดพลาดแทนE_PERMข้อผิดพลาด
jww

คำตอบ:


2

สิทธิ์drw-rws---ในไดเรกทอรีไม่ถูกต้องเนื่องจากเจ้าของไดเรกทอรีไม่สามารถเข้าไปได้เนื่องจากไม่มีxบิต (= 1เมื่อใช้รูปแบบตัวเลข)

คุณสามารถทดสอบสิ่งนี้ได้ด้วยตัวเองโดยทำสิ่งนี้ในฐานะผู้ใช้ปกติ (ไม่ใช่รูท):

$ mkdir -m 2670 /tmp/testdir
$ ls -ld /tmp/testdir
drw-rws--- 2 vmail vmail 4096 Apr  3 23:16 /tmp/testdir
$ cd /tmp/testdir
bash: cd: /tmp/testdir: Permission denied

ฉันคิดว่าบรรทัดเหล่านี้ในสคริปต์ปัจจุบันของคุณ:

chmod -R 0660 /var/mail/*.com
chmod -R g+rwxs /var/mail/*.com

ควรแทน:

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