ฉันจะปิดการใช้งานหรือแก้ไขข้อกำหนดรหัสผ่านของ pam ได้อย่างไร


9

ฉันกำลังใช้งาน Fedora 19 โดยค่าเริ่มต้นการตั้งค่าด้วย pam เพื่อปิดการใช้รหัสผ่านที่ไม่ดีเช่น "รหัสผ่าน" ดีจัง. พยายามที่จะเปลี่ยนค่าเริ่มต้นนี้ทำให้โกรธ นี่คือกล่องสำหรับทดสอบสิ่งต่าง ๆ ภายในไม่ได้เชื่อมต่อกับอินเทอร์เน็ตหรือเครื่องใด ๆ รหัสผ่านไม่ถูกต้องจะช่วยให้กระบวนการทดสอบง่ายขึ้น อีกวิธีหนึ่งที่นรกคุณเปลี่ยนข้อกำหนดรหัสผ่านได้อย่างไร?

ระบบการตรวจสอบสิทธิ์

man pam_cracklibมีตัวอย่างที่ดีของการตั้งค่าข้อกำหนดรหัสผ่านที่แตกต่างกัน ดังนั้นฉันเปิดขึ้น/etc/pam.d/system-authซึ่งเป็นที่ที่คุณเห็นสายเช่น:

#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
password    requisite     pam_pwquality.so try_first_pass retry=3 authtok_type=
password    sufficient    pam_unix.so sha512 shadow nullok try_first_pass use_authtok
password    required      pam_deny.so

* * * * * * * * headdesk จากประสบการณ์ของฉันคำเตือนเช่นนี้หมายความว่าการเปลี่ยนแปลงของคุณจะถูกลบทุกครั้งที่ตัวจัดการแพคเกจทำงานและ / หรือสุ่ม

authconfig

ดังนั้น ... authconfigเป็นขั้นตอนต่อไป ฉันค้นหาไฟล์ทั้งหมดที่ชื่อ "authconfig" /etc/sysconfig/authconfigดูมีแนวโน้ม และไม่มีคำเตือนที่ด้านบนเกี่ยวกับการทำลายการแก้ไขของฉันในราชประสงค์ ฉันค้นหาบรรทัดนี้USEPWQUALITY=yesและเปลี่ยนมัน ตอนนี้ฉันวิ่ง:

# authconfig --test
<snip>
pam_pwquality is enabled (try_first_pass retry=3 authtok_type=)
<snip>

WTF ลองอ่านman authconfigให้ใกล้หน่อย Oh! ดูเหมือนว่าไฟล์ที่ไม่ได้อ่านโดย authconfig ก็เปลี่ยน ดังนั้น .... คุณจะกำหนดค่า authconfig ได้อย่างไร? คู่มือแนะนำsystem-config-authenticationซึ่งฉันติดตั้งและไม่มีอะไรที่คล้ายกับช่องทำเครื่องหมายเพื่อปิดการใช้งาน pam_pwquality ข้อเสนอแนะต่อไปจากคู่มือคือตัวเลือกบรรทัดคำสั่ง ที่ดี! ฉันรักเครื่องมือบรรทัดคำสั่ง เท่านั้นไม่มีตัวเลือกบรรทัดคำสั่งที่เป็นเอกสารปิดใช้งาน pam_pwquality

pwquality.conf

ขอบคุณกับคำตอบของอาโรนผมได้เรียนรู้ว่าคู่ปีที่ผ่านมาฟางตัดสินใจที่จะทำให้สถานที่ที่ต้องการคุณภาพการกำหนดค่ารหัสผ่าน น่าเสียดายที่มีการบันทึกไว้ในไฟล์และในนั้นมี (1) ไม่ใช่วิธีปิดใช้งานการตรวจสอบพจนานุกรมและ (2) ไม่สามารถตั้งค่าความยาวรหัสผ่านที่อนุญาตต่ำกว่าหก/etc/security/pwquality.conf man 5 pwquality.conf


หากเป็นภายในเหตุใด Pam จึงติดตั้งหรือเปิดใช้งานอยู่
Ramhound

1
@Ramhound เนื่องจาก fedora ถูกรบกวนด้วย pam yum remove pamเอาเท่าที่ผมสามารถบอกได้ตามเวลาที่ใช้ในการเลื่อนขึ้นอยู่กับแพคเกจทั้งหมดของทุกอย่าง รวมถึงยำและ systemd นอกจากนี้การปิดใช้งาน pam ก็รู้สึกเหมือนค้อนขนาดใหญ่เมื่อฉันคิดว่าฉันแค่ต้องการใช้กระดาษทราย
djeikyb

คำตอบ:


4

