我正在寻找从脚本修改文件。我可以bob
通过执行以下操作以用户身份 sudoedit 文件
sudoedit -u bob /foo/bar.conf
但无权以鲍勃身份做任何其他事情。
我碰到http://shadow-file.blogspot.com.au/2009/01/how-to-sudoedit-non-interactively.html这可能有效,但看起来很复杂。
有没有一些我缺少的简单方法可以做到这一点?
(如果您想知道,我正在尝试编辑 input.conf 文件,以在权限非常严格的 RHEL 主机上安装 Splunk Universal Forwarder)
答案1
基于上面关于使用ed
(和这个例子),我想出了以下内容
ED="/bin/ed"
CONTENT_TO_APPEND="Yay, config!"
##### Set editor #####
OLD_EDITOR=$EDITOR
export EDITOR=$ED;
##### Append using ed #####
echo "a
$CONTENT_TO_APPEND
.
w
q" | sudoedit -u bob /foo/bar.conf
##### Clean up #####
export EDITOR=$OLD_EDITOR