我正在尝试通过shell脚本评论/etc/sudoers
中的一行。
这是我想编辑的相关行:
# grep '\!requiretty' /etc/sudoers
Defaults:nagios !requiretty
但似乎我与sed
一起使用的模式不正确,我的尝试:
# sed -i 's/^Defaults\:nagios$/#Defaults:nagios !requiretty/g' /etc/sudoers
# sed -i 's/^Defaults:nagios$/#Defaults:nagios !requiretty/g' /etc/sudoers
# sed -i 's/^Defaults:nagios$/#Defaults:nagios !requiretty/g' /etc/sudoers
# sed -i 's/^Defaults:nagios$/\#Defaults:nagios !requiretty/g' /etc/sudoers
# sed -i 's/^Defaults:nagios$/\#Defaults:nagios \!requiretty/g' /etc/sudoers
# sed -i 's/^Defaults:nagios$/^#Defaults:nagios !requiretty/g' /etc/sudoers
# sed -i 's/^Defaults\:nagios$/^#Defaults:nagios !requiretty/g' /etc/sudoers
# sed -i 's/^Defaults\:nagios$/#Defaults:nagios \!requiretty/g' /etc/sudoers
以上都没有工作......
有人可以帮助我使用正确的正则表达式吗?
提前致谢
答案 0 :(得分:1)
嗯...... sudoers
并不意味着任何人都可写 - 甚至是root。出于安全原因,您应该使用visudo
命令对其进行编辑。
我认为你可能会倒退,因为sed
替换的第一部分是 find 。第二部分是替代品。所以你想要做的事情如下:
sed -i 's/^Defaults:nagios !requiretty$/#Defaults:nagios/'
这也将删除requiretty
。如果你想要的只是添加你可以做的#
:
sed -i 's/^Defaults:nagios !requiretty$/#&/'