AIX 7 -Команда для проверки того, не заблокированы ли никогда не используемые учетные записи пользователей

Вы, безусловно, можете просмотреть импортированный atopфайл журнала на другой машине, на которой работает atop, так как atopработает в собственном двоичном формате, и каждый файл представляет собой самостоятельный -репозиторий/БД статистики.

Вы также можете увидеть это непосредственно с удаленной машины, выполняющей:

ssh remote_machine "sudo atop -r /var/log/atop/atop_20180904"

В конечном счете, если вы хотите отслеживать в журнале несколько серверов Unix, может быть более практичным на данный момент отслеживать их через SNMP с чем-то вроде Cacti .

2
09.06.2021, 18:04
1 ответ

Я бы адаптировал предыдущее решение к:

lsuser -C -a account_locked time_last_login id ALL | awk -F: '$4 > 100'

Это дает вам вывод, разделенный двоеточием -в форме:

#name:account_locked:time_last_login:id
abcdef:false:1517991441:1594
ghijkl:false:1466418488:3430
mnopqr:false:1437508829:1081
stuvwx:false::2393
yz:false::2616

Пустые поля указывают на отсутствие значения (, например, для поля «учетная запись _заблокирована» в последних двух ). Я оставил строку заголовка, чтобы можно было увидеть корреляцию с данными, но если вы хотите пропустить это, настройте скрипт awk, чтобы пропустить первую строку:

lsuser -C -a account_locked time_last_login id ALL | awk -F: 'NR > 1 && $4 > 100'

Если вы не хотите, чтобы UID отображались в отчете, настройте оператор awkтак, чтобы он печатал только первые три поля.:

lsuser -C -a account_locked time_last_login id ALL | awk -F: '$4 > 100 { print $1":"$2":"$3 }'

Чтобы окончательно ответить на вопрос, какие аккаунты не заблокированы и на которые ни разу не заходил:

lsuser -C -a account_locked time_last_login id ALL | awk -F: '$4 > 100 && $2 == "false" && $3 == "" { print $1 }'

Если вы действительно хотите начать с существующей команды, вы можете использовать ее для создания имен пользователей в качестве аргументов для lsuser, а затем использовать те же фильтры awk, что и выше:

for username in $(awk -F: '$3 > 100 { print $1 }' < /etc/passwd)
do
  lsuser -C -a account_locked time_last_login "$username" | awk -F: '$2 == "false" && $3 == "" { print $1 }'
done

Имена пользователей AIX не могут содержать пробелы, знаки табуляции или символы новой строки , так что если ваша переменная IFS настроена правильно, риск случайного разделения отсутствует.

2
28.07.2021, 11:26

Теги

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