ฉันไม่สามารถรับแซมบ้าเพื่อตั้งค่าการอนุญาตที่เหมาะสมในไดเรกทอรีที่สร้างขึ้น


17

ฉันมีเซิร์ฟเวอร์ ubuntu ที่แชร์บางโฟลเดอร์โดยใช้ samba เมื่อไคลเอนต์สร้างโฟลเดอร์หรือไฟล์ใหม่การอนุญาตจะไม่ถูกตั้งค่าตามการตั้งค่าใน smb.conf

การตั้งค่าปัจจุบันของฉันสำหรับการแชร์เฉพาะ:

[share]
    path = /mnt/share
    browsable = yes
    guest ok = no
    writable = yes
    read only = no
    create mask = 0774
    directory mask = 0774
    write list = netuser

เมื่อไคลเอนต์ samba (กล่อง windows 7) ใช้บัญชี 'netuser' เพื่อสร้างไฟล์หรือไดเรกทอรีการอนุญาตกลายเป็น

drwxr-sr-- 2 netuser sambashare      4096 2012-01-22 21:14 New folder
-rwxrw-r-- 1 netuser sambashare         0 2012-01-22 21:07 New Text Document.txt

ไดเร็กทอรีพาเรนต์มีแฟล็ก id group set ดังนั้นเจ้าของกลุ่ม sambashare แนวคิดก็คือทั้งผู้ใช้ samba และผู้ใช้เซิร์ฟเวอร์เป็นของกลุ่ม sambashare และสามารถแก้ไขลบและสร้างไฟล์และไดเรกทอรีได้ อย่างไรก็ตามเนื่องจากโฟลเดอร์ที่สร้างขึ้นไม่มีการตั้งค่าสถานะการเขียนสำหรับกลุ่มผู้ใช้เซิร์ฟเวอร์ไม่สามารถสร้างไฟล์หรือโฟลเดอร์ใหม่ในโฟลเดอร์เหล่านั้นโดยไม่ต้อง sudo

ฉันได้ทดสอบการเพิ่มและลบหน้ากากไดเรกทอรีโหมดบังคับโหมดความปลอดภัยไดเรกทอรีและโหมดความปลอดภัยไดเรกทอรีบังคับ แต่พฤติกรรมยังคงอยู่ ไฟล์และโฟลเดอร์ที่สร้างขึ้นใหม่ไม่ได้รับอนุญาต 774 แต่ 764 และ 754 ตามลำดับ

ฉันพลาดอะไรไป ทำไมแซมบ้าไม่ตั้งค่าการอนุญาตที่ถูกต้อง?

คำตอบ:


19

ฉันคิดว่าคุณต้องใช้พารามิเตอร์ต่อไปนี้:

# I changes the permissions to rw-rw-r--
# You should be able to change them to 775 if you need the files to
# be executable
create mask = 664
force create mode = 664
security mask = 664
force security mode = 664

# I set the SGID flag here as I thought this is what you wanted
# You could change to 0775
directory mask = 2775
force directory mode = 2775
directory security mask = 2775
force directory security mode = 2775

ฉันกำลังมองหาคำอธิบายที่ดีเกี่ยวกับวิธีการตั้งค่าเหล่านี้ทำงาน แต่ไม่สามารถหาอะไรที่ดีกว่าแล้วคน smb.conf

คุณจะต้องเลื่อนลงเล็กน้อยสำหรับตัวเลือกเหล่านั้น

โดยทั่วไปในระยะสั้นสิทธิ์ของ windows จะไม่เหมือนกับ unix (linux) และมันค่อนข้างแปลกที่การอนุญาตของ samba จะแมปสิทธิ์อย่างไร


1
ใช่ดูเหมือนว่าจะเป็น manpage เดียวกันกับsamba.org/samba/docs/man/manpages-3/smb.conf.5.htmlซึ่งฉันดูไปแล้วปัญหาก็คือมันดูเหมือนจะไม่สำคัญว่าเลขฐานแปด ค่าที่ฉันตั้งไว้ฉันยังคงได้รับการอนุญาตเหมือนกันกับไฟล์หรือโฟลเดอร์ที่สร้างขึ้น
Zaz

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

1
มันบอกแล้วว่า .. แต่จากการตรวจสอบและทดสอบอย่างใกล้ชิดการเพิ่ม 2 ไปยังมาสก์ของไดเรกทอรีนั้นสามารถแก้ไขปัญหาได้ ขอบคุณมาก. : D
Zaz

