เปลี่ยนรหัสผ่าน Windows AD จาก Linux


คำตอบ:


19

ฉันทำสิ่งนี้บน OS X แล้วมีคำสั่งเดียวกันอยู่บน linux

ตามเว็บไซต์นี้ ดูเหมือนวิธีหลีกเลี่ยงการเพิ่มชื่อผู้ใช้ไปยังไฟล์ smbpasswd ที่จะใช้smbpasswd -U <user> -r <IP address of DC>


ตามหน้า man smbpasswdสิ่งนี้จะไม่ทำสิ่งที่ถูกต้อง -aธงหมายถึง "ดังต่อไปนี้ชื่อผู้ใช้ควรมีการเพิ่มไฟล์ smbpasswd ท้องถิ่น" มีความเป็นไปได้ที่หน้าคู่มือนั้นไม่ถูกต้อง แต่ฉันสงสัย
larsks

ขอบคุณฉันตรวจสอบ manpage แล้วตรวจสอบ google และเปลี่ยนคำตอบ
JamesBarnett

2
ข้อผิดพลาดคือ: NT_STATUS_ACCESS_DENIED แต่ถ้าฉันใช้ smbclient -L เพื่อลองและแสดงรายการเซิร์ฟเวอร์ฉันจะได้รับข้อความแสดงข้อผิดพลาดที่รหัสผ่านของฉันหมดอายุซึ่งหมายความว่ารหัสผ่านที่ฉันพิมพ์นั้นถูกต้อง
Trejkaz

NT_STATUS_IO_TIMEOUTฉันได้รับ มีพอร์ตที่ต้องเปิดเพื่อให้คำสั่งนี้ใช้งานได้หรือไม่
Christoffer Reijer

3

ผมใช้วิธีการแก้ปัญหาเช่นเดียวกับที่@JamesBarnettเราได้สร้างเพียงแค่สคริปต์ที่ยังได้รับตัวควบคุมโดเมน IP เกินไป(ฉันไม่เคยรู้ว่า IP เป็นเมื่อฉันต้องเปลี่ยนรหัสผ่านของฉัน)

#!/bin/bash

USER="your.username"
DOMAIN="yourdomain.com"

smbpasswd -U $USER -r `nslookup _ldap._tcp.dc._msdcs.$DOMAIN | awk '{print $2;exit;}'`

1
nslookupคำสั่งจะไม่ทำงานตามที่กำหนดเพราะบันทึก LDAP เป็นของ DNS ประเภท SRV คุณต้องดำเนินการ: nslookup -type=SRV ...etc...และกรองอย่างเหมาะสม (ซับซ้อนกว่า awk แบบง่าย) หรือดีกว่า: $(dig SRV +noall +additional _ldap._tcp.dc._msdcs.$DOMAIN | awk '{print $5}')แทนที่ nslookup ทั้งหมดระหว่าง backticks ที่คุณมีอยู่ด้านบน
Mike S

@MikeS ที่คำสั่งแสดงผลเซิร์ฟเวอร์หลายเครื่องคั่นด้วยช่องว่าง แต่ฉันสงสัยว่า smbpasswd อาจต้องการเซิร์ฟเวอร์เดียว
Trejkaz

@Trejkaz ใช่นั่นคือสิ่งที่ฉันหมายถึงโดย "กรองอย่างเหมาะสม" ระเบียน DNS เป็นประเภท SRV สำหรับผู้เริ่มต้น คุณจะได้รับระเบียน SRV ที่ฉันแสดงให้เห็นอย่างไร ตอนนี้วิธีที่คุณเลือกตัวควบคุมโดเมนส่วนที่ฉันไม่แน่ใจ
Mike S
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.