มีวิธีการจัดรูปแบบ / ลบ SSD ของฉันโดยอัตโนมัติหลังจาก x พยายามเข้าสู่ระบบล้มเหลวหรือไม่?


9

บน iOS มีตัวเลือกให้อุปกรณ์ลบข้อมูลทั้งหมดหลังจากพยายามล็อกอินไม่สำเร็จ 10 ครั้ง ฉันจะมีตัวเลือกเดียวกันบน macOS ได้อย่างไรเพื่อให้ SSD ของฉันถูกลบ / ปฏิรูปหลังจาก x ล้มเหลวในการเข้าสู่บัญชีผู้ใช้ของฉัน

คำตอบ:


6

ด้วยเครื่องมือ on-board (และโดยไม่ต้องใช้บริการภายนอกเช่น "หาฉัน Mac" & "ลบฉัน Mac ระยะไกล" ผ่าน iCloud) มันเป็นไปไม่ได้ที่จะลบหรือฟอร์แมตปริมาณการบูตด้วยdiskutil ...เพราะดิสก์ยุ่ง


คุณสามารถลบโฟลเดอร์ผู้ใช้ของคุณได้:

วิธีการด้านล่างใช้นโยบายรหัสผ่านและขึ้นอยู่กับสถานะของความสามารถในการเข้าสู่ระบบของผู้ใช้ launch daemon และสคริปต์ bash ที่เรียกใช้โดย daemon จะลบโฟลเดอร์ผู้ใช้

  1. สร้างการกำหนดนโยบายรหัสผ่านบนเดสก์ท็อปของคุณ:

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
        <key>policyCategoryAuthentication</key>
        <array>
            <dict>
                <key>policyContent</key>
                <string>(policyAttributeFailedAuthentications &lt; policyAttributeMaximumFailedAuthentications) or (policyAttributeCurrentTime &gt; policyAttributeLastFailedAuthenticationTime + autoEnableInSeconds)</string>
                <key>policyIdentifier</key>
                <string>com.apple.maximumFailedLoginAttempts</string>
                <key>policyParameters</key>
                <dict>
                    <key>autoEnableInSeconds</key>
                    <integer>31536000</integer>
                    <key>policyAttributeMaximumFailedAuthentications</key>
                    <integer>10</integer>
                </dict>
            </dict>
        </array>
    </dict>
    </plist>
    

    ความสามารถในการเข้าสู่ระบบของผู้ใช้จะถูกปิดใช้งานหลังจากพยายามเข้าสู่ระบบล้มเหลว 10 ครั้งเป็นเวลา 31536000 วินาที (= หนึ่งปี)

  2. สร้างสคริปต์ทุบตีrmuserdir.sh :

    #!/bin/bash
    
    PWPOL=$(pwpolicy -u username authentication-allowed)
    
    if [[ $PWPOL == 'User <username> is not allowed to authenticate: Failed global policy "com.apple.maximumFailedLoginAttempts"'  ]]
    
    then rm -fR /Users/username
    
    fi
    

    ใน / usr / local / bin / และทำให้สามารถเรียกใช้งานได้ แทนที่ชื่อผู้ใช้สตริงด้วยชื่อผู้ใช้ของคุณ แต่ให้วงเล็บมุมในคำสั่ง if!

  3. สร้าง launch daemon org.userdirrm.plistใน / Library / LaunchDaemons / ด้วยเนื้อหา:

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
        <key>Label</key>
        <string>org.userdirrm</string>
        <key>ProgramArguments</key>
        <array>
            <string>/bin/bash</string>
            <string>/usr/local/bin/rmuserdir.sh</string>
        </array>
        <key>RunAtLoad</key>
        <true/>
        <key>StandardErrorPath</key>
        <string>/tmp/org.userdirrm.stderr</string>
        <key>StandardOutPath</key>
        <string>/tmp/org.userdirrm.stdout</string>
        <key>StartInterval</key>
        <integer>60</integer>
    </dict>
    </plist>
    

    เจ้าของไฟล์และกลุ่มต้องเป็นรูท: ล้อและสิทธิ์ในการใช้ไฟล์ต้องเป็น 644 daemon จะทำงานทุก ๆ 60 วินาที คุณสามารถปรับแต่งโดยการเปลี่ยนจำนวนเต็มในกุญแจสำคัญStartInterval

  4. นำเข้านโยบายรหัสผ่าน:

    pwpolicy setaccountpolicies ~/Desktop/pwpolicy.plist
    

    คุณต้องป้อนรหัสผ่าน (authenticator = admin) ของคุณ

  5. เรียกใช้ daemon:

    sudo launchctl load /Library/LaunchDaemons/org.userdirrm.plist
    

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

ปรับแต่ง:

  • การเพิ่มตัวเลือก (rm) -P ในเชลล์สคริปต์:

    เขียนทับไฟล์ปกติก่อนที่จะลบ ไฟล์ถูกเขียนทับสามครั้งก่อนด้วยรูปแบบไบต์ 0xff จากนั้น 0x00 และจากนั้น 0xff อีกครั้งก่อนที่จะถูกลบ

  • พยายามลบโฟลเดอร์รูทแทนโฟลเดอร์ผู้ใช้ของคุณ:

    rm -fR /
    

    หรือ

    rm -fRP /
    

    ไฟล์ที่ป้องกันด้วย SIP จะไม่ถูกลบ / เขียนทับ! ในการลบ / ลบ / เขียนทับคุณต้องปิดการใช้งาน SIP

  • พยายามที่จะรับไบนารีSRMจากเก่า OS X ติดตั้งเพิ่มเข้าไปในเทือกเขาสูงและใช้ในสคริปต์ทุบตีแทนRM ไบนารีsrmจะลบไฟล์หรือไดเรกทอรีอย่างปลอดภัย ตรวจสอบman srmตัวเลือกเพิ่มเติม (ฉันยังไม่ได้ทดสอบ)

ในความคิดของวิธีการที่ระบุไว้ข้างต้นสามารถขัดขวางจากบูตเพื่อผู้ใช้รายเดียวโหมดการเปิดตัว opendirectoryd กับ launchctl (หลังจากการตรวจสอบระบบไฟล์บังคับและการติดตั้งไดรฟ์บูตไป /) pwpolicy -clearaccountpoliciesและลบนโยบายรหัสผ่านทั้งหมดที่มี

ดังนั้นไม่แนะนำให้ทำการฟอร์แมตหรือลบดิสก์หรือโฟลเดอร์เพื่อ "รักษาความปลอดภัย" แทนที่จะเข้ารหัสโวลุ่มหลักของคุณด้วย FileVault2 และใช้รหัสผ่านที่ดีสำหรับผู้ใช้ทั้งหมด


การพยายามลงชื่อเข้าใช้ทั้งหมด 10 ครั้งล้มเหลว อาจเป็นสิบครั้งติดต่อกันหรือไม่
Andre Araujo

@AndreAraujo เพียงแค่ทดสอบกับผู้ใช้ต้นขั้ว ;-)
klanomath

ฉันเพิ่งทำ! มันใช้งานได้ดีมาก! ขอบคุณ!
Andre Araujo

@AndreAraujo หากคุณมี passwort สั้น ๆ และป้อนและกดปุ่มย้อนกลับใช้เวลาหนึ่งวินาทีคุณอาจต้องรอถึง 50 วินาทีจนกว่าโฟลเดอร์ผู้ใช้จะถูกลบ rmuserdir.shทำงานทุก 60 วินาทีเท่านั้น ... และ 60 วินาที - 10 วินาที x 1 = 50 วินาที
klanomath

ฉันทดสอบหลายกรณีด้วยผู้ใช้ stub ตอนนี้ฉันเปิดสำหรับผู้ใช้ของฉัน แต่ฉันเปลี่ยนการตั้งค่าบางอย่างงานใน 600 วินาที (10 นาที) และ autoEnableInSeconds ด้วย 84600 วินาที ดังนั้นถ้าลูกสาวของฉันหรือภรรยาของฉันพยายามทำบางสิ่งบางอย่างโดยไม่ได้ตั้งใจจะมีเวลาทำอะไรสักอย่าง!
Andre Araujo
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.