แชร์แซมบ้าอย่างง่าย - ไม่มีรหัสผ่าน


17

สิ่งที่ฉันต้องการ:

การตั้งค่าแซมบ้าอย่างง่าย ๆ สำหรับไฟล์เซิร์ฟเวอร์ที่ไม่มีรหัสผ่านและการอ่านแบบเต็มสำหรับทุกคน ไม่ต้องการความปลอดภัย

ประวัติความเป็นมา:

ฉันกำลังสร้างเซิร์ฟเวอร์เพื่อโฮสต์ไฟล์สำหรับบ้านของฉัน เป้าหมายของเซิร์ฟเวอร์คือการโฮสต์ไฟล์สำหรับเครื่อง Windows สิ่งที่ดีที่สุดที่ฉันสามารถทำได้คือการกำหนดค่านี้ ด้วยสิ่งนี้ฉันสามารถเห็นการแชร์และเซิร์ฟเวอร์จากเครือข่าย แต่มันบอกว่า Windows ไม่สามารถเข้าถึงได้ ฉันกำลังใช้คู่ Linux ที่เซิร์ฟเวอร์ทั้งหมดอัปเดตล่าสุด

การกำหนดค่าของฉัน:

[global]

   workgroup = BIOHAZARD
   netbios name = MATUSALEM
   guest account = nobody
   log file = /usr/local/samba/var/log.%m
   max log size = 50
   security = user
   map to guest = bad user
   encrypt passwords = yes

# Share Definitions 
[homes]
   comment = Home Directories
   browseable = no
   writable = yes

[Teste]
    path = /home/peter/share
    writable = yes
    printable = no
    comment = teste
    only guest = yes
    public = yes
        guest ok = yes
        guest only = yes
        guest account = nobody
        browsable = yes
[REDE]
    comment = TESTE 2
    public = yes
    delete readonly = yes
    path = /HOME/REDE
    writeable = yes
        guest ok = yes
        guest only = yes
        guest account = nobody
        browsable = yes
######

ความคิดใด ๆ


อาจเกี่ยวข้องกับserverfault.com/questions/630631/ …และaskubuntu.com/questions/258284/…
Nick Weinberg

คำตอบ:


22

ใช่แซมบ้าอาจเป็นความเจ็บปวด ฉันใช้เพื่อบ้านและที่ทำงาน

สิ่งแรกที่คุณควรทำคือเริ่มต้นใหม่เพื่อให้การแก้ไขปัญหาง่ายขึ้น คุณสามารถทำได้โดยใช้คำสั่งด้านล่างใน terminal

dpkg-reconfigure samba-common

จากนั้นไปที่โฟลเดอร์บนเซิร์ฟเวอร์ samba ที่คุณต้องการแชร์และตรวจสอบให้แน่ใจว่าไม่มีผู้ใช้คนใดสามารถอ่านและเขียนไปยังการแชร์ได้ นี่เป็นเพราะไม่มีผู้ใช้ที่ลูกค้า windows ผู้ใช้ใช้ ฉันมักจะสร้างโฟลเดอร์ในไดเรกทอรี / เพียงเพื่อให้ง่าย แต่วิธี "ถูกต้อง" จะทำให้โฟลเดอร์ย่อยของ / srv หากคุณยังไม่ได้แก้ไขการอนุญาตใช้คำสั่งด้านล่าง

sudo chown -R nobody.nogroup the_folder
sudo chmod -R 777 the_folder

คุณยังสามารถทดสอบเพื่อดูว่าไม่มีใครสามารถเขียนไปยังไดเรกทอรีได้ด้วยการรันคำสั่งต่อไปนี้ในฐานะรูท

sudo -u nobody touch test_file

แก้ไข /etc/samba/smb.conf ของคุณและเพิ่มบรรทัดใต้คำนิยามการแชร์เครื่องพิมพ์ [[เครื่องพิมพ์]

[share_name]              ;the share name can be what ever you want
browseable = yes
path = the_complete_path_to_the_shared_folder
guest ok = yes
read only = no
create mask = 777

จากนั้นเมื่อคุณทำเสร็จแล้วให้บันทึกและเรียกใช้งานดังต่อไปนี้

testparm

สิ่งนี้จะเตือนคุณหากคุณพิมพ์ผิด ถัดไปคุณต้องรีสตาร์ทบริการแซมบ้า

sudo systemctl restart smbd
sudo systemctl restart nmbd

มันทำงานได้อย่างสมบูรณ์แบบ! คัดลอกเพื่อการอ้างอิงในอนาคต ปัญหาคือสิ่งที่ chmod! ขอบคุณมาก ๆ.
Peter Reynold Robinson Junior

1
งานที่ดีคิดออกส่วนใหญ่จะเพิ่งเลิก โปรดจำไว้ว่าการแชร์ไฟล์ในระบบปฏิบัติการใด ๆ การอนุญาตมักเป็นปัญหา
Andrew

1
ยิ่งใหญ่ มันใช้งานได้สำหรับฉันฉันเพิ่งมีปัญหาเมื่อพยายามติดตั้ง samba ใหม่ แต่ปัญหาก็เป็นเพราะจำเป็นต้องทำเช่น sudo apt-get autoremoveนั้นแล้ว sudo apt-get purge samba*
iLevi

สิ่งนี้ส่งผลให้เกิดข้อผิดพลาดในการเริ่ม nmdb หลังจากการติดตั้งแซมบ้าจบด้วยโดย log.nmdb บอกว่า "เกิดข้อผิดพลาดในการเปิดไฟล์ config" และไม่มีโฟลเดอร์ / etc / samba อยู่เลย การลองใหม่อีกครั้งของกระบวนการกำจัดและลบและการติดตั้งใหม่ทำให้เหมือนเดิมซ้ำแล้วซ้ำอีก
แฟรงค์เอช

นี่เป็นวิธีการทำงานเท่านั้นทั่วอินเทอร์เน็ต! คุณบันทึกวันของฉันขอบคุณ
Evi Song

0

ฉันรู้ว่านี่เป็นเธรดเก่า แต่ช่วยให้ฉันแก้ปัญหาในการสร้างและแชร์โฟลเดอร์โดยไม่ต้องลงชื่อเข้าใช้ มีเธรดอื่น ๆ อีกมากมาย แต่ก็ทำให้เข้าใจผิด ฉันได้รับคำแนะนำกึ่ง biginners ด้านล่างเนื่องจากมีความแตกต่างเล็ก ๆ มากมายกับโพสต์อื่น ๆ ที่นั่นฉันคิดว่ามันอาจช่วยคนอื่นที่เกือบเลิกและดึงผมออกครึ่งหนึ่ง :-)

สำหรับฉันบนอิมเมจ AWS Linux เริ่มต้น (Amazon Linux AMI 2017.03.0 (HVM)) ฉันต้องสร้างโฟลเดอร์ในรูต dir / เนื่องจากฉันไม่สามารถกำหนดสิทธิ์ได้หากสร้างภายใต้ผู้ใช้ ec2 ที่เป็นค่าเริ่มต้น เมื่อกำหนดสิทธิ์ฉันต้องใช้ none.nobody เนื่องจาก nogroup ไม่ทำงาน ในที่สุดฉันก็ต้องรวมแผนที่ไปยังแขก = ผู้ใช้ที่ไม่ดีภายใต้ส่วนเซิร์ฟเวอร์แบบสแตนด์อโลนที่ซึ่งโดยค่าเริ่มต้นจะกล่าวถึงความปลอดภัย = ผู้ใช้

ดังนั้นขั้นตอนทั้งหมดจะเป็นการปรับใช้เซิร์ฟเวอร์ใหม่:

ติดตั้ง samba ถ้าจำเป็น

สร้างโฟลเดอร์และกำหนดสิทธิ์

sudo su
cd /
mkdir the_folder
chown -R nobody.nobody the_folder
chmod -R 777 the_folder

แก้ไขไฟล์ samba

nano /etc/samba/smb.conf

ค้นหาบรรทัด # ---- ตัวเลือกเซิร์ฟเวอร์แบบสแตนด์อโลน ---- ผนวก "map to guest" ต่อท้าย

security = user
passdb backend = tdbsam
map to guest = Bad User

ภายใต้ส่วน # ==== แบ่งปันคำจำกัดความ ==== เพิ่มการแบ่งปันของคุณ

[SHARENAME]
path = the_folder
read only = no
create mask = 777
guest ok = yes

บันทึกไฟล์และรีสตาร์ท samaba

/etc/init.d/smb restart

0

นอกจากนี้ให้คำตอบ @Andrew การอัพเกรดล่าสุดจากอูบุนตู 17.04-17.10 สร้างปัญหาใน systemctl samba-DC-ad.service สมมติว่าไม่ใช่ข้อผิดพลาดบนมาสก์เมื่อคุณพยายามติดตั้ง samba ใหม่บน samba-dc-ad.service (intensional) ขั้นตอนเพิ่มเติมก่อนคำตอบของ @ Andrewหากคุณมีปัญหากับการติดตั้ง / ติดตั้งแซมบ้าอีกครั้งเนื่องจากการอัปเกรด:

  1. apt-get update & apt-get-upgrade <- ตรวจสอบให้แน่ใจว่าไม่มีการอัปเกรดที่โดดเด่น
  2. apt-get install samba
  3. ไปที่หน้านี้และทำตามคำแนะนำ: https://wiki.samba.org/index.php/Managing_the_Samba_AD_DC_Service_Using_Systemd

  4. apt-get -f ติดตั้ง samba

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