В iOS есть возможность удалить с устройства все данные после 10 неудачных попыток входа в систему. Как я могу иметь ту же опцию в macOS, чтобы мой SSD удалялся/переформатировался после x неудачных попыток входа в мою учетную запись пользователя?
С помощью встроенных инструментов (и без использования внешних сервисов, таких как «Найти мой Mac» и «Удаленно стереть мой Mac» через iCloud) невозможно стереть или переформатировать загрузочный том diskutil ...
, потому что диск занят .
Однако вы можете удалить папку пользователя:
В приведенном ниже методе используется политика паролей, и в зависимости от состояния возможностей входа пользователя в систему демон запуска и сценарий bash, вызываемый демоном, удаляют папку пользователя.
Создайте plist политики паролей на рабочем столе:
<?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/ и сделать его исполняемым. Замените строку username на имя вашего пользователя, но оставьте угловые скобки в операторе if!
Создайте демон запуска 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>
Владелец файла и группа должны быть root:wheel, а права доступа к файлу должны быть 644. Демон будет запускаться каждые 60 секунд. Вы можете настроить это, изменив целое число в ключе StartInterval .
Импортируйте политику паролей:
pwpolicy setaccountpolicies ~/Desktop/pwpolicy.plist
Вы должны ввести свой (authenticator=admin) пароль.
Запустите демон:
sudo launchctl load /Library/LaunchDaemons/org.userdirrm.plist
Вы можете протестировать настройку, создав пользователя-заглушку, временно изменив имя пользователя в сценарии bash и введя неправильные пароли, пытаясь войти в систему с этим пользователем-заглушкой. Вы можете временно уменьшить количество неудачных попыток входа в систему до 3 в политике паролей, чтобы сократить время теста.
Настройки:
добавление опции (rm) -P в сценарий оболочки:
Перезаписывайте обычные файлы перед их удалением. Файлы перезаписываются три раза, сначала байтовым шаблоном 0xff, затем 0x00, а затем снова 0xff, прежде чем они будут удалены.
пытаясь удалить корневую папку вместо папки пользователя:
rm -fR /
или
rm -fRP /
Файлы, защищенные SIP, не будут удалены/перезаписаны! Чтобы удалить/удалить/перезаписать и их, необходимо отключить SIP.
man srm
дополнительные параметры (я не проверял это).На мой взгляд, описанный выше метод можно обойти, загрузившись в однопользовательском режиме, запустив opendirectoryd с помощью launchctl (после обязательной проверки файловой системы и монтирования загрузочного тома в /) и удалив все политики паролей с помощью pwpolicy -clearaccountpolicies
.
Поэтому не рекомендуется форматировать или стирать диски или папки для «повышения безопасности». Вместо этого зашифруйте свой основной том с помощью FileVault2 и используйте хорошие пароли для всех пользователей.
Андре Араужо
кланомат
Андре Араужо
кланомат
Андре Араужо
кланомат
Андре Араужо
кланомат
Андре Араужо