last
obtient ses informations de /var/run/utmpx
un fichier qui enregistre les sessions des utilisateurs et des tty, les arrêts et les redémarrages du système actuel. utmpx
est un fichier binaire, ce qui signifie que vous ne pouvez pas utiliser la fonction less
o grep
pour le lire ou rechercher des mots-clés.
Ainsi, pour obtenir les informations de session de l'autre Mac, nous voulons last
lire /Volumes/1013/var/run/utmpx
.
Malheureusement, last
ne peut pas être chargé de lire un fichier différent de celui de /var/run/utmpx
mais c'est là que chroot
vient à la rescousse. chroot
prend deux arguments, un chemin et une commande, définit le répertoire racine perçu de la commande sur le chemin spécifié et l'exécute.
Dans notre cas, c'est la commande dont nous avons besoin (tapez votre mot de passe de connexion lorsqu'on vous le demande) :
sudo chroot /Volumes/1013/ last
Cette commande modifie le répertoire racine pour qu'il pointe vers /Volumes/1013
de sorte que lorsque last
lit /var/run/utmpx
En réalité, il est écrit /Volumes/1013/var/run/utmpx
.
Vous pouvez passer des options à last
Si vous le souhaitez, vous pouvez également diriger la sortie vers grep
pour obtenir des résultats plus pertinents, par exemple :
sudo chroot /Volumes/1013/ last -10 | grep <some user>
Si la commande ci-dessus ne fonctionne pas (par exemple, vous obtenez une erreur de segmentation), essayez ceci :
sudo chroot /Volumes/1013/ /Volumes/1013/usr/bin/last -10 | grep <some user>
c'est-à-dire exécuter l'exécutable à partir de l'autre Mac.
Notez qu'il y a une limite à l'ancienneté de la version MacOS, quelle que soit la méthode utilisée.
Par exemple, avec MacOS "Sierra" 10.12, last
a fonctionné comme prévu, alors qu'avec OS X "Mavericks" 10.9, last
n'imprime qu'une ligne et se bloque. dtruss
montre qu'une incompatibilité grave est à l'origine du blocage :
$ sudo dtruss -p 39542
dtrace: system integrity protection is on, some features will not be available
SYSCALL(args) = return
dtrace: 3870 dynamic variable drops with non-empty dirty list
lseek(0x8, 0x4000, 0x0) = 16384 0
dtrace: error on enabled probe ID 2175 (ID 945: syscall::read_nocancel:return): invalid kernel access in action #12 at DIF offset 68
Vous pouvez contourner cette limitation en connectant le disque à un Mac exécutant une version plus ancienne de MacOS.
Pour plus d'informations sur chroot
, courir man chroot
dans le terminal.