mount.cifs ไม่สามารถใช้ไฟล์ข้อมูลรับรองเดียวกับที่ smbclient ใช้


10

ฉันกำลังพยายามติดตั้ง NetApp CIFS ให้กับเซิร์ฟเวอร์ของเราและฉันได้รับ "Permission Denied" พิมพ์ไปยัง stderr และNT_STATUS_WRONG_PASSWORDพิมพ์ไปยังที่ทำงานdmesgอยู่

root@xxxehpvld05 ~ $ mount.cifs -vv //zhp-nas.xxx.com/perspectives /mnt/secure/cifs -o credentials=/etc/cifs.creds
mount error(13): Permission denied
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)
root@xxxehpvld05 ~ $ dmesg | tail
CIFS VFS: cifs_mount failed w/return code = -13
Status code returned 0xc000006a NT_STATUS_WRONG_PASSWORD
CIFS VFS: Send error in SessSetup = -13
CIFS VFS: cifs_mount failed w/return code = -13
Status code returned 0xc000006a NT_STATUS_WRONG_PASSWORD
CIFS VFS: Send error in SessSetup = -13
CIFS VFS: cifs_mount failed w/return code = -13
Status code returned 0xc000006a NT_STATUS_WRONG_PASSWORD
CIFS VFS: Send error in SessSetup = -13
CIFS VFS: cifs_mount failed w/return code = -13

อย่างไรก็ตามsmbclientคำสั่งทำงานได้โดยไม่มีปัญหาโดยใช้ไฟล์หนังสือรับรองที่แน่นอน:

root@xxxehpvld05 ~ $ smbclient -L //zhp-nas.xxx.com/perspectives -A /etc/cifs.creds
Domain=[XXX] OS=[Windows 5.0] Server=[Windows 2000 LAN Manager]

        Sharename       Type      Comment
        ---------       ----      -------
        IPC$            IPC       Remote IPC
        ZHPSubmit-dev   Disk
    [...snip...]

ดูเหมือนว่าหากใช้งานได้อีกควรโดยเฉพาะอย่างยิ่งเนื่องจากไฟล์ข้อมูลรับรองยังระบุชื่อโดเมน


เกิดอะไรขึ้นกับเงินรางวัล?

ไม่เคยได้รับคำตอบที่เหมาะกับฉันเลยในที่สุดความโปรดปรานก็หมดลงและคะแนนทั้งหมดนั้นก็ไปถึงโดโด
Bratchley

หากคุณนึกถึงคำตอบได้ฉันจะให้รางวัลคุณใหม่ฉันไม่ต้องการริบคะแนนถ้าไม่ได้รับคำตอบ
Bratchley

ดังนั้นฉันมีปัญหาที่คล้ายกัน (มีข้อผิดพลาด -13 จากโมดูลเคอร์เนล) ฉันติดตั้งcifs-utilsแพ็คเกจ (Debian) และแก้ไขปัญหาได้แล้ว ฉันใช้การแก้จุดบกพร่องเล็กน้อยเพราะฉันไม่ได้คาดหวังการสนับสนุนใด ๆหากไม่ได้ติดตั้งแพคเกจดังนั้นฉันคิดว่ามันเป็น ฉันคาดหวังบางอย่างเช่น "ระบบไฟล์ที่ไม่รู้จัก" จากการเมานต์ แต่นั่นไม่ได้เกิดขึ้น
sherrellbc

คำตอบ:


7

ข้อมูลเพิ่มเติมฉันไม่สามารถพูดได้อย่างแน่นอน แต่ฉันได้เห็นปัญหานี้เมื่อเชื่อมต่อกับเซิร์ฟเวอร์ windows ที่เก่ากว่าที่ใช้รุ่นโปรโตคอลที่เก่ากว่า จำไว้ว่า CIFS ถือเป็น "ภาษาถิ่น" (ประเภท) ของ SMB มีประเภทอื่น ๆ และการตั้งค่ารุ่นเก่าไม่ใช้ CIFS

โดยพื้นฐานแล้วมันเหมือนกับว่าคนสองคนกำลังพูด ภาษาสเปนหนึ่งภาษาและหนึ่งภาษาอังกฤษและคุณพยายามบังคับให้ผู้พูดภาษาอังกฤษเข้าใจภาษาสเปนเมื่อเขาไม่ชัดเจน

SMBclient ใช้ตัวเลือกอื่นสำหรับการเจรจาด้านความปลอดภัย (หรืออย่างน้อยก็ตรวจจับต่างกัน)

ลอง

Mount -t cifs // path / things / / mount / point -o ชื่อผู้ใช้ = ผู้ใช้, รหัสผ่าน = pass, sec = ntlm

และดูว่าเกิดอะไรขึ้น (sec = ntlm เป็นส่วนสำคัญ)


