0 votos

Convertir passwordLastSetTime al formato de fecha AAAA-MM-DD en MacOS Monterey

El siguiente código de Convertir passwordLastSetTime al formato de fecha AAAA-MM-DD funciona muy bien en máquinas MacOS Ventura para convertir la fecha de la última vez que se estableció la contraseña en una cuenta de usuario. Pero cuando se utiliza en máquinas MacOS Monterey no funciona. ¿Alguien puede ayudar?

#!/bin/bash
currUser=$(ls -l /dev/console | awk '{print $3}')
lastset=$(date -r $(sudo dscl . -read /Users/"$currUser" accountPolicyData | tail -n +2 |
plutil -extract passwordLastSetTime xml1 -o - -- - |
sed -n "s/<real>\([0-9]*\).*/\1/p") -I)
echo "<result>$lastset</result>"

1voto

Marc Wilson Puntos 146

He eliminado la invocación de sudo porque no veo ninguna razón para que esté ahí. Revisión:

#!/bin/bash
currUser=$(ls -l /dev/console | awk '{print $3}')
lastset=$(date -r $(dscl . -read /Users/"$currUser" accountPolicyData | tail -n +2 |
plutil -extract passwordLastSetTime xml1 -o - -- - |
sed -n "s/<real>\([0-9]*\).*/\1/p") -Iseconds)
echo "<result>$lastset</result>"

El error devuelto por date es obvio. Aparentemente o Ventura tiene un date o la vuelta de dscl es diferente.

$ bash testLastDate.sh 
<result>2022-10-30T19:09:44-07:00</result>
$ 

Edición: También he eliminado el intento de parsear ls con awk porque es una tontería. Eso es lo que whoami es para. También puede hacer referencia a $USER .

Me voy:

#!/bin/bash
lastset=$(date -r $(dscl . -read /Users/"$(whoami)" accountPolicyData | tail -n +2 |
plutil -extract passwordLastSetTime xml1 -o - -- - |
sed -n "s/<real>\([0-9]*\).*/\1/p") -Iseconds)
echo "<result>$lastset</result>"

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X