หลังจากคร่าวๆดูที่ซอร์สโค้ดใน/usr/sbin/authconfigและ/usr/share/authconfig/authinfo.py:

  • man page ไม่สมบูรณ์รายการตัวเลือกที่ยอมรับโดยสคริปต์นั้นมีอยู่ authconfig --help
  • ทุกอย่างสามารถถูกแทนที่บนบรรทัดคำสั่ง (แม้/etc/security/pwquality.confการตั้งค่าเช่นความยาวขั้นต่ำของรหัสผ่าน) ยกเว้น pwquality เอง IMHO นี่เป็นข้อผิดพลาดและควรรายงาน
  • จากauthinfo.pyบรรทัด 2489 และ 2156:

    def read(self):
      self.readSysconfig()
      ...
      self.readPAM(ref)
      ...

    ก่อนอื่นreadSysconfigอ่าน/etc/sysconfig/authconfig; จากนั้นสิ่งที่คุณใส่ไว้จะถูกเขียนทับreadPAMด้วยสิ่งที่อยู่ใน/etc/pam.d/*(โดยเฉพาะpassword_auth*และsystem_auth*):

      if module.startswith("pam_cracklib") or module.startswith("pam_pwquality"):
         self.setParam("enablePWQuality", True, ref)

TL; DR : หาตัวเลือกที่ไม่ได้ overriden (หรือไม่สามารถ) การตั้งค่าที่นำมาจากการตั้งค่าปัจจุบันรวมถึงไฟล์ที่มีแท็กที่สร้างโดยอัตโนมัติ หากต้องการให้มันทำงานให้แก้ไข/etc/sysconfig/authconfig และลบบรรทัดที่แสดงโดยgrep -E pwq\|crack /etc/pam.d/*


แก้ไข : มีข้อผิดพลาดที่สองซึ่งทำให้คำแนะนำข้างต้นยังคงไม่ทำงาน: บรรทัด 2248:

    # Special handling for pam_pwquality and pam_passwdqc: there can be
    # only one.
    if self.enablePWQuality and self.enablePasswdQC:
            self.setParam("enablePasswdQC", False, ref)
    if not self.enablePWQuality and not self.enablePasswdQC:
            self.setParam("enablePWQuality", True, ref)

คุณต้องเลือกการควบคุมคุณภาพแบบใดแบบหนึ่งจากสองแบบหรือจะเลือกแบบใดแบบหนึ่งสำหรับคุณ! เมื่อรวมกับข้อผิดพลาดแรกทำให้ไม่สามารถปิดการใช้งานได้


2 ปีต่อมาใน fedora 26 อัลฟาสถานการณ์ยังคงเหมือนเดิม
eddygeek

2

คุณสามารถควบคุมsystem-authไฟล์ของคุณได้ด้วยตนเอง สร้างไฟล์ใหม่ (คุณสามารถเริ่มโดยการคัดลอกsystem-auth-ac) และเปลี่ยนsystem-authsymlink ให้ชี้ไปที่ไฟล์ใหม่

สิ่งนี้ทำให้คุณมีความรับผิดชอบในการอัปเดตส่วนนี้ของการกำหนดค่า PAM ของคุณเนื่องจาก authconfig จะไม่แตะ symlink หรือไฟล์ที่ชี้ไป อย่างไรก็ตาม authconfig จะยังคงอัปเดตsystem-auth-acไฟล์ดังนั้นคุณสามารถใช้ไฟล์นั้นต่อไปได้หากต้องการ ด้วยความเฉลียวฉลาดคุณอาจจะสามารถนำincludeไปใช้กับสำเนาในเครื่องของคุณได้ แต่วิธีการนี้จะอยู่นอกเหนือขอบเขตของคำถามนี้

นอกจากนี้คุณยังควรตรวจสอบ symlinks อื่น ๆ password-authเช่น คุณอาจต้องให้พวกเขารักษาเดียวกัน


จากauthconfig(8)manpage ภายใต้Files:

/etc/pam.d/system-auth
    Common PAM configuration for system services which include it using
    the include directive. It is created as symlink and not relinked if
    it points to another file.

/etc/pam.d/system-auth-ac
    Contains the actual PAM configuration for system services and is the
    default target of the /etc/pam.d/system-auth symlink. If a local
    configuration of PAM is created (and symlinked from system-auth
    file) this file can be included there. 

ดังนั้นหากsystem-authเป็นไฟล์ที่แล้ว authconfig system-auth-acเปลี่ยนแปลงไปเชื่อมโยงไปยัง แต่ถ้าsystem-authเป็น symlink แล้ว authconfig ก็ทิ้งไว้คนเดียว


1

ดูเหมือนว่าจะสามารถกำหนดค่าผ่าน /etc/security/pwquality.conf

ที่มา: https://fedoraproject.org/wiki/Features/PasswordQualityChecking


ขอบคุณฉันยังไม่เห็นสิ่งนั้น น่าเสียดายที่pwquality.confไม่รองรับการปิดใช้งานการตรวจสอบพจนานุกรมหรือการปิดใช้งานการตรวจสอบความยาวรหัสผ่าน
djeikyb

บางทีคำแนะนำในโพสต์นี้อาจใช้งานได้ serverfault.com/questions/444258/…
Aaron Okano

ie ลบโมดูลออกจาก system-auth และตั้ง USEPWQUALITY = no แล้วรัน authconfig --update
Aaron Okano

น่าเสียดาย (ดังที่กล่าวไว้ในคำถาม) การเรียกใช้จะauthconfig --updateallรีเซ็ตไฟล์ ฉันงงกับคำตอบนั้นอย่างถี่ถ้วนเนื่องจากมันขัดแย้งกับพฤติกรรมที่ฉันสังเกต
djeikyb

ฉันควรทราบว่าเพียงแค่ตั้งค่าUSEPWQUALITY=noและ / หรือUSECRACKLIB=noไม่แก้ปัญหาของฉันด้วยซ้ำก่อนที่จะรัน authconfig
djeikyb

1

คุณยังสามารถเปลี่ยนจากบรรทัดคำสั่ง คุณได้รับคำเตือน แต่จะให้คุณตั้งรหัสผ่านที่สั้นเกินไปรวมถึงรหัสที่ไม่ตรงตามกฎความซับซ้อน


นี่ไม่ใช่พฤติกรรมที่ฉันพบกับ Fedora 19
djeikyb

@djeikyb รันpasswd <username>คำสั่งเป็น root (ไม่ว่าจะมีsudo passwd <username>หรือหลังจากที่su -จะรูทเทอร์มินัล
Nick

@Nick นั่นไม่ได้ปิดใช้งานหรือแก้ไขข้อกำหนดรหัสผ่านของ pam
djeikyb

@djeikyb มันไม่ได้เปลี่ยนความต้องการ แต่มันผ่านมัน เมื่อคุณเรียกใช้passwdในฐานะรูทระบบจะเพิกเฉยต่อนโยบายรหัสผ่าน หากคุณเพียงแค่ต้องตั้งค่าหนึ่งครั้งและลืมมันก็จะทำงาน หากคุณพยายามตั้งค่าเพื่อให้ผู้ใช้แต่ละคนสามารถเปลี่ยนรหัสผ่านได้อย่างอิสระคุณต้องมีวิธีแก้ไขปัญหาอื่น
Nick

@Nick ฉันเห็น ใช่ root สามารถใช้งานได้passwdโดยไม่ต้อง fd ด้วยโดย pam เล็กน้อยที่จะทำกับคำถามที่เกิดขึ้นจริง แต่มันทำให้การเรียกร้องใน "คำตอบ" นี้เป็นจริง
djeikyb

0

ฉันเพิ่งพบคำถามนี้จากการค้นหาที่เกี่ยวข้องและฉันคิดว่าฉันมีคำตอบให้คุณ

Fedora สร้างลิงก์สัญลักษณ์ไปที่ไฟล์ที่สร้างโดยอัตโนมัติ กล่าวคือ เชื่อมโยงไปยังsystem-auth system-auth-acหากคุณสร้างsystem-authไฟล์ของตัวเองในทางทฤษฎีแล้วการเปลี่ยนแปลงในอนาคตใด ๆ ที่ทำโดยauth-configจะยังคงอัปเดตsystem-auth-acแต่ไม่เปลี่ยนแปลงไฟล์ที่คุณแก้ไข

จริงๆแล้วมันค่อนข้างหรูหรา แต่ฉันค้นพบมันเมื่อสงสัยว่า*-acไฟล์ทำอะไร


มันใช้งานไม่ได้ การเรียกใช้ครั้งถัดไปของauthconfig(เช่นauthconfig --updateall) จะลบไฟล์ของคุณและเชื่อมโยงกลับไปที่-acไฟล์
docwhat

@TheDoctor นั่นคืออะไร? ทีนี้มันก็ไม่มีเหตุผลใด ๆ กับฉันว่าทำไมพวกเขาถึงทำอย่างนั้นถ้ามันไม่ยอมให้มีการเปลี่ยนแปลงในท้องถิ่นด้วยการย้อนกลับไปยังการตั้งค่าที่จัดการได้อย่างง่ายดาย โอ้ดี
พายุไซโคลน

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