Я новичок в сценариях. Мне нужно запланировать работу на нескольких серверах и вставить NOPASSWD в нужное место в файлах sudoers. Условия - пропуск строк, где присутствует PASSWD и колесо присутствует.
Я успешно с нижеприведенным awk извлекаю строки, соответствующие моему выражению, но с помощью sed я не могу вставить или заменить требуемое.
awk '($1 ~ "%" && !/PASSWD/ && !/wheel/) {print}' sudoers
Сед:
sed '/NOPASSWD/b; s/ALL\=\(ALL\)[[:space:]].* ALL/ALL\=\(ALL\)[[:space:]].*NOPASSWD\: ALL/g' sudoers
Не работает и также не помогает, если команды отличаются от ВСЕХ.
Существующие: -
%<<group 1>> ALL=(ALL) /bin/su - oracle12
%<<group 2>> ALL=(ALL) ALL
Ожидаемая: -
%<<group 1>> ALL=(ALL) NOPASSWD: /bin/su - oracle12
%<<group 2>> ALL=(ALL) NOPASSWD: ALL
Любая помощь высоко ценится. Если есть какая-либо другая тема, которая решает подобную проблему, перенаправьте меня.