No iOS, existe a opção de o dispositivo excluir todos os dados após 10 tentativas falhas de login. Como posso ter a mesma opção no macOS para que meu SSD seja excluído / reformado após x tentativas falhas de fazer login na minha conta de usuário?
No iOS, existe a opção de o dispositivo excluir todos os dados após 10 tentativas falhas de login. Como posso ter a mesma opção no macOS para que meu SSD seja excluído / reformado após x tentativas falhas de fazer login na minha conta de usuário?
Respostas:
Com as ferramentas integradas (e sem o uso de serviços externos como "Localizar meu Mac" e "Apagar meu Mac remotamente" via iCloud), é impossível apagar ou reformatar o volume de inicialização diskutil ...
porque o disco está ocupado .
Você pode remover sua pasta de usuário:
O método abaixo usa uma política de senha e, dependendo do estado dos recursos de login do usuário, um daemon de inicialização e um script bash chamado pelo daemon removerão a pasta do usuário.
Crie uma lista de diretivas de senha na sua área de trabalho:
<?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>
Os recursos de login do usuário serão desativados após 10 tentativas falhas de login por 31536000 segundos (= um ano).
Crie um script 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
em / usr / local / bin / e torne-o executável. Substitua o nome de usuário da string pelo nome do usuário, mas mantenha os colchetes angulares na instrução if!
Crie um daemon de inicialização org.userdirrm.plist em / Library / LaunchDaemons / com o conteúdo:
<?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>
O proprietário e o grupo do arquivo devem ser raiz: as permissões de roda e arquivo devem ser 644. O daemon será executado a cada 60 segundos. Você pode ajustar isso alterando o número inteiro na chave StartInterval .
Importe a política de senha:
pwpolicy setaccountpolicies ~/Desktop/pwpolicy.plist
Você deve digitar sua senha (autenticador = admin).
Inicie o daemon:
sudo launchctl load /Library/LaunchDaemons/org.userdirrm.plist
Você pode testar a configuração criando um usuário stub, alterando o nome de usuário no script bash temporariamente e inserindo senhas erradas tentando efetuar login com esse usuário stub. Você pode diminuir temporariamente o número de tentativas de logon com falha para 3 na política de senha para diminuir o teste.
Ajustes:
adicionando a opção (rm) -P no script de shell:
Sobrescreva arquivos regulares antes de excluí-los. Os arquivos são substituídos três vezes, primeiro com o padrão de bytes 0xff, depois 0x00 e 0xff novamente, antes de serem excluídos.
tentando remover a pasta raiz em vez da sua pasta de usuário:
rm -fR /
ou
rm -fRP /
Os arquivos protegidos por SIP não serão removidos / substituídos! Para remover / excluir / substituí-los também, é necessário desativar o SIP.
man srm
há mais opções (não testei isso).Na minha opinião, o método descrito acima pode ser contornado, inicializando no modo de usuário único, iniciando o opendirectoryd com o launchctl (após o sistema de arquivos obrigatório, verifique e monte o volume de inicialização em /) e remova todas as políticas de senha com pwpolicy -clearaccountpolicies
.
Portanto, formatar ou apagar discos ou pastas para "obter segurança" não é recomendado. Em vez disso, criptografe seu volume principal com o FileVault2 e use boas senhas para todos os usuários.