เข้าถึงเครือข่าย Samba ที่แบ่งปันจากไคลเอนต์ Pi


13

ฉันใช้คอมพิวเตอร์เพื่อเข้าถึงไฟล์บน RPi โดยใช้เซิร์ฟเวอร์ Samba บน RPi

แต่มีวิธีใดบ้างที่ฉันจะสามารถเปิด Samba Connections บน Pi? ชอบดูไฟล์ Windows PC Samba บน RPi หรือไม่?


1
ftp จะเร็วขึ้นมาก
rav_kr

1
ใช่ฉันรู้ แต่มันน่าเบื่อที่จะติดตั้งเซิร์ฟเวอร์ FTP บนพีซี Windows ทั้งหมดของฉัน
Snazzy Sanoj

2
คุณต้องการ samba ลูกค้า ฉันแน่ใจว่าคุณจะพบคำอธิบายมากมายของออนไลน์หากคุณค้นหา " ลูกค้าlinux samba" แต่แน่นอนว่าบางคนในนั้นจะเกี่ยวกับการใช้ไคลเอนต์เพื่อเข้าถึงการแชร์ในกล่อง linux แทนที่จะเป็นวิธีอื่น ผมเชื่อว่ายูทิลิตี้ CLI smbclientสำหรับการนี้ก็คือ
goldilocks

@goldilocks ขอบคุณ แต่มีวิธีแก้ปัญหาใดบ้างที่ตัวจัดการไฟล์เริ่มต้นเปิด Samba หรือไม่ :)
Snazzy Sanoj

1
ตัวจัดการไฟล์ใน LXDE (สภาพแวดล้อมเดสก์ท็อปเริ่มต้นบน Raspbian) คือ "pacmanfm" ดังนั้นหากคุณค้นหา "pacmanfm samba" คุณควรค้นหาสิ่งต่าง ๆ เช่นaskubuntu.com/q/249678/239729ฉันขอแนะนำ samba สิ่ง -ON-ลินุกซ์โดยทั่วไปคุณจะเริ่มต้นในU & L
goldilocks

คำตอบ:


21

ก่อนติดตั้งแพคเกจบางอย่าง:

apt-get install  samba-common smbclient samba-common-bin smbclient  cifs-utils

จากนั้นสร้างโลคัลไดเร็กทอรีและเมาต์การแชร์แบบรีโมต:

mkdir /mnt/abc
mount -t cifs //server/share /mnt/abc

ที่serverชื่อคอมพิวเตอร์ windows ของคุณ (DNS หรือ netbios) และshareเป็นไดเรกทอรีที่ใช้ร่วมกัน windows ของคุณ

ทั้งนี้ขึ้นอยู่กับการเข้าถึงที่คุณให้กับ windows share ของคุณเป็นข้อมูลประจำตัวที่จำเป็น: ถ้าคุณให้สิทธิ์การเข้าถึงแบบอ่าน (และเขียน) แบบ 'ทุกคน' ในการเข้าถึง (และเขียน) ไม่ต้องมีอะไรอื่นมิฉะนั้นคุณต้องเพิ่มข้อมูลประจำตัว

mount -t cifs //server/share /mnt/abc -o user=user,pass=password,dom=domain

แทนที่ด้วยข้อมูลประจำตัวของคุณเอง
เมื่อเสร็จแล้วก็ยกเลิกการแชร์:

umount /mnt/abc

+1 สิ่งนี้ได้ผลสำหรับไดรฟ์ USB ที่ใช้ร่วมกันเชื่อมต่อกับพอร์ต USB ของโมเด็ม / เราเตอร์ หากคุณต้องการเพิ่มการดีบักเพิ่มเติม '--verbose' ก่อนหน้า '-o'
Denja

ฉันมีข้อผิดพลาดเกี่ยวกับข้อมูลรับรองของฉัน: อุปกรณ์หรือทรัพยากรไม่ว่าง อ้างถึงหน้าคู่มือ mount.cifs (8) (เช่น man mount.cifs)
Axel Briche

ฉันต้องค้นหาวิธีการทำเช่นนี้ทุกครั้ง คำตอบนี้ชัดเจนและรัดกุม ขอบคุณ :)
Jobbo

sudo mount -t cifs -o username=guest,password=,vers=1.0 //192.168.0.1/sda1 /home/pi/router ฉันต้องเพิ่ม vers = 1.0 เพื่อให้ทำงานกับเราเตอร์ smb share ของฉัน
Harshil Lodhi

4

หากการแบ่งปัน samba ไม่จำเป็นต้องมีข้อมูลรับรองใด ๆ ในการเข้าสู่ระบบและคุณต้องการติดตั้งการแชร์เมื่อคุณเริ่ม raspberry pi ของคุณจากนั้นแก้ไขไฟล์ fstab เป็น root

sudo nano /etc/fstab

และเพิ่มบรรทัดต่อไปนี้

//server/share  /mnt/abc  cifs  guest  0  0

ปิดและบันทึกการเปลี่ยนแปลงไปยังไฟล์ fstab

ตรวจสอบว่าทุกอย่างเชื่อมต่อตามที่ควร

sudo mount -a

หากการแบ่งปัน samba ของคุณต้องการรหัสผ่านคุณสามารถเชื่อมต่อใช้สิ่งต่อไปนี้ในรายการ fstab ของคุณ

//server/share  /mnt/abc cifs username=username,password=password  0  0

