テキストエディタへの出力をスクリプト内で行う

スクリプト内でテキストエディタ等の出力を行う際edコマンドが役に立つかもしれないです edコマンドは行指向のテキストエディタなので行指定する必要があります

#EDITORを指定してあげないと動かないです 
EDITOR=ed visudo << 'EOC'
#最後の行ということです
$
a
#追加したい文字列
hogehoge ALL=(ALL) NOPASSWD:ALL
#終わる時にうつのでここでもうつ
.
#wqで保存
w
q
EOC

という形でEOCヒアドキュメントで入れてあげる形になります.
また visudo はsudo などの設定を決めることが出来ます。
直接は編集ができないので visudo というテキストエディタ?みたいなもので編集します。(本体は sudoers です)
またこのsudoers は chmod などでいじっても編集ができなさそうなのでvisudo経由で編集する必要があります。
ユーザーに関してどんな権限を与えるかなどを決めることが出来るのがsudoersです。