ข้อผิดพลาด“ root เท่านั้นที่สามารถเมาได้” - แต่ฉันเป็นคนรูท


9

เมื่อวานนี้ฉันสามารถเมาแชร์ smb ของฉันด้วยคำสั่งต่อไปนี้:

sudo mount -t cifs //XXXX/share /media/share -o user=Ben,password=XXX,workgroup=WORKGROUP,ip=XXX.XX.XX,uid=ben,gid=ben,rw

ฉันไม่รู้ว่าทำไมมันไม่ทำงานอีกต่อไป (อาจมาจากการอัปเดตระบบ)

ฉันได้รับข้อผิดพลาดต่อไปนี้:

mount: only root can mount //XXX.XXX.XXX/share on /home/ben/share

ฉันไม่รู้วิธีแก้ไขปัญหานี้ ..

ฉันได้ลองติดตั้งด้วย su - และ Smbclient ก็ทำงานได้

ฉันกำลังใช้งาน ArchLinux


1
อะไรคือผลลัพธ์ของecho "$EUID"?
Chris Down

1
@ChrisDown echo $ EUID = 1,000
Ben D

6
@BenD - ในกรณีนี้คุณไม่ได้ทำงานในฐานะรูท (เห็นได้ชัดว่าควรทำงานในสภาพแวดล้อมเดียวกันกับที่คุณพยายามติดตั้งดังนั้นคุณควรตรวจสอบให้แน่ใจว่าเป็นรูทเชลล์ที่กำลังขยาย$EUID)
Chris Down

2
ทำไมเส้นทางต่างกันระหว่างข้อความแสดงข้อผิดพลาดและคำสั่ง mount? หนึ่งคือ/media/shareและอื่น ๆ /home/ben/shareคือ นอกจากนี้ฉันขอแนะนำให้ใช้/mntสำหรับเมานท์แบบแมนนวลหรือแบบคงที่ /mediaสร้างขึ้นสำหรับ HAL / udev daemons เพื่อต่อเชื่อมกับดิสก์ที่สร้างขึ้นแบบไดนามิกเช่นไดรฟ์ USB
penguin359

1
ดังที่ @ 9000 กล่าวไว้ให้ดูสิ่งที่โหมด verbose พูดโดยเพิ่ม -v ให้กับคำสั่ง mount ของคุณ ตรวจสอบบันทึกระบบของคุณด้วยหากคุณยังไม่ได้ดำเนินการกับ dmesg และอาจเรียกใช้คำสั่ง strace เพื่อแก้ไขปัญหาที่ลึกซึ้งยิ่งขึ้น
Banjer

คำตอบ:


1

หากคุณไม่รู้ว่าเกิดอะไรขึ้นลอง strace:

sudo strace -f -F -o mount.strace mount -t cifs //XXXX/share /media/share -o user=Ben,password=XXX,workgroup=WORKGROUP,ip=XXX.XX.XX,uid=ben,gid=ben,rw

จากนั้นลองค้นหาไฟล์mount.straceจากด้านล่างเพื่อหาข้อผิดพลาดบางอย่างคุณจะพบเหตุผลอย่างชัดเจน ... มันเป็นวิธีที่ยากฉันรู้ว่า ...


0

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

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

sudo mkdir /mnt/smb_share
sudo touch /mnt/smb_share/test && sudo rm -f /mnt/smb_share/test && echo "Permissions are OK"
sudo mount -t cifs //(hostname)/share /mnt/smb_share -o user=Ben,domain=(WORKGROUP)

คำสั่ง mount ควรถามรหัสผ่าน Ben ของผู้ใช้ Samba ฉันได้ลบตัวเลือก uid และ gid เพื่อลบ "สัญญาณรบกวน" บางส่วน ด้วยคำสั่งนี้คุณควรจะสามารถตรวจสอบว่าคุณสามารถกำหนดใช้ร่วมกัน แน่นอนคุณต้องแทนที่:

  • (ชื่อโฮสต์) โดยชื่อโฮสต์เซิร์ฟเวอร์ที่ใช้ร่วมกัน หากไม่สามารถใช้งานได้กับชื่อโฮสต์ให้ลองอีกครั้ง แต่ใช้ที่อยู่ IP แทน
  • (WORKGROUP) โดยกลุ่มงานหรือโดเมนของคุณ

ถ้าใช้งานได้ ลองเลิกเมานต์แชร์และเล่าใหม่ด้วย uid เท่านั้น:

sudo umount /mnt/smb_share
sudo mount -t cifs //(hostname)/share /mnt/smb_share -o user=Ben,domain=(WORKGROUP),uid=ben

ถ้านี่ใช้งานได้เพิ่ม gid จากนั้นเพิ่ม rw แล้วเพิ่มตัวเลือกรหัสผ่านในที่สุด (ทีละขั้นตอน) ดังนั้นคุณสามารถระบุได้ว่าตัวเลือกใดไม่เข้าใจ

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