gpt4 book ai didi

sed - 将 NOPASSWD 字符串插入 sudoers 中不存在的正确位置

转载 作者:行者123 更新时间:2023-12-01 19:34:09 27 4
gpt4 key购买 nike

我是脚本新手。我需要在多个服务器上安排一个作业,并在 sudoers 文件的正确位置插入 NOPASSWD。条件是跳过存在 PASSWD 和存在 wheel 的行。

我使用下面的 awk 成功地提取了与我的表达式匹配的行,但是使用 sed,我无法插入或替换所需的行。

awk '($1 ~ "%" && !/PASSWD/ && !/wheel/) {print}' sudoers

种子:

sed '/NOPASSWD/b; s/ALL\=\(ALL\)[[:space:]].* ALL/ALL\=\(ALL\)[[:space:]].*NOPASSWD\: ALL/g' sudoers

如果命令与 ALL 不同,则不起作用,也无济于事。

现有的:-

%<<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

非常感谢任何帮助。如果有任何其他线程解决了类似问题,请重定向我。

最佳答案

您现有的 awk 命令稍作修改似乎可以工作:

$ awk '($1 ~ "%" && !/PASSWD/ && !/wheel/) {$2 = $2 FS "NOPASSWD:"; print }' sudoers

关于sed - 将 NOPASSWD 字符串插入 sudoers 中不存在的正确位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55530254/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com