Avec les outils embarqués (et sans utiliser de services externes comme "F diskutil ...
parce que le disque est occupé .
Vous pouvez cependant supprimer votre dossier utilisateur :
La méthode ci-dessous utilise une politique de mot de passe et selon l'état des capacités de connexion de l'utilisateur, un démon de lancement et un bash script invoqué par le démon supprimera le dossier de l'utilisateur.
-
Créez un plist de politique de mot de passe sur votre bureau :
<?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>
Les capacités de connexion de l'utilisateur seront désactivées après 10 tentatives de connexion infructueuses pendant 31536000 secondes (=un an).
-
Créer un 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
dans /usr/local/bin/ et le rendre exécutable. Remplacez la chaîne nom d'utilisateur avec le nom de votre utilisateur mais gardez les crochets dans l'instruction if !
-
Créer un démon de lancement org.userdirrm.plist dans /Library/LaunchDaemons/ avec le contenu :
<?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>
Le propriétaire et le groupe du fichier doivent être Root:wheel et les permissions du fichier doivent être 644. Le démon sera exécuté toutes les 60 secondes. Vous pouvez modifier ceci en changeant l'entier dans la clé StartInterval .
-
Importez la politique de mot de passe :
pwpolicy setaccountpolicies ~/Desktop/pwpolicy.plist
Vous devez entrer votre mot de passe (authenticator=admin).
-
Lancez le démon :
sudo launchctl load /Library/LaunchDaemons/org.userdirrm.plist
Vous pouvez tester la configuration en créant un utilisateur fictif, en changeant le nom d'utilisateur dans le bash script temporairement et en entrant des mots de passe erronés en essayant de se connecter avec cet utilisateur fictif. Vous pouvez réduire temporairement le nombre de tentatives de connexion échouées à 3 dans la politique de mot de passe pour raccourcir le test.
Des ajustements :
-
en ajoutant l'option (rm) -P dans le shell script :
Écraser les fichiers réguliers avant de les supprimer. Les fichiers sont écrasés trois fois, d'abord avec le motif d'octets 0xff, puis 0x00, et enfin 0xff à nouveau, avant d'être supprimés.
-
en essayant de supprimer le dossier racine au lieu de votre dossier utilisateur :
rm -fR /
ou
rm -fRP /
Les fichiers protégés par SIP ne seront pas supprimés/écrasés ! Pour les supprimer/supprimer/écrire également, vous devez désactiver SIP.
-
essayer d'obtenir le binaire srm d'une installation OS X plus ancienne, l'ajouter à High Sierra et l'utiliser dans le script de bash au lieu de rm . Le système binaire srm supprime en toute sécurité des fichiers ou des répertoires. Consultez man srm
pour d'autres options (je ne l'ai pas testé).
A mon avis, la méthode décrite ci-dessus peut être contournée en démarrant en mode utilisateur unique, en lançant l'opendirectoryd avec launchctl (après la vérification obligatoire du système de fichiers et le montage du volume de démarrage sur /) et en supprimant toutes les politiques de mot de passe avec pwpolicy -clearaccountpolicies
.
Il n'est donc pas recommandé de formater ou d'effacer des disques ou des dossiers pour "gagner en sécurité". Chiffrez plutôt votre volume principal avec FileVault2 et utilisez de bons mots de passe pour tous les utilisateurs.