เยี่ยมมากขอบคุณที่ทำเครื่องหมายว่านี่เป็นคำตอบที่ได้รับการยอมรับมันช่วยคนอื่นในปัญหาที่คล้ายกัน
Panther

การกำหนดค่า Samba ซับซ้อนเกินไปและยากที่จะเข้าใจจริงๆ ตัวอย่างเช่นอะไรคือความแตกต่างเชิงตรรกะระหว่างแรงที่สร้างและเพิ่งสร้าง ... ไม่มีเหตุผล คำใบ้ของคุณคือตัวช่วยชีวิต - ขอบคุณ!
Matthias Hryniszak

8

หลังจากการทดลองและข้อผิดพลาดเป็นจำนวนมากนี่เป็นรหัสที่ถูกต้องในการแชร์แซมบ้าโดยใช้ SGID และกลุ่มยูนิกซ์ หากผู้ใช้เชื่อมต่อโดยไม่ระบุชื่อเขาจะได้รับ r / o หากเขาเข้าสู่ระบบและเป็นสมาชิกของกลุ่มที่ได้รับมอบหมายเขาจะได้รับ r / w

ฉันมีกลุ่มชื่อ 'admin' ตั้งเป็นกลุ่มหลักสำหรับผู้ใช้ที่มีสิทธิ์ในการเขียนทุกคนได้รับสิทธิ์ในการอ่านเท่านั้น

ฉันบังคับให้ผู้ใช้ไม่มีใครเลยคนที่ทำงานต่างกันในไฟล์เดียวกันจะไม่รบกวนซึ่งกันและกัน

ฉันตั้ง chmod 2755 ในไดเรกทอรีที่ใช้ร่วมกันดังนั้นจึงสืบทอดไดเรกทอรีที่สร้างขึ้นด้วยกลุ่มผู้ดูแลระบบเดียวกัน

$ chmod -R 2755 /home/shares/test

ตรวจสอบว่าทั้งหมดดีหรือไม่:

$ stat /home/shares/test
Access: (2755/drwxr-sr-x)  Uid: (65534/  nobody)   Gid: ( 1001/   admin)

ส่วนที่เกี่ยวข้องของ /etc/samba/smb.conf:

[test]
        comment = test
        path = /home/shares/test
        force user = nobody
        read only = No
        create mask = 0664
        force create mode = 0664
        directory mask = 02775
        force directory mode = 02775

โพสต์นี้ทำให้ฉันอยู่ในเส้นทางที่ถูกต้อง แต่ testparm เปิดเผย 4 คำสั่งที่ไม่ถูกต้องดังนั้นฉันจึงแบ่งปันการกำหนดค่าคงที่ที่นี่ ใน samba คำสั่งน้อยกว่าที่คุณระบุจะทำงานได้ดีขึ้น


6

ฉันมีปัญหาเดียวกัน แต่ทุกอย่างเช่นคำสั่งมาสก์ไม่ทำงานสำหรับฉัน (Samba 4.3.11):

 create mask = 0664
 force create mode = 0664
 directory mask = 02775
 force directory mode = 02775

ตัวเลือกเดียวที่ทำงานอยู่ภายใต้ [ส่วนกลาง] หรือส่วนแบ่ง:

 inherit permissions = yes

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


ฉันใช้ Samba เวอร์ชั่น 4.7.6-Ubuntu และนี่ก็ใช้ได้กับฉันเช่นกัน
Andi S.

คำตอบที่เป็นจริงสำหรับ4.8.11ในfreebsdเกินไป :)
กระวนกระวายใจ

3

มีปัญหาที่คล้ายกันมากเมื่อเชื่อมต่อจากอุปกรณ์ Unix / Linux / OSX / MacOS อื่น ๆ : การตั้งค่าทั้งหมดจะถูกละเว้นเว้นแต่คุณจะระบุ

[global]

unix extensions = no

และเชื่อมต่อกับแทนsmb://<serverhost>cifs://<serverhost>


0
 Here add this code to the sudo nano smb.conf
 and restart sudo service smbd restart  and access from another local PC/computer using connect with smb://<serverhost>  to create or edit files/folder   html is folder name 

 [html]
   comment = admin access
   path = /var/www/html
   browsable = yes
   guest ok = no
   writable = yes
   valid users = @admin
   create mask = 664
   force create mode = 664
   security mask = 664
   force security mode = 664
   directory mask = 2775
   force directory mode = 2775
   directory security mask = 2775
   force directory security mode = 2775
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.