ปัญหาเดียวกันแม้เมื่อระบุการรับรองความถูกต้อง NTLM เดียวกันถ้าผมทำหรือntlm ntlmv2ฉันไม่แน่ใจว่าจะแก้ไขปัญหาอย่างไรหากคุณต้องการข้อมูลเพิ่มเติมให้ฉันทราบและฉันจะอัปเดตคำถาม จะมีการควบคุมการเข้าถึงในด้าน NetApp ที่ SAN คนที่ไม่ได้รับ?
Bratchley

รุ่นของซอฟต์แวร์เซิร์ฟเวอร์มีเราเตอร์หรือสวิตช์ในทางหรือไม่
coteyr

เครือข่ายย่อยเดียวกัน ไม่แน่ใจว่า Samba เวอร์ชันใดอยู่อีกด้านหนึ่งเนื่องจากเป็นอุปกรณ์ NetApp ONTAP
Bratchley

4

เล่นกับคำสั่งฉันพบเหตุผลที่เป็นไปได้:

จากหน้าคนของ smbclient:

   -A|--authentication-file=filename
       This option allows you to specify a file from which to read the
       username and password used in the connection. The format of the file is

           username = <value>
           password = <value>
           domain   = <value>

       Make certain that the permissions on the file restrict access from
       unwanted users.

จาก man page ของ mount.cifs:

   credentials=filename
       specifies a file that contains a username and/or password and
       optionally the name of the workgroup. The format of the file is:

          username=value
          password=value
          domain=value

แล้วฉันจะสร้างสองไฟล์ข้อมูลประจำตัวหนึ่งที่มีช่องว่างในขณะที่แสดงให้เห็นในตัวอย่างแรกและหนึ่งโดยไม่ได้และตั้งชื่อให้พวกเขาและcredscreds.spacy

การประลองครั้งใหญ่:

พร้อมcredsไฟล์:

mount.cifs -vvv //host/path /local/path -o credentials=/path/creds

ความเงียบดีไม่มีข้อผิดพลาด

พร้อมcreds.spacyไฟล์:

# mount.cifs -vvv //host/path /local/path -o credentials=/path/creds.spacy
mount error(13): Permission denied
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)

เห็นได้ชัดว่าไฟล์ข้อมูลรับรองของคุณมีช่องว่างซึ่งไม่เข้าใจโดย mount.cifs

นอกจากนี้smbclientมันไม่สำคัญว่าจะมีช่องว่าง credsและcreds.spacyไม่ทำให้เกิดการบ่นใด ๆ


มีบรรทัดว่างพิเศษที่ท้ายไฟล์ แต่ฉันได้สิ่งเดียวกันหลังจากลบมัน นี่เป็นรุ่นที่ Redacted เล็กน้อยของสิ่งที่อยู่ในไฟล์ creds รหัสผ่านที่ Redacted และแท้จริงคือรหัสผ่านตัวพิมพ์เล็กและใหญ่ที่มี "!" เป็นตัวละครพิเศษ
Bratchley

มีอีกด้านหนึ่งซึ่งโซลูชันนี้ทำให้ฉันพบว่า: ข้อมูลประจำตัวต้องอยู่ในลำดับที่ถูกต้องเช่นชื่อผู้ใช้รหัสผ่านโดเมนและไม่ใช่ลำดับอื่น ๆ เช่นโดเมนชื่อผู้ใช้รหัสผ่าน (ซึ่งเป็นสิ่งที่ฉันมี) นอกจากนี้ยังทำงานได้ดีกับแต่ล้มเหลวsmbclient mount.cifsเมื่อฉันเปลี่ยนคำสั่งซื้อให้ถูกต้องตามที่ระบุในเอกสารที่คุณยกมาที่นี่มันเริ่มทำงาน ดูเหมือนว่าเหล่านี้ (ทั้งที่ผิดพลาดของพื้นที่และปัญหาการสั่งซื้อ) mount.cifsเป็นข้อบกพร่องร้ายแรงที่ควรจะแน่นอนได้อย่างง่ายดายโดยใครก็ตามที่ยังคง
leftclickben

2

การเพิ่ม sec = ntlm แก้ไขปัญหาให้ฉันแล้ว ฉันมี NAS รุ่นเก่า (netgear stora) ความปลอดภัยเริ่มต้นสำหรับ cifs ในเมล็ดที่ผ่านมาคือ ntlmssp


ทำงานให้ฉันด้วย ฉันยังไม่ทราบสาเหตุที่แท้จริง ในกรณีที่ช่วยคน: isilon mount บน Ubuntu LTS 14.04 ไอซิลอน (บาง SAN บางอย่าง) พูดถึงไดเรกทอรีที่ใช้งาน windows บัญชีเดียวกันใช้งานได้อย่างมีเสน่ห์ในเครื่องอื่น ๆ และเมื่อติดตั้งโดยตรงในหน้าต่าง
Reinout van Rees

หมายเหตุพิเศษ: 12.04 ที่มีการอัปเดตล่าสุดทำงานได้ดี 14.04 เป็นส่วนหนึ่งของปัญหาในขณะนี้ (ปลายเมษายน 2015)
Reinout van Rees

หมายเหตุพิเศษล่าสุด: ปัญหาหลักคือปัญหาที่ทราบกันดีของ Microsoft เกี่ยวกับการจัดเก็บ emc isilon และอัปเดต KB3002657 (หรือเพื่อให้ sysadmin ของฉันบอกฉันตอนนี้ :-))
Reinout van Rees

2

ความเป็นไปได้อีกอย่างหนึ่งที่ฉันค้นพบในขณะที่พยายามเมาแชร์ในวันนี้คือการsmbmountสนับสนุนusername=DOMAIN\\userไวยากรณ์เพื่อให้ผู้ใช้ในโดเมนเป็นข้อมูลประจำตัว

สำหรับmount.cifs(และmount -t cifs) -o username=user,password=pass,dom=DOMAINในการทำงานทั้งสองมีที่จะให้แยกต่างหาก:


ในการติดตั้งการแชร์ smb 3.0 ที่ให้บริการโดย NetApp Clustered Data ONTAP ต้องโทรออกทั้งคู่sec=ntlmและdom=DOMAIN
iii

1

ตามที่ผู้ใช้ 5555 อธิบายคุณอาจมีช่องว่างในไฟล์ข้อมูลรับรองแม้ว่าคุณจะไม่เห็นก็ตาม หากคุณแก้ไขไฟล์ข้อมูลรับรองของคุณบน Windows คุณอาจพบ\rว่าท้ายบรรทัดของคุณและมีข้อผิดพลาดเกิดขึ้น 13


คุณสามารถใช้รายการชุดคำสั่งในกลุ่มเพื่อตรวจสอบแท็บเสริม / ช่องว่าง
vfbsilva

0

ฉันอยากจะขอบคุณพวกคุณทุกคน !!! สำหรับปัญหานี้มันช่วยฉันได้มากจริงๆ! นอกจากนี้ฉันยังพบข้อมูลสำคัญบางอย่างเกี่ยวกับพารามิเตอร์ "sec = ntlm" ดังนั้นฉันจะทิ้งลิงค์ไว้ถ้าหากคุณสนใจเรื่องนี้บรรทัดด้านล่าง:

Microsoft NTLM

ฉันพยายามติดตั้งไดเรกทอรีแชร์จากเดสก์ท็อป windows 7 แต่ฉันไม่สามารถเพิ่มพารามิเตอร์ "sec = ntlm" ได้และทำงานได้และรายละเอียดที่สำคัญบางอย่างอาจเป็นได้ว่าฉันไม่ได้พิจารณาว่าเดสก์ท็อป windows 7 ของฉันเป็น โดเมนดังนั้นฉันคิดว่ามันเป็นรายละเอียดที่สำคัญที่สุดที่ฉันควรพิจารณา ดังนั้นมันใช้งานได้! ขอบคุณจริง ๆ ทุกท่านมาก! และความรู้สึกที่ดี! : D


0

ในกรณีของฉันฉันเพียงแค่ต้องเพิ่มตัวเลือกvers=3.0(CIFS เป็นรุ่น 1 ซึ่งไม่ได้รับการสนับสนุนอีกต่อไปตั้งแต่เคอร์เนล 4.13 ดังนั้นฉันจึงเปลี่ยนไปใช้ SMBv3 บนเซิร์ฟเวอร์) และฉันก็ต้องรีบูตเครื่องเพื่อให้ทำงานได้ ติดตั้งสายใน/etc/fstabตอนนี้:

auto,rw,credentials=/usr/local/etc/smb.credentials,vers=3.0,file_mode=0664,dir_mode=0775,uid=myuser,gid=users

ไฟล์ข้อมูลรับรองของฉัน:

username=myuser
password=****
domain=mydomain

ที่จริงแล้วdomainไม่จำเป็น แต่เป็นตัวเลือกที่ถูกต้องในการใช้งานตามหน้า man mount. cifs ทันที


0

ฉันดิ้นรนกับสิ่งนี้มาระยะหนึ่งแล้ว

ด้วยข้อผิดพลาดดังต่อไปนี้:

mount error(112): Host is down

ที่นี่ช่วยกำหนดตัวเลือก vers = 1.0 จากนั้นรายงาน

mount error(13): Permission denied

และกลายเป็นอักขระพิเศษในไฟล์ข้อมูลรับรองของฉัน

เดิมทีฉันมี:

# cat /etc/samba/cred-file
username="john"
password="secret"

มันควรจะอยู่ที่ไหน

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