Apakah ada cara untuk memformat / menghapus SSD saya secara otomatis setelah upaya login gagal x?


9

Di iOS ada opsi untuk membuat perangkat menghapus semua data setelah 10 upaya login gagal. Bagaimana saya bisa memiliki opsi yang sama pada macOS sehingga SSD saya dihapus / direformasi setelah x gagal mencoba masuk ke akun pengguna saya?

Jawaban:


6

Dengan alat bawaan (dan tanpa menggunakan layanan eksternal seperti "Temukan Mac saya" & "Hapus Mac saya dari jarak jauh" melalui iCloud) tidak mungkin untuk menghapus atau memformat ulang volume boot dengan diskutil ...karena disk sedang sibuk .


Anda dapat menghapus folder pengguna Anda:

Metode di bawah ini menggunakan kebijakan kata sandi dan tergantung pada keadaan kemampuan login pengguna, daemon peluncuran dan skrip bash yang dipanggil oleh daemon akan menghapus folder pengguna.

  1. Buat daftar kebijakan kata sandi di desktop Anda:

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

    Kemampuan login pengguna akan dinonaktifkan setelah 10 upaya login yang gagal selama 31536000 detik (= satu tahun).

  2. Buat skrip 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
    

    di / usr / local / bin / dan membuatnya bisa dieksekusi. Ganti nama pengguna string dengan nama pengguna Anda tetapi pertahankan kurung sudut pada pernyataan if!

  3. Buat daemon launch.userdirrm.plist di / Library / LaunchDaemons / dengan konten:

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

    Pemilik dan grup file harus di-root: izin roda dan file harus 644. Daemon akan berjalan setiap 60 detik. Anda dapat men-tweak ini dengan mengubah bilangan bulat di tombol StartInterval .

  4. Impor kebijakan kata sandi:

    pwpolicy setaccountpolicies ~/Desktop/pwpolicy.plist
    

    Anda harus memasukkan kata sandi (authenticator = admin) Anda.

  5. Luncurkan daemon:

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

Anda dapat menguji pengaturan dengan membuat pengguna rintisan, mengubah nama pengguna di skrip bash sementara dan memasukkan kata sandi yang salah mencoba masuk dengan pengguna rintisan ini. Anda dapat menurunkan jumlah percobaan gagal masuk ke 3 dalam kebijakan kata sandi sementara untuk mempersingkat pengujian.

Tweaks:

  • menambahkan opsi (rm) -P dalam skrip shell:

    Timpa file biasa sebelum menghapusnya. File ditimpa tiga kali, pertama dengan pola byte 0xff, lalu 0x00, dan kemudian 0xff lagi, sebelum dihapus.

  • mencoba menghapus folder root alih-alih folder pengguna Anda:

    rm -fR /
    

    atau

    rm -fRP /
    

    File yang dilindungi SIP tidak akan dihapus / ditimpa! Untuk menghapus / menghapus / menimpa mereka juga, Anda harus menonaktifkan SIP.

  • cobalah untuk mendapatkan binary srm dari install OS X yang lebih lama, tambahkan ke High Sierra dan gunakan dalam bash script sebagai ganti rm . Binary srm menghapus file atau direktori dengan aman. Periksa man srmopsi lebih lanjut (Saya belum menguji ini).

Menurut pendapat saya metode yang dijelaskan di atas dapat dicegah dengan mem-boot ke Mode Pengguna Tunggal, meluncurkan opendirectoryd dengan launchctl (setelah sistem file wajib memeriksa dan memasang volume boot ke /) dan menghapus semua kebijakan kata sandi dengan pwpolicy -clearaccountpolicies.

Oleh karena itu memformat atau menghapus disk atau folder untuk "mendapatkan keamanan" tidak dianjurkan. Alih-alih mengenkripsi volume utama Anda dengan FileVault2 dan gunakan kata sandi yang baik untuk semua pengguna.


10 upaya login gagal total? Mungkinkah itu sepuluh kali berturut-turut?
Andre Araujo

@AndreAraujo Cukup mengujinya dengan pengguna rintisan ;-)
klanomath

Saya baru saja melakukannya! Ini bekerja dengan sangat baik! Terima kasih!
Andre Araujo

@AndreAraujo Jika Anda memiliki passwort yang sangat singkat dan memasukkannya & menekan tombol kembali membutuhkan waktu satu detik, Anda mungkin harus menunggu hingga 50 detik hingga folder pengguna dihapus. The rmuserdir.sh berjalan setiap 60 detik saja ... dan 60 detik - 10 x 1 detik = 50 detik.
klanomath

Saya menguji banyak kasus dengan pengguna rintisan, sekarang saya menghidupkan untuk pengguna saya. Tapi saya mengubah beberapa konfigurasi, bekerja dalam 600 detik (10 menit) dan autoEnableInSeconds dengan 84600 detik. Jadi, jika putri saya atau istri saya mencoba sesuatu secara tidak sengaja, ada waktu untuk bertindak!
Andre Araujo
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.