Có cách nào để tự động định dạng / xóa SSD của tôi sau khi x lần đăng nhập thất bại không?


9

Trên iOS có tùy chọn để thiết bị xóa tất cả dữ liệu sau 10 lần đăng nhập thất bại. Làm cách nào tôi có thể có cùng tùy chọn trên macOS để SSD của tôi bị xóa / cải tổ sau khi x thất bại để đăng nhập vào tài khoản người dùng của tôi?

Câu trả lời:


6

Với các công cụ trên máy bay (và không sử dụng các dịch vụ bên ngoài như "Tìm máy Mac của tôi" & "Xóa máy Mac của tôi từ xa" qua iCloud), không thể xóa hoặc định dạng lại âm lượng khởi động diskutil ...vì đĩa đang bận .


Bạn có thể xóa thư mục người dùng của mình mặc dù:

Phương pháp bên dưới sử dụng chính sách mật khẩu và tùy thuộc vào trạng thái của khả năng đăng nhập của người dùng, trình nền khởi chạy và tập lệnh bash được trình nền gọi ra sẽ xóa thư mục người dùng.

  1. Tạo một chính sách mật khẩu trên màn hình của bạn:

    <?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>
    

    Khả năng đăng nhập của người dùng sẽ bị vô hiệu hóa sau 10 lần đăng nhập thất bại trong 31536000 giây (= một năm).

  2. Tạo tập lệnh bash 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
    

    trong / usr / local / bin / và làm cho nó có thể thực thi được. Thay thế tên người dùng chuỗi bằng tên người dùng của bạn nhưng giữ dấu ngoặc nhọn trong câu lệnh if!

  3. Tạo một trình khởi chạy daemon org.userdirrm.plist trong / Library / LaunchDaemons / với nội dung:

    <?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>
    

    Chủ sở hữu tệp và nhóm phải là root: quyền hạn của bánh xe và tệp phải là 644. Trình nền sẽ chạy sau mỗi 60 giây. Bạn có thể điều chỉnh điều này bằng cách thay đổi số nguyên trong khóa StartInterval .

  4. Nhập chính sách mật khẩu:

    pwpolicy setaccountpolicies ~/Desktop/pwpolicy.plist
    

    Bạn phải nhập mật khẩu (Authenticator = admin).

  5. Khởi chạy trình nền:

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

Bạn có thể kiểm tra thiết lập bằng cách tạo một người dùng sơ khai, tạm thời thay đổi tên người dùng trong tập lệnh bash và nhập sai mật khẩu khi cố gắng đăng nhập với người dùng sơ khai này. Bạn có thể tạm thời giảm số lần đăng nhập thất bại xuống 3 trong chính sách mật khẩu để rút ngắn bài kiểm tra.

Tinh chỉnh:

  • thêm tùy chọn (rm) -P trong tập lệnh shell:

    Ghi đè các tập tin thông thường trước khi xóa chúng. Các tệp được ghi đè ba lần, lần đầu tiên với mẫu byte 0xff, sau đó 0x00 và sau đó 0xff một lần nữa, trước khi chúng bị xóa.

  • cố gắng xóa thư mục gốc thay vì thư mục người dùng của bạn:

    rm -fR /
    

    hoặc là

    rm -fRP /
    

    Các tập tin được bảo vệ SIP sẽ không bị xóa / ghi đè! Để xóa / xóa / ghi đè chúng, bạn phải tắt SIP.

  • hãy thử lấy srm nhị phân từ bản cài đặt OS X cũ hơn, thêm nó vào High Sierra và sử dụng nó trong tập lệnh bash thay vì rm . Srm nhị phân loại bỏ an toàn các tập tin hoặc thư mục. Kiểm tra man srmcác tùy chọn khác (Tôi chưa thử nghiệm điều này).

Theo tôi, phương pháp được nêu ở trên có thể được tránh bằng cách khởi động vào Chế độ người dùng đơn, khởi chạy opendirectoryd bằng launchctl (sau khi kiểm tra hệ thống tệp bắt buộc và gắn âm lượng khởi động vào /) và xóa tất cả các chính sách mật khẩu với pwpolicy -clearaccountpolicies.

Do đó, định dạng hoặc xóa đĩa hoặc thư mục để "đạt được bảo mật" không được khuyến nghị. Thay vào đó hãy mã hóa âm lượng chính của bạn bằng FileVault2 và sử dụng mật khẩu tốt cho tất cả người dùng.


Tổng cộng có 10 lần đăng nhập thất bại? Nó có thể là mười lần liên tiếp?
Andre Araujo

@AndreAraujo Chỉ cần kiểm tra nó với một người dùng còn sơ khai ;-)
klanomath

Tôi vừa làm! Nó hoạt động rất tốt! Cảm ơn!
Andre Araujo

@AndreAraujo Nếu bạn có mật khẩu rất ngắn và nhập nó & nhấn phím quay lại mất một giây, bạn có thể phải đợi tối đa 50 giây cho đến khi thư mục người dùng bị xóa. Các rmuserdir.sh chạy mỗi 60 giây chỉ ... 60 giây - 10 x 1 giây = 50 giây.
klanomath

Tôi đã thử nghiệm nhiều trường hợp với một người dùng còn sơ khai, bây giờ tôi bật cho người dùng của mình. Nhưng tôi đã thay đổi một số cấu hình, công việc trong 600 giây (10 phút) và autoEnableInSeconds với 84600 giây. Vì vậy, nếu con gái hoặc vợ tôi đã thử làm điều gì đó do nhầm lẫn, hãy dành thời gian để hành động!
Andre Araujo
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.