บน iOS มีตัวเลือกให้อุปกรณ์ลบข้อมูลทั้งหมดหลังจากพยายามล็อกอินไม่สำเร็จ 10 ครั้ง ฉันจะมีตัวเลือกเดียวกันบน macOS ได้อย่างไรเพื่อให้ SSD ของฉันถูกลบ / ปฏิรูปหลังจาก x ล้มเหลวในการเข้าสู่บัญชีผู้ใช้ของฉัน
บน iOS มีตัวเลือกให้อุปกรณ์ลบข้อมูลทั้งหมดหลังจากพยายามล็อกอินไม่สำเร็จ 10 ครั้ง ฉันจะมีตัวเลือกเดียวกันบน macOS ได้อย่างไรเพื่อให้ SSD ของฉันถูกลบ / ปฏิรูปหลังจาก x ล้มเหลวในการเข้าสู่บัญชีผู้ใช้ของฉัน
คำตอบ:
ด้วยเครื่องมือ on-board (และโดยไม่ต้องใช้บริการภายนอกเช่น "หาฉัน Mac" & "ลบฉัน Mac ระยะไกล" ผ่าน iCloud) มันเป็นไปไม่ได้ที่จะลบหรือฟอร์แมตปริมาณการบูตด้วยdiskutil ...
เพราะดิสก์ยุ่ง
คุณสามารถลบโฟลเดอร์ผู้ใช้ของคุณได้:
วิธีการด้านล่างใช้นโยบายรหัสผ่านและขึ้นอยู่กับสถานะของความสามารถในการเข้าสู่ระบบของผู้ใช้ launch daemon และสคริปต์ bash ที่เรียกใช้โดย daemon จะลบโฟลเดอร์ผู้ใช้
สร้างการกำหนดนโยบายรหัสผ่านบนเดสก์ท็อปของคุณ:
<?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 < policyAttributeMaximumFailedAuthentications) or (policyAttributeCurrentTime > 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 วินาที (= หนึ่งปี)
สร้างสคริปต์ทุบตี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!
สร้าง 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
นำเข้านโยบายรหัสผ่าน:
pwpolicy setaccountpolicies ~/Desktop/pwpolicy.plist
คุณต้องป้อนรหัสผ่าน (authenticator = admin) ของคุณ
เรียกใช้ daemon:
sudo launchctl load /Library/LaunchDaemons/org.userdirrm.plist
คุณสามารถทดสอบการตั้งค่าได้โดยการสร้างผู้ใช้ต้นขั้วเปลี่ยนชื่อผู้ใช้ในสคริปต์ทุบตีชั่วคราวและป้อนรหัสผ่านผิดที่พยายามเข้าสู่ระบบด้วยผู้ใช้ต้นขั้วนี้ คุณสามารถลดจำนวนครั้งในการลงชื่อเข้าใช้ที่ล้มเหลวเป็น 3 ในนโยบายรหัสผ่านชั่วคราวเพื่อทำการทดสอบให้สั้นลง
ปรับแต่ง:
การเพิ่มตัวเลือก (rm) -P ในเชลล์สคริปต์:
เขียนทับไฟล์ปกติก่อนที่จะลบ ไฟล์ถูกเขียนทับสามครั้งก่อนด้วยรูปแบบไบต์ 0xff จากนั้น 0x00 และจากนั้น 0xff อีกครั้งก่อนที่จะถูกลบ
พยายามลบโฟลเดอร์รูทแทนโฟลเดอร์ผู้ใช้ของคุณ:
rm -fR /
หรือ
rm -fRP /
ไฟล์ที่ป้องกันด้วย SIP จะไม่ถูกลบ / เขียนทับ! ในการลบ / ลบ / เขียนทับคุณต้องปิดการใช้งาน SIP
man srm
ตัวเลือกเพิ่มเติม (ฉันยังไม่ได้ทดสอบ)ในความคิดของวิธีการที่ระบุไว้ข้างต้นสามารถขัดขวางจากบูตเพื่อผู้ใช้รายเดียวโหมดการเปิดตัว opendirectoryd กับ launchctl (หลังจากการตรวจสอบระบบไฟล์บังคับและการติดตั้งไดรฟ์บูตไป /) pwpolicy -clearaccountpolicies
และลบนโยบายรหัสผ่านทั้งหมดที่มี
ดังนั้นไม่แนะนำให้ทำการฟอร์แมตหรือลบดิสก์หรือโฟลเดอร์เพื่อ "รักษาความปลอดภัย" แทนที่จะเข้ารหัสโวลุ่มหลักของคุณด้วย FileVault2 และใช้รหัสผ่านที่ดีสำหรับผู้ใช้ทั้งหมด