Si vous n'avez pas déjà configuré vos préférences de sécurité pour exiger un mot de passe après une certaine période d'inactivité et/ou un écran de veille, il n'y a vraiment aucun avantage à obliger une connexion au début de la journée - cela a été vulnérable tout ce temps et le verrouiller à 6h00 du matin pour le déverrouiller à nouveau le reste de la journée rend la politique de sécurité inutile.
Mais, si vous souhaitez forcer un événement d'authentification chaque jour à 6h00, vous devrez faire ce qui suit:
Remarque sur les scripts/commandes terminal
-
Je vous encourage à les tester d'abord avant de les transmettre à launchd
. Tapez simplement la/les commande(s) dans Terminal pour voir si elles fonctionnent.
-
Vous devez rendre le script exécutable en utilisant la commande chmod +x
sinon cela ne fonctionnera pas du tout.
Utilisation de pmset
En supposant que vous avez activé "Exiger un mot de passe" après une certaine période d'inactivité après avoir verrouillé l'écran ou activé votre économiseur d'écran, vous pouvez utiliser la commande suivante dans un script bash pour mettre votre ordinateur en veille une fois par jour:
pmset sleepnow
Le script peut être enregistré dans ~/Library/Scripts
et peut être appelé comme vous le souhaitez. Utilisons sleep1.sh
pour cet exemple.
#!/bin/bash
#
/usr/bin/pmset sleepnow
Exécutez ce script et votre Mac se mettra immédiatement en veille, et si vous avez défini un mot de passe, une fois réveillé, il vous demandera un mot de passe en fonction de l'intervalle de temps que vous avez défini.
Utilisation de CGSession
Cela utilise le mécanisme de "Changement rapide d'utilisateur" pour verrouiller votre bureau. Vous pouvez le tester en émettant la commande suivante:
/System/Library/CoreServices/Menu\ Extras/User.menu/Contents/Resources/CGSession -suspend
Lorsque vous exécutez cette commande, votre bureau sera verrouillé et vous serez accueilli par un écran de connexion où vous devez sélectionner un utilisateur (si vous en avez plusieurs) ou saisir un nom d'utilisateur et un mot de passe.
Le script, comme dans l'exemple précédent, peut être enregistré dans ~/Library/Scripts
et peut également être appelé comme vous le souhaitez. Utilisons sleep2.sh
pour cet exemple.
#!/bin/bash
#
# Obtenir l'identifiant utilisateur
id=$(id -u
# Mettre le système en veille mais passer à l'utilisateur actuel
/System/Library/CoreServices/Menu\ Extras/User.menu/Contents/Resources/CGSession -suspend -switchToUserID $id
Remarque: Si vous prévoyez de le faire pour tous les utilisateurs connectés (si vous avez plusieurs utilisateurs sur votre machine), changez la ligne id
comme ceci:
id=$(id -u `whoami`)
Cela garantira que la commande utilise l'identifiant de l'utilisateur actuellement connecté.
Utilisation de launchd
pour exécuter ceci tous les jours
Pour que cela s'exécute chaque jour, nous devons avoir un démon qui le déclenche à une heure spécifiée. macOS dispose d'un tel outil appelé launchd
. Je donne plus de détails à ce sujet dans le billet Format plist de launchd pour exécuter une commande à un moment spécifique un jour de semaine. Cependant, pour nos besoins ici, nous utiliserons un .plist
basique pour lancer ce script chaque matin. J'aime utiliser la convention de nommage de fichier com.user.XXXX.plist
Remplacez "XXX" par ce que vous voulez, pour cet exemple, j'utilise com.user.lockmachine.plist
.
Assurez-vous également de référencer le script que vous prévoyez d'utiliser, script1.sh
ou script2.sh
Label
com.user.lockmachine
ProgramArguments
/Users//Library/Scripts/script1.sh
StartCalendarInterval
Hour
6
Minute
0
Comment souhaitez-vous exécuter ce démon?
L'emplacement du script est important. Consultez le billet lié pour plus de détails, mais décidez si vous voulez que ce soit juste pour vous ou pour tous les utilisateurs. Voici un résumé rapide:
- Juste pour vous - mettez-le dans
~/Library/LaunchAgents
- Pour tous les utilisateurs - mettez-le dans
/Library/LaunchAgents
Puis à partir du répertoire où vous avez placé le nouveau .plist
, chargez-le avec launchctl
sudo lauchctl load com.user.lockmachine.plist
Authentifiez-vous!
C'est terminé. Une fois par jour à 6h du matin, votre machine sera forcée de passer en veille ou de changer de session (selon le script que vous avez sélectionné) où vous serez obligé de vous authentifier. Il est inutile de le faire à la connexion ou au démarrage car si vous êtes si préoccupé par la sécurité, vous n'auriez pas activé la connexion automatique contournant l'authentification.