ไม่ใช่ความคิดที่ดีที่สุดในการใช้วิธีนี้หากคนอื่นสามารถเข้าถึง RPi หรือเครือข่ายของคุณเนื่องจาก fstab สามารถอ่านได้และจะสามารถอ่านรหัสผ่านของคุณได้

ทางออกที่ดีกว่าคือการใช้ไฟล์ข้อมูลรับรอง

nano ~/.smbcredentials

จากนั้นป้อนชื่อผู้ใช้และรหัสผ่านของคุณลงในไฟล์

username=username
password=password

บันทึกไฟล์และเปลี่ยนการอนุญาตดังนั้นจึงไม่สามารถอ่านได้โดยผู้อื่น

chmod 600 ~/.smbcredentials

จากนั้นแก้ไขเป็นรูทของ fstab เพื่อเพิ่ม samba share

//server/share  /mnt/abc cifs credentials=/home/pi/.smbcredentials  0  0

ทดสอบอีกครั้งด้วย

sudo mount -a

และหากไม่มีข้อผิดพลาดมันจะทำการแบ่งปันโดยอัตโนมัติเมื่อคุณรีบูท

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


4

ปัญหาของฉันคล้ายกัน เป้าหมายของฉันคือ dd-wrt samba share

ปัญหาของฉัน: ไม่สามารถติดตั้งได้ (เช่นfstabจาก RPi3)

ฉันมีข้อผิดพลาดจาก "ไม่สามารถส่งรหัสผ่านเพื่ออ้างอิงไปยัง mount.cifs" เป็น "ข้อผิดพลาดอาร์กิวเมนต์ที่ไม่ถูกต้อง 22"

ผมมาในโพสต์นี้ไม่สามารถติดตั้ง samba หุ้น: เมาข้อผิดพลาด (22)และคำตอบนี้แสดงให้เห็นว่าการแก้ปัญหาคือการเพิ่มตัวเลือกในvers=1.0mount

ฉันหวังว่าจะช่วยคุณ


รุ่น = 1.0 ยังแก้ปัญหาให้ฉันด้วย sudo mount -t cifs // [ที่อยู่ ip ระยะไกล] / ดาวน์โหลด / mnt / abc -o vers = 1.0, ผู้ใช้ = [ผู้ใช้]
tridy

ใช้ vers = 1.0 สำหรับฉันเช่นกัน sudo mount -o vers = 1.0 // [NAS_IP] / nas / media / pi / nas
electron1979

0

หากหลังจากพยายามติดตั้งแบ่งปันอัตโนมัติคุณจะพบกับสถานการณ์ที่ Pi จะไม่บูตอีกต่อไปปล่อยคุณใน "โหมดฉุกเฉิน" และ / หรือบอกคุณว่าบัญชีรากถูกล็อคคุณสามารถเอาชนะมันได้โดยทำตาม คำแนะนำอยู่ที่นี่: ปัญหาการบูต Raspberry Pi - บัญชีรูทถูกล็อค! .

สรุปขั้นตอนที่เชื่อมโยงสำหรับอนาคต:

  1. ดึง SD card ของคุณจาก Pi และใช้อะแดปเตอร์ต่อเชื่อมกับการ์ด PC, Mac หรือ Linux
  2. คุณควรจะเห็น/bootพาร์ติชันของการ์ด SD ของคุณ
  3. ค้นหาไฟล์cmdline.txtและเพิ่มต่อไปนี้ในตอนท้ายของบรรทัดinit=/bin/sh หมายเหตุ: อย่าสร้างบรรทัดใหม่เพียงเพิ่มข้างบนถึงจุดสิ้นสุดของบรรทัดปัจจุบัน
  4. โหลดการ์ด SD กลับไปที่ Pi ของคุณและบูตขึ้น
  5. ตอนนี้คุณควรได้รับพรอมต์รูตเชลล์ จากที่นี่คุณสามารถเลิกทำการเปลี่ยนแปลง/etc/fstabหรืออะไรก็ตามที่ทำให้ระบบของคุณพัง
  6. ในบางกรณีคุณจะไม่สามารถบันทึกการเปลี่ยนแปลงของคุณและระบบจะบ่นเกี่ยวกับระบบไฟล์แบบอ่านอย่างเดียว หากคุณได้รับการย้ายไปที่ขั้นตอนต่อไป

การ์ด Raspberry Pi SD จะมีสองพาร์ติชันหลักเนื่องจากเราไม่สามารถอ่านตารางพาร์ติชันได้โดยตรงคุณต้องค้นหาอุปกรณ์สำหรับรูทและพาร์ติชันสำหรับบูตด้วยตนเอง คุณสามารถทำเช่นนี้ได้โดยไปที่/devไดเรกทอรีและคุณจะเห็นสิ่งที่คล้ายกับ&mmcblk0p1 mmcblk0p2อุปกรณ์ที่สองmmcblk0p2จะเป็นรูทพาร์ติชันของคุณ คุณต้องติดตั้งใหม่นี้ด้วยสิทธิ์การอ่าน:

mount -o remount,rw /dev/mmcblk0p2 /

สามารถทำได้อย่างง่ายดายที่สุดโดยติดตั้งการ์ด SD บนคอมพิวเตอร์เครื่องอื่น (Mac / Linux / Windows) และแก้ไขcmdline.txtไฟล์ที่นั่น

ฉันสร้างสภาพแวดล้อมของฉันด้วยรายการ fstab ที่ไม่ดีและการทำตามคำแนะนำเหล่านี้ทำให้ฉันสามารถคลี่คลายข้อผิดพลาดนั้นได้

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