วิธีที่จะทำให้แซมบ้าแชร์เพื่อไม่ขอรหัสผ่าน


20

หมายเหตุ: ฉันได้อ่านหน้าเว็บต่าง ๆ ถึง 50 หน้าซึ่งอธิบายวิธีการตั้งค่าการแบ่งปันแซมบ้าแบบสาธารณะในช่วง2 ปีและไม่มีอะไรที่ฉันเคยทำมาก่อน ฉันไม่ทราบว่าต้องใช้ RTFM จำนวนเท่าใดในการตั้งค่าสิ่งนี้

ฉันต้องการ / ต้องการตั้งค่าการแชร์ไฟล์สาธารณะที่เปิดอยู่อย่างสมบูรณ์บนโฮมเซิร์ฟเวอร์ของฉันสำหรับสองเครื่อง

การติดตั้งมีดังนี้:

เซิร์ฟเวอร์ :

  • Debian Wheezy
  • sudo smbd --versionVersion 3.6.6ให้ฉัน
  • พาร์ติชั่นภายใน 2 ตัวที่ฉันต้องการแชร์จัดรูปแบบใน NTFS เนื่องจากเก่าและนำมาจากเครื่อง Windows ฉันไม่สามารถจัดรูปแบบให้ขยาย * FS ได้เนื่องจากมีข้อมูลจำนวนมากที่ฉันไม่สามารถย้ายไปที่อื่นได้ (ยัง)
  • เครื่องชื่อ "homeserv" เพราะขาดความคิดริเริ่ม

ลูกค้า :

  1. การทดสอบเดเบียน (เจสซี)
  2. Windows 7 (2 เครื่องที่แตกต่างกัน) ที่จริงแล้วเครื่องของฉันคือ Debian / Windows dualboot และเครื่องของภรรยาของฉันคือ Windows เท่านั้น

smb.conf ของฉันหลังจากการกลั่นมีลักษณะดังต่อไปนี้ ( คำต่อคำไม่มีอะไรอยู่ที่นั่น):

[global]
  workgroup = WORKGROUP
  security = user
  map to guest = Bad User

[disk1]
  comment = Disk 1 on 400GB HDD
  path = /media/disk1
  browsable = yes
  guest ok = yes
  read only = no
  create mask = 0755

[disk2]
  comment = Disk 2 on 400GB HDD
  path = /media/disk2
  browsable = yes
  guest ok = yes
  read only = no
  create mask = 0755

บนเครื่องไคลเอนต์ทั้งใน Debian และ Windows ฉันได้รับผลลัพธ์เดียวกัน: กล่องโต้ตอบล็อกอิน / รหัสผ่าน การรวมกันของ NO security = user, map to guest = Bad user, security = share, guest ok = yesและเช่นช่วย

Windows 7 แสดงกล่องโต้ตอบล็อกอิน / รหัสผ่านหลังจากที่ฉันคลิกที่เครื่องที่ใช้ร่วมกันในย่านเครือข่าย smb://homeserv/พา ธ ไฟล์ใน Debian (ในเบราว์เซอร์ไฟล์ใด ๆ ) จะแสดงโฟลเดอร์สองโฟลเดอร์ให้ฉัน: disk1และdisk2ตามที่ตั้งใจไว้โดยพยายามเปิดโฟลเดอร์เหล่านั้นจะนำกล่องโต้ตอบเข้าสู่ระบบ / รหัสผ่าน

ดังนั้นสิ่งที่ฉันขาดในรูปแบบที่ไม่จำเป็นต้องป้อนชื่อผู้ใช้ / รหัสผ่าน? นี่คือคำถามการใช้งานฉันจะไม่สร้างการรับรองความถูกต้องตามผู้ใช้สำหรับไฟล์ขยะ

คำตอบ:


14

ตกลงฉันพบคำตอบแล้ว

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

ฉันมีพาร์ติชั่น NTFS ซึ่งฉันจำเป็นต้องติดตั้ง RW ดังนั้นฉันจึงใช้การตั้งค่าต่อไปนี้ใน/etc/fstab:

/dev/sdb1  /media/disk1  ntfs defaults,noexec,noatime,relatime,utf8,uid=1000,gid=1000 0       2
/dev/sdb2  /media/disk2  ntfs defaults,noexec,noatime,relatime,utf8,uid=1000,gid=1000 0       2

ชิ้นส่วนที่สำคัญที่สุดของการตั้งค่าคือuidและgid(อาจจะเท่านั้นuidไม่รู้) พวกเขาถูกตั้งค่าเป็น UID และ GID ของผู้ใช้jonnieติดตั้งบนเซิร์ฟเวอร์ (เห็นได้ชัดว่าไม่ใช่รูท) ดังนั้นเมื่อ ntfs-3g จะติดตั้งดิสก์เหล่านี้ทุกสิ่งจะเป็นของเขา

หลังจากนั้นฉันได้เพิ่มผู้ใช้นี้ในรีจิสทรี Samba (หรืออาจสร้างใหม่เหมือนกันไม่สนใจ):

# smbpasswd -a jonnie

มันถามหารหัสผ่านฉันได้ป้อนเช่นเดียวกับระบบหลัก

หลังจากนั้นฉันได้เพิ่มforce userและforce groupการตั้งค่าไปที่smb.conf:

[global]
  workgroup = WORKGROUP
  netbios name = HOMESERV
  security = share

[disk1]
  comment = Disk 1 on 400GB HDD
  path = /media/disk1
  browsable = yes
  guest ok = yes
  read only = no
  create mask = 666
  directory mask = 777
  force user = jonnie
  force group = jonnie

[disk2]
  comment = Disk 2 on 400GB HDD
  path = /media/disk2
  browsable = yes
  guest ok = yes
  read only = no
  create mask = 666
  directory mask = 777
  force user = jonnie
  force group = jonnie

ดังนั้นสิ่งที่สำคัญที่สุดforce userชิ้นส่วนของการตั้งค่าที่เกี่ยวข้องกับผมก็คือ

ความอนุเคราะห์จากSamba HOWTO


1
"ไม่ชัดราก" ที่จริงไม่ชัดเจน Samba มีโหมดความล้มเหลวหลายสิบโหมด ผลลัพธ์ส่วนใหญ่มีข้อความแสดงข้อผิดพลาดเหมือนกัน นั่นเป็นเหตุผลที่คุณใช้เวลามากในการค้นหาโดยไม่ต้องใช้ Google การค้นหาครั้งเดียวไม่เพียง แต่จะนำมาซึ่งปัญหาหลายอย่าง แต่คำตอบที่พบจะได้รับความสับสนเช่นเดียวกัน การใช้รูทช่วยกำจัดด้านความปลอดภัยของ Linux แต่ยังช่วยให้คุณสามารถวินิจฉัยปัญหาได้ หากการทำงานเป็น root คุณมีปัญหาด้านความปลอดภัยในระดับ Linux หาก Samba ยังคงล้มเหลวปัญหานี้อยู่ในความคิดของผู้ใช้ของ Samba (แตกต่างกันและควรมีข้อผิดพลาดที่ไม่ซ้ำกัน)
MSalters

2

การกำหนดค่าสามารถสั้นกว่า:

สร้างผู้ใช้ unix jonnie

useradd jonnie -s /usr/sbin/nologin

สร้าง smbuser

smbpasswd -a jonnie

สร้างไดเรกทอรี Linux เพื่อแบ่งปัน

mkdir /mysmbshare

เปลี่ยนเจ้าของไดเรกทอรีเป็น jonnie

chown /mysmbshare jonnie

smb.conf

[global]
  workgroup = MyWorkGroup
  server string = Hello, use me
  security = share
  guest account = jonnie
  passdb backend = tdbsam

[the_public_share]
   path = /mysmbshare
   writable = yes
   printable = no
   public = yes

ไฟล์ทั้งหมดเป็นของ jonnie และทุกคนสามารถเข้าถึงไฟล์ได้


ใช่ "เปลี่ยนเจ้าของไดเรกทอรีเป็น jonnie" น่าจะเป็นส่วนที่สำคัญที่สุดที่นี่ ขอบคุณสำหรับวิธีแก้ปัญหาที่สั้นกว่ามาก!
นักเลง

1

วิธีที่รวดเร็วและสกปรกในการแบ่งปัน Samba แบบเปิดคือ:

# ----------------------- Standalone Server Options ------------------------
#
# Scurity can be set to user, share(deprecated) or server(deprecated)
#
# Backend to store user information in. New installations should
# use either tdbsam or ldapsam. smbpasswd is available for backwards
# compatibility. tdbsam requires no further configuration.

        security = share
        passdb backend = tdbsam

และมีการกำหนดหุ้นดังนี้:

[export]
   comment = Data Export Directory
   path = /data/export
   read only = no
   public = yes
   browseable = yes
   writeable = yes
   create mask = 666
   directory mask = 777

รีสตาร์ท daemon

สำหรับลูกค้าที่ใช้ Windows 7 ตั้งแต่ปี 2014 ฉันจำเป็นต้องตั้งค่านโยบายโดเมน: ลงชื่อสื่อสารแบบดิจิทัลจากเสมอเป็นปิดใช้งาน


พระเจ้าของฉันเปลี่ยนนโยบายโดเมนสำหรับการแชร์สาธารณะที่คาดคะเน ... (facepalm) โอเคขอบคุณแล้ว แต่ไม่ฉันลองใช้งานในตอนนี้และการเข้าถึงsmb://homeserv/disk1ยังต้องใช้รหัสผ่านใน Debian ฉันใช้เบราว์เซอร์ไฟล์ Dolphin และ Krusader บางทีมันอาจเป็นสิ่งที่อยู่ใน KDE
นักเลง hijarian

เฮ้ที่ใช้งานได้! : D public = yesและการ777อนุญาตได้ทำการหลอกลวง (Win 10 โฮสติ้ง Ubuntu 18.04) โชคดีที่มันอยู่ในเวิร์กสเตชันส่วนตัวของฉันดังนั้นฉันไม่ต้องกังวลกับมันเลย
Arthur Tarasov
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.