บิตการอนุญาตไม่ได้ถูกบังคับใช้กับการแบ่งปันแซมบ้า


12

ฉันมีปัญหาที่บิตการอนุญาตไม่ได้ถูกบังคับใช้ในการแบ่งปันแซมบ้าโดยใช้ไคลเอนต์ 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

ใน smb.conf ของคุณคืออะไร
Grizly

ฉันใส่เนื้อหาของ smb.conf เข้ามาแล้วฉันไม่แน่ใจว่าต้องการโหมดที่ชัดเจนและมาส์กบิตหรือไม่
Jonathon Watney

@ Jonathon สิ่งที่คุณคิดtouchว่าเป็นระบบ * nix ... เป็นระบบที่คุณสร้างไฟล์บน windows หรือไม่? หรือคุณกำลังสร้างไฟล์จากระบบ windows? หรือนี่คือ * nix to * nix ผ่าน samba (ในกรณีนี้ทำไม samba และไม่ใช่ nfs)
xenoterracide

@xenoterracide ฉันสัมผัสไฟล์ที่ใช้ร่วมกันโดยใช้ไคลเอนต์ Linux; ฉันจะ * ระวังจะ * ระวังในกรณีนี้ มีการผสมผสานระหว่างเครื่อง Windows, Mac และ Linux ที่เชื่อมต่อกับบริการแซมบ้านี้
Jonathon Watney

คุณแน่ใจหรือว่ามาสก์ของคุณดี? สร้างหน้ากาก, หน้ากากความปลอดภัย, หน้ากากไดเรกทอรี เอกสารไม่ชัดเจนเกี่ยวกับสภาพอากาศที่ '0' ด้วยตนเองนั้นถูกต้องสำหรับมาสก์ นอกเหนือจากนั้น ... มันช่างแปลกจริงๆ
เกบ

คำตอบ:


2

การอนุญาต samba นั้นใช้ได้กับไคลเอ็นต์เครือข่าย SMB (เช่น Windows) เท่านั้น หากคุณต้องการบังคับใช้สิ่งนี้บนเซิร์ฟเวอร์ (และไคลเอนต์ NFS ใด ๆ ) คุณต้องตั้งค่าบิตเหนียวในไดเรกทอรีทั้งหมด

ก่อนแก้ไขไฟล์ที่มี:

chown -R archive /home/archive 
chgrp -R archive /home/archive 
find /home/archive -type d -exec chmod 0775 {} \;
find /home/archive -type f -exec chmod 0664 {} \;

จากนั้นบังคับใช้สิ่งนี้กับกลุ่มเหนียวเล็กน้อย

find /home/archive -type d -exec chmod g+s {} \;

สิ่งนี้ไม่สามารถแก้ไขได้ แต่แก้ปัญหาได้ 99% ของปัญหาประเภทนี้

ขอแสดงความนับถือ DaveF

ผลลัพธ์บนกล่อง Solaris ของฉัน:

davef@dalek[10]$ cd /proj/ftptmp
davef@dalek[11]$ ls -ld .
drwxrwsr-x  60 root     ftpusers     377 Oct  5 09:31 ./
davef@dalek[12]$
davef@dalek[12]$ ls -l foo.txt
foo.txt: No such file or directory
davef@dalek[13]$ touch foo.txt
davef@dalek[14]$ ls -l foo.txt
-rw-rw-r--   1 davef    ftpusers       0 Oct 15 11:49 foo.txt
davef@dalek[15]$ touch foo.txt
davef@dalek[16]$ ls -l foo.txt
-rw-rw-r--   1 davef    ftpusers       0 Oct 15 11:49 foo.txt
davef@dalek[17]$
davef@dalek[17]$ umask
2
davef@dalek[18]$

ขอบคุณ ในที่สุดก็มีโอกาสลองทำ แต่น่าเสียดายที่ปัญหายังคงอยู่
Jonathon Watney

ฉันสงสัยว่ามันอาจเป็น umask ของคุณหรือไม่
David Allan Finch

umask ของฉันคือ 0022 ความคิดเห็นอื่น ๆ ? :)
Jonathon Watney

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