ทำไมแซมบ้าไม่เพิ่มผู้ใช้ใหม่ด้วย“ เครื่องมือแซมบ้า”?


8

ฉันกำลังพยายามกำหนดค่าการใช้งานร่วมกันของ Samba บนเซิร์ฟเวอร์ Dell Poweredge 860 ที่ใช้ 14.04 LTS Samba มาถอนการติดตั้ง (เมื่อฉันเลือกมัน) ดังนั้นฉันแค่ต้องกำหนดค่า ฉันพยายามเชื่อมต่อกับเครื่อง Windows ของฉัน

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

[global]
        workgroup = HOME
        server string = Samba Ubuntu Server
        map to guest = Bad User
        log file = /var/log/samba/log.%m
        max log size = 50
        socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
        local master = No
        dns proxy = No
        idmap config * : backend = tdb

[Queue]
        comment = "A small folder to move files from/to the server. For use by server admin."
        path = /serv/samba/queue
        valid users = penguin
        read only = No
        create mask = 0777
        directory mask = 0777

นั่นคือทั้งหมดที่นั่น (ฉันควรทราบว่าฉันมีบัญชีชื่อpenguinด้วย แต่ฉันต้องการให้ผู้ใช้ทั้งหมดได้รับการกำหนดค่าโดยใช้samba-toolเพราะpenguinเป็นบัญชีผู้ใช้เดียวที่จะอยู่ในนั้นและจะมีผู้ใช้มากกว่านี้)

penguin@Ubuntu-Server-1:~/serv/samba$ sudo samba-tool user add penguin
New Password:
Retype Password:
ERROR(<type 'exceptions.ValueError'>): Failed to add user 'penguin':  - unable to parse dn string
  File "/usr/lib/python2.7/dist-packages/samba/netcmd/user.py", line 176, in run
    uid=uid, uidnumber=uid_number, gidnumber=gid_number, gecos=gecos, loginshell=login_shell)
  File "/usr/lib/python2.7/dist-packages/samba/samdb.py", line 343, in newuser
    dnsdomain = ldb.Dn(self, self.domain_dn()).canonical_str().replace("/", "")

ฉันได้ลองใช้กับชื่อผู้ใช้อื่นที่ไม่ได้อยู่ในระบบ มันไม่ทำงาน

ฉันไม่สามารถทำได้ง่ายๆsudo samba-tool user listโดยไม่มีข้อผิดพลาด!

ERROR(ldb): uncaught exception - ldb_search: invalid basedn '(null)'
  File "/usr/lib/python2.7/dist-packages/samba/netcmd/__init__.py", line 175, in _run
    return self.run(*args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/samba/netcmd/user.py", line 271, in run
    attrs=["samaccountname"])

ผมทำอะไรผิดหรือเปล่า?

คำตอบ:


7

เท่าที่ฉันทราบsamba-toolคือการจัดสรร Active Directory (AC) เท่านั้น ดังนั้นหากคุณไม่ได้ตั้งค่า Samba ของคุณเป็นเซิร์ฟเวอร์ AC samba-tool user addจะไม่ทำงาน

คุณควรถามตัวเองว่าคุณต้องการเซิร์ฟเวอร์ Active Directory ในเครือข่ายของคุณหรือคุณต้องการเซิร์ฟเวอร์ Samba แบบง่าย ๆ กับผู้ใช้ของตัวเองเท่านั้น

ในกรณีที่คุณต้องการ AC Server คุณควรทำตามคำแนะนำที่ให้บริการโดยโครงการ samba เอง ( https://wiki.samba.org/index.php/Samba_AD_DC_HOWTO ) แต่ควรได้รับการเตือนว่าเอกสารนี้ไม่ได้รองรับอูบุนตูโดยตรงและคุณต้องเข้าใจสิ่งที่ขึ้นอยู่กับมัน (เช่น DNS, Kerberos, LDAP)

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


7

เพียงเขียนสิ่งนี้แทนในเทอร์มินัล:

smbpasswd -a penguin

และผู้ใช้ที่คุณเพิ่มจะต้องเพิ่มในระบบ Ubuntu เช่นผู้ใช้ใหม่

ที่สามารถทำได้โดยใช้

sudo useradd penguin

หรือ

sudo adduser penguin

1

ฉันกังวลว่า 'ข้อผิดพลาด' นี้อาจผิดหมวดหมู่เพราะมันแสดงในรูปแบบที่แตกต่างกันมากมาย ฉันเพิ่งพบข้อผิดพลาดรายงานย้อนกลับไปในปี 2014 รายงานสิ่งเดียวกับที่ฉันพบ:

รายชื่อผู้ใช้เครื่องมือ samba ... ล้มเหลวซ้ำ ๆ แต่แล้วให้ทำตามคำสั่งอื่น ๆ ทั้งหมดที่เกี่ยวข้องกับ samba-tool ยกเว้น: samba-tool -V (ซึ่งรายงานหมายเลขเวอร์ชั่นอย่างถูกต้อง)

นี่คือเคล็ดลับ (หรือฉันควรพูดว่า 'a tip') ของภูเขาน้ำแข็ง:

acel: / mnt / nsd # samba-tool รายการผู้ใช้พบพารามิเตอร์ที่ไม่รู้จัก: "acl xattr update mtime" ละเว้นพารามิเตอร์ที่ไม่รู้จัก "acl xattr update mtime" ข้อผิดพลาด (ldb): ข้อยกเว้นที่ไม่ถูกตรวจจับ - ldb_search: ไม่ถูกต้อง /usr/lib/python2.7/dist-packages/samba/netcmd/ init .py ", บรรทัด 175, ใน _run return self.run (* args, ** kwargs) ไฟล์" /usr/lib/python2.7/ dist-packages / samba / netcmd / user.py ", บรรทัด 292, ในการเรียกใช้ attrs = [" samaccountname "]) acel: / mnt / nsd # samba-list รายชื่อผู้ใช้เครื่องมือ ERROR (ldb): ข้อยกเว้นที่ไม่ถูกตรวจสอบ - ldb_search: ไม่ถูกต้อง '(null)'
ไฟล์ "/usr/lib/python2.7/dist-packages/samba/netcmd/ init.py ", บรรทัด 175, ใน _run คืนค่า self.run (* args, ** kwargs) ไฟล์" /usr/lib/python2.7/dist-packages/samba/netcmd/user.py ", บรรทัด 292 ที่ทำงานอยู่ attrs = ["samaccountname"]) acel: / mnt / nsd # ซึ่ง ldb ldb: ไม่พบคำสั่ง

ปัญหา? หลังจากพบสิ่งนี้ในระบบหนึ่งฉันได้ตรวจสอบเครื่องมือแซมบ้าในระบบอิสระอีกสามระบบ (ทุก Ubuntu) และเครื่องมือแซมบ้าก็แตกหักด้วยเช่นกัน ฉันได้พบการอ้างอิงแยกบางอย่างเพื่อแสดงอาการที่คล้ายกันในรายงานข้อผิดพลาดบางคนกลับไป 4-6 ปี ฉันยังพบรายงานข้อผิดพลาดหลายอย่างที่ได้รับการ 'แก้ไข' ... (รูปแบบนี้ไม่คงที่)

สิ่งที่ฉันต้องการทำคือตรวจสอบให้แน่ใจว่าฐานข้อมูลผู้ใช้ / รหัสผ่านของแซมบ้าสะอาดโดยการลบเด็กกำพร้าออกและฉันทำไม่ได้ เห็นได้ชัดว่าหากเครื่องมือแซมบ้าไม่ทำงาน (และในกรณีของฉันฉันมีเซิร์ฟเวอร์ 4 ตัวที่ใช้งานแซมบ้าและมันไม่ทำงานกับเซิร์ฟเวอร์ใด ๆ ) จะต้องได้รับการแก้ไข

เงื่อนงำอื่น ๆ ที่ฉันสามารถนำเสนอ: หนึ่งการอ้างอิงที่ฉันอ่านกล่าวถึงการซิงโครไนซ์ของรหัสผ่านในแซมบ้าเป็นสาเหตุที่เป็นไปได้ ฉันพบสิ่งนี้เมื่อ samba พบหมายเลขผู้ใช้ samba เด็กกำพร้าซึ่งฉันได้สร้างขึ้นโดยการเปลี่ยนชื่อแฝดเดิมในไฟล์ / etc / passwd ฉันแค่พยายามใช้เครื่องมือแซมบ้าเพื่อเอาเด็กกำพร้าออก แต่ฉันคิดว่ามันเป็นไปได้ที่เมื่อแซมบ้าพยายามซิงโครไนซ์ฐานข้อมูลผู้ใช้กับระบบและพบว่าผู้ใช้ดั้งเดิมหายไปความเสียหายบางอย่างก็เกิดขึ้น (?)

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

ตัวอย่างเช่น 'รายชื่อผู้ใช้เครื่องมือ samba' หรือ 'samba-tool dbcheck'

เหมืองทั้งหมด (1 V4.7 และ 3 V4.3) เสีย (หวังว่านี่จะช่วยได้)

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