На 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 та використовуйте хороші паролі для всіх користувачів.