我正在尝试编写一个sed程序,将Defaults:user !requiretty附加到/etc/sudoers中的Defaults requiretty行之后。我尝试了以下命令:
sudo sed -i '/Defaults requiretty/a Defaults:user !requiretty' /etc/sudoers 这是正常工作的,但只有当'Defaults‘和'requiretty’之间有4个空格时。我想修改它,以便使用任意数量的空格,所以我尝试了以下方法:
sudo sed -i '/Defaults\s+requiretty/a Defaults:user !requiretty' /etc/sudoers我在regexr上检查了模式,它没有问题,但是命令仍然没有插入所需的行。为什么不行?
发布于 2016-08-09 19:14:45
试试这个;
sed '/Defaults.\s\s.requiretty/a Defaults:user !requiretty' /etc/sudoers发布于 2018-10-23 07:10:24
根据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_TMPhttps://stackoverflow.com/questions/38849067
复制相似问题