У меня есть эта конструкция в моем кукольном модуле, чтобы добавить строку в /etc/sudoers
после последней строки «По умолчанию»:
augeas { "sudoers.ssh_auth_sock":
объектив => "Sudoers.lns",
вкл => "/etc/sudoers",
onlyif => "соответствовать Defaults/env_keep/var[. = 'SSH_AUTH_SOCK'] size==0",
изменения => [
# Создаем новую строку Defaults для двух переменных
"Входит в значения по умолчанию после значения по умолчанию [последний ()]",
# Сделать эту строку по умолчанию типа +=
"очистить значения по умолчанию [last()]/env_keep/append",
# присвоить значения двум переменным
"установить значения по умолчанию [last()]/env_keep/var[1] SSH_AUTH_SOCK",
],
}
Он отлично работает на моих машинах RedHat 6.
Примечание: Augeas[sudoers.ssh_auth_sock](provider=augeas):
--- /etc/sudoers 2021-10-12 13:30:52.880901115 +0000
+++ /etc/sudoers.augnew 2021-10-12 13:31:28.697931561 +0000
@@ -77,6 +77,7 @@
# По умолчанию env_keep += "HOME"
По умолчанию secure_path = /sbin:/bin:/usr/sbin:/usr/bin
+ По умолчанию env_keep += SSH_AUTH_SOCK
## Далее идет основная часть: какие пользователи могут запускать какое программное обеспечение
Примечание: /Stage[main]/Sudoers/Augeas[sudoers.ssh_auth_sock]/returns: выполнено успешно
Но на моих машинах RedHat 7 это не работает:
Предупреждение: Augeas[sudoers.ssh_auth_sock](provider=augeas): сбой при загрузке одного или нескольких файлов, см. отладку для /augeas//вывода ошибок
Ошибка: /Stage[main]/Sudoers/Augeas[sudoers.ssh_auth_sock]: не удалось оценить: ошибка отправки команды 'ins' с параметрами ["Defaults", "after", "/files/etc/sudoers/Defaults[last( )]"]/Ошибка отправки команды 'ins' с параметрами ["Defaults", "after", "/files/etc/sudoers/Defaults[last()]"]
Может ли кто-нибудь помочь мне понять, что изменилось или что я сделал неправильно, чтобы я мог заставить этот фрагмент работать в обеих средах?