Это не ошибка, которую исправит обновление, а ошибка в вашей настройке. В sshd_config(5)
manpage говорится, что
AuthorizedKeysCommand
указывает программу, которая будет использоваться для поиска открытых ключей пользователя. Программа должна принадлежать root, не доступной для записи группой или другими и указана абсолютным путем.
Вам просто нужно убедиться, что /usr/bin/get_ldap_ssh_key.sh
удовлетворяет этим требованиям:
sudo chown root:root /usr/bin/get_ldap_ssh_key.sh
sudo chmod 755 /usr/bin/get_ldap_ssh_key.sh
Хотя вы могли:
awk "/$p/" file2.txt > "$p.csv"
То есть заставить оболочку расширить содержимое переменной оболочки $ p
в коде, переданном в awk
, это плохая практика и в основном сводится к уязвимости внедрения команд (например, для значения $ p
, например ^ / {system ("reboot"); /
). Лучше всего передать переменную оболочки как есть в awk и использовать оператор awk ~
для сопоставления регулярных выражений. Лучше всего использовать переменную окружения и специальный массив ENVIRON
в awk
:
export P
while IFS= read -r P; do
awk 'NR == 1 || $0 ~ ENVIRON["P"]' < file2.txt > "$P.csv"
done < file1.txt
Но здесь вы можете избежать цикла оболочки и выполнить только один проход в файлах:
awk 'NR == FNR {files[$0]; next}
FNR == 1 {for (f in files) print > f ".csv"; next}
{
for (f in files)
if ($0 ~ f) print > f ".csv"
}' file1.txt file2.txt