Визуализация для etc_security_lastlog

Чистый БАШ:

var="$(< file.txt)"
tmp="${var//[^\"]/}"
echo ${#tmp}
0
11.09.2019, 21:24
1 ответ

Вы можете подойти к этому с помощью простого awk-фильтра; просто передайте текущую метку времени и отсечку, которая вас интересует. Он будет анализировать ввод в поисках имен пользователей и их времени _последнего _значения входа в систему. Если он находит значение, которое старше отсечки, он сообщает соответствующему пользователю.

В приведенном ниже примере используется приблизительное значение 1 год (31 536 000 секунд ).

awk -v now=$(date +%s) -v cutoff=31536000 '
  /^[^-+@~ ][^:"#,=\\\/?` ]+:$/ { 
    user=$1
    sub(/:$/, "", user)
  }
  /time_last_login = [[:digit:]]+/ { 
    if (now - $3 > cutoff) print user " has not logged in within the cutoff"
  }
  ' /etc/security/lastlog

Регулярное выражение, которое я использовал для поиска имени пользователя, взято из документации mkuser . После захвата строки имени пользователя ()я удаляю завершающее двоеточие из имени пользователя.

0
28.01.2020, 03:18

Теги

Похожие вопросы