ฉันจะมีหุ่นกระบอกตั้งรหัสผ่านเมื่อสร้างผู้ใช้ได้อย่างไร


9

ฉันต้องการ Puppet ไม่ให้จัดการรหัสผ่าน (เช่นรีเซ็ตเมื่อมีการเปลี่ยนแปลง) แต่เพื่อตั้งรหัสผ่านเริ่มต้นเมื่อ Puppet สร้างผู้ใช้

ฉันกำลังคิดที่จะทำnotifyกับExecทรัพยากรที่ตั้งรหัสผ่าน แต่สิ่งนี้จะถูกเรียกเมื่อมีการแก้ไขคุณสมบัติที่ Puppet จัดการ (เช่นการเป็นสมาชิกกลุ่มโฮมไดเร็กตอรี่และอื่น ๆ ) ฉันไม่ต้องการสิ่งนั้น.

ความคิดใด ๆ

คำตอบ:


9

Puppet เองไม่สนับสนุน "ตั้งรหัสผ่านในการสร้างผู้ใช้ แต่ไม่เป็นอย่างอื่น"

ทางเลือกหนึ่งคือการตั้งค่าแหล่งข้อมูลภายนอกเช่น LDAP

อีกสิ่งหนึ่งจะnotifyเป็นExecความคิดของคุณแต่จะทำให้Execฉลาดขึ้นเล็กน้อย

exec {
  "/usr/sbin/usermod -p '${password}' ${user}":
    onlyif => "/bin/egrep -q '^${user}:[*!]' /etc/shadow",
    require => User[$user];
}

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


1
ฉันเคยเห็นเครื่องบางเครื่องใช้!สำหรับไม่มีรหัสผ่านซึ่งในกรณีนี้egrep -q '^${user}:[*!]:' /etc/shadowทำงานได้ดีขึ้น
leedm777

1
สำหรับ RHEL / Cent: egrep '^${username}:!!:.*:' /etc/shadow
rfelsburg

1
grep -Eq '^${user}:[*!]!?:' /etc/shadow"ดูเหมือนจะพกพาได้มากที่สุดและจะไม่รีเซ็ตผู้ใช้ด้วยรหัสผ่านที่ถูกล็อค
CodeGnome
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.