ฉันมีปัญหาที่บิตการอนุญาตไม่ได้ถูกบังคับใช้ในการแบ่งปันแซมบ้าโดยใช้ไคลเอนต์ Linux ฉันได้ตั้งค่าแซมบ้าบนเซิร์ฟเวอร์เพื่อบังคับให้ผู้ใช้กลุ่มและบิตสิทธิ์บางอย่างทำงานตามที่คาดไว้จนกว่าฉันจะแตะไฟล์หรือกลายเป็นเป้าหมายของการเปลี่ยนเส้นทาง IO
นี่คือสิ่งที่เกิดขึ้น:
user@linuxbox:~-->ls -l ~/archive/foo.txt
ls: cannot access /home/user/archive/foo.txt: No such file or directory
user@linuxbox:~-->touch ~/archive/foo.txt
user@linuxbox:~-->ls -l ~/archive/foo.txt
-rw-rw-r-- 1 archive archive 0 2010-09-13 20:29 /home/user/archive/foo.txt
user@linuxbox:~-->touch ~/archive/foo.txt
user@linuxbox:~-->ls -l ~/archive/foo.txt
-rwxrwxrwx 1 archive archive 0 2010-09-13 20:30 /home/user/archive/foo.txt
สังเกตว่าเมื่อฉันแตะไฟล์ที่มีอยู่บิตอนุญาตจะเป็น 0777 พวกเขาควรจะเป็น 0664 เหมือนตอนที่มันถูกสร้างขึ้นครั้งแรก ฉันจะบังคับใช้ 0664 ในไฟล์ที่มีอยู่ได้อย่างไร
ฉันมีรุ่น 3.0.24 บนเซิร์ฟเวอร์และรุ่น 3.4.7 บนไคลเอนต์ นี่คือ smb.conf ของฉัน:
[global]
interfaces = egiga0
unix charset = UTF8
workgroup = workgroup
netbios name = foo
server string = Foo
security = USER
map to guest = bad user
host msdfs = no
encrypt passwords = yes
[archive]
comment = File Archive
path = /home/archive
force user = archive
force group = archive
read only = yes
write list = @archive
guest ok = yes
create mask = 0
force create mode = 0664
security mask = 0
force security mode = 0664
directory mask = 0
force directory mode = 0775
directory security mask = 0
force directory security mode = 0775
touch
ว่าเป็นระบบ * nix ... เป็นระบบที่คุณสร้างไฟล์บน windows หรือไม่? หรือคุณกำลังสร้างไฟล์จากระบบ windows? หรือนี่คือ * nix to * nix ผ่าน samba (ในกรณีนี้ทำไม samba และไม่ใช่ nfs)