На iOS є можливість змусити пристрій видалити всі дані після 10 невдалих спроб входу. Як я можу мати однаковий варіант на macOS, щоб мій SSD видалявся / реформувався після того, як x не вдалося ввійти в мій обліковий запис користувача?
На iOS є можливість змусити пристрій видалити всі дані після 10 невдалих спроб входу. Як я можу мати однаковий варіант на macOS, щоб мій SSD видалявся / реформувався після того, як x не вдалося ввійти в мій обліковий запис користувача?
Відповіді:
За допомогою вбудованих інструментів (і без використання зовнішніх служб, таких як "Знайти мій Mac" та "Видалити мій Mac віддалено" через iCloud) неможливо стерти або переформатувати об'єм завантаження, diskutil ...оскільки диск зайнятий .
Ви можете видалити свою папку користувача, хоча:
Наведений нижче метод використовує політику щодо паролів, і залежно від стану можливостей входу користувача, демон-запуск та сценарій bash, на який посилається демон, видалять папку користувача.
Створіть список робочих місць щодо політики паролів:
<?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 секунд (= один рік).
Створіть 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
в / usr / local / bin / та зроби його виконаним. Замініть ім'я користувача рядка на ім’я користувача, але утримуйте кутові дужки в операторі if!
Створіть запуск демона org.userdirrm.plist в / Бібліотеці / 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. Демон працюватиме кожні 60 секунд. Ви можете налаштувати це, змінивши ціле число в ключі StartInterval .
Імпорт політики щодо паролів:
pwpolicy setaccountpolicies ~/Desktop/pwpolicy.plist
Ви повинні ввести свій пароль (authentator = admin).
Запустіть демон:
sudo launchctl load /Library/LaunchDaemons/org.userdirrm.plist
Ви можете протестувати налаштування, створивши користувача-заглушки, тимчасово змінивши ім'я користувача у скрипті bash та ввівши неправильні паролі, намагаючись увійти в систему з цим користувачем. Ви можете тимчасово зменшити кількість невдалих спроб входу до 3 в політиці паролів, щоб скоротити тест.
Налаштування:
додавання параметра (rm) -P в сценарій оболонки:
Перезапишіть звичайні файли перед їх видаленням. Файли перезаписуються три рази, спочатку з байтовим малюнком 0xff, потім 0x00, а потім знову 0xff, перш ніж вони будуть видалені.
намагаючись видалити кореневу папку замість папки користувача:
rm -fR /
або
rm -fRP /
Файли, захищені SIP, не будуть видалені / перезаписані! Щоб їх також видалити / видалити / перезаписати, вам потрібно відключити SIP.
man srmподальші варіанти (я цього не перевіряв).На мою думку, описаний вище метод можна обійти, завантажившись в Single User Mode, запустивши opendirectoryd за допомогою startctl (після обов'язкової перевірки файлової системи та встановлення обсягу завантаження до /) та видалення всіх політик паролів pwpolicy -clearaccountpolicies.
Тому форматування чи стирання дисків чи папок для "забезпечення безпеки" не рекомендується. Замість цього зашифруйте основний об'єм за допомогою FileVault2 та використовуйте хороші паролі для всіх користувачів.