web-dev-qa-db-ja.com

スクリプトでのsudoeditの使用(非対話型)

スクリプトからファイルを変更しようとしています。ファイルをbobユーザーとしてsudoeditすることができます。

sudoedit -u bob /foo/bar.conf

しかし、ボブとして他のことをする権利はありません。

私は http://shadow-file.blogspot.com.au/2009/01/how-to-sudoedit-non-interactively.html に出くわしました。これはうまくいくかもしれませんが、複雑に思えます。

私が見逃しているこれを行うための簡単な方法はありますか?

(不思議に思うかもしれませんが、非常に制限された権限を持つRHELホストにインストールするSplunk Universal Forwarderのinputs.confファイルを編集しようとしています)

3
mdjnewman

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
3
mdjnewman