С этой задачей может справиться небольшой awk-скрипт. Легко понять, прочитав руководство awk man.
#!/usr/bin/awk -f
BEGIN{got=0;linenum=0}
/ASDF/{printf ("%s ",$1); got=1;linenum=NR+1}
/TYSR/{printf ("%s ",$1); got=1;linenum=NR+1}
/WRTZ/{printf ("%s ",$1); got=1;linenum=NR+1}
/^[0-9]/{if ( ( got == 1 ) && ( linenum == NR) ) {
printf("%s\n",$1)
got=0
linenum=0
}}
Вывод будет таким:
./awk_script data_file
WRTZ 1287998798
ASDF 9408654860
TYSR 9809804090
ASDF 4950409808
Вы можете модифицировать его по своему усмотрению!
Я не эксперт по PAM, но это, вероятно, произойдет, потому что pam_unix
модуль аутентификации (локальная база данных пользователей:/etc/password
и/etc/shadow
)обращаются к модулю pam_winbind
(Samba/. Активный каталог ). Я смотрю на строки auth
в вашем /etc/pam.d/system-auth
и предполагаю, что system-auth
связан с password-auth
(, который /etc/pam.d/sshd
ссылается на ).
При входе в систему как пользователь AD pam_unix
не мог найти пользователя локально, поэтому PAM регистрировал ошибку аутентификации для этого модуля. Поскольку pam_unix
помечен как sufficient
, ненахождение пользователя локально не считается полным сбоем, поэтому PAM переходит к следующему модулю, в конечном итоге достигая pam_winbind
, который успешно аутентифицирует пользователя AD.
Я не знаю, как подавить только сообщение журнала, но теоретически вы можете изменить порядок строк модуля auth
так, чтобы pam_unix
считывался после pam_winbind
. Будет ли это хорошей идеей или нет на практике, необходимо оценить.
Конечно, конфигурация PAM очень чувствительна к безопасности, поэтому вы должны внимательно рассмотреть и изучить любые изменения и сначала тщательно протестировать их на -непроизводственной системе. Например, что произойдет, если служба Samba будет недоступна, а вам необходимо войти в систему как локальный пользователь? Как вписывается проверка pam_succeed_if.so uid >= 1000
? И так далее.