用sed修改/ etc / sudoers

时间:2016-08-09 11:07:23

标签: sed

我尝试编写一个sed程序,在Defaults:user !requiretty的{​​{1}}行之后追加Defaults requiretty。我尝试了以下命令:

/etc/sudoers

这是正常的,但只有在'默认值'之间有4个空格。和' requiretty'。我想修改它以便使用任意数量的空格,所以我尝试了以下内容:

sudo sed -i '/Defaults    requiretty/a Defaults:user !requiretty' /etc/sudoers 

我检查了regexr上的模式并且没关系,但是命令仍然没有插入所需的行。为什么不呢?

2 个答案:

答案 0 :(得分:2)

试试这个;

sed '/Defaults.\s\s.requiretty/a Defaults:user !requiretty' /etc/sudoers

答案 1 :(得分:0)

根据Mustafa的回答,这是一种通过添加一些安全检查来做同样的事情的方法

SUDOER_TMP=$(mktemp)
cat /etc/sudoers > $SUDOER_TMP
sed -i -e 's/PATTERN/OUTPUT/' $SUDOER_TMP
visudo -c -f $SUDOER_TMP && \ # this will fail if the syntax is incorrect
    cat $SUDOER_TMP > /etc/sudoers
rm $SUDOER_TMP