last riceve le informazioni da /var/run/utmpx , un file che registra sessioni utente, tty, arresti e riavvii sul sistema corrente. utmpx è un file binario, il che significa che non puoi utilizzare less o grep per leggerlo o cercare parole chiave.
Quindi per ottenere le informazioni sulla sessione dell'altro Mac, vogliamo last leggere /Volumes/1013/var/run/utmpx .
Sfortunatamente, last non può essere detto di leggere un file diverso da /var/run/utmpx , ma questo è dove chroot arriva in soccorso. chroot prende due argomenti, un percorso e un comando, imposta la directory radice percepita del comando sul percorso specificato e la esegue.
Nel nostro caso, questo è il comando di cui abbiamo bisogno (digitare la password di login quando richiesto):
sudo chroot /Volumes/1013/ last
Questo comando cambia la directory root in modo che punti a /Volumes/1013 in modo che quando last legge /var/run/utmpx , in realtà legge /Volumes/1013/var/run/utmpx .
Puoi passare le opzioni a last , se lo desideri, oppure reindirizzare l'output a grep per risultati più pertinenti, ad esempio:
sudo chroot /Volumes/1013/ last -10 | grep <some user>
Se il comando precedente non funziona (ad esempio, si verifica un errore di segmentazione), prova questo:
sudo chroot /Volumes/1013/ /Volumes/1013/usr/bin/last -10 | grep <some user>
cioè, esegui l'eseguibile dall'altro Mac.
Si noti che esiste un limite per quanto si può andare indietro con la versione macOS con entrambi i metodi.
Ad esempio, con macOS "Sierra" 10.12, last ha funzionato come previsto, mentre con OS X "Mavericks" 10.9, last stampa solo una riga e quindi si blocca. dtruss mostra che una grave incompatibilità è il motivo del blocco:
$ 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
Puoi superare questa limitazione collegando l'unità a un Mac con una versione precedente di macOS.
Per ulteriori informazioni su chroot , esegui man chroot in Terminale.