首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用sed修改/etc/sudoers

使用sed修改/etc/sudoers
EN

Stack Overflow用户
提问于 2016-08-09 19:07:23
回答 2查看 1.7K关注 0票数 1

我正在尝试编写一个sed程序,将Defaults:user !requiretty附加到/etc/sudoers中的Defaults requiretty行之后。我尝试了以下命令:

代码语言:javascript
复制
sudo sed -i '/Defaults    requiretty/a Defaults:user !requiretty' /etc/sudoers 

这是正常工作的,但只有当'Defaults‘和'requiretty’之间有4个空格时。我想修改它,以便使用任意数量的空格,所以我尝试了以下方法:

代码语言:javascript
复制
sudo sed -i '/Defaults\s+requiretty/a Defaults:user !requiretty' /etc/sudoers

我在regexr上检查了模式,它没有问题,但是命令仍然没有插入所需的行。为什么不行?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-08-09 19:14:45

试试这个;

代码语言:javascript
复制
sed '/Defaults.\s\s.requiretty/a Defaults:user !requiretty' /etc/sudoers
票数 2
EN

Stack Overflow用户

发布于 2018-10-23 07:10:24

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

代码语言:javascript
复制
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
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38849067

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档