LoginSignup
10
7

More than 5 years have passed since last update.

sudoersをsedで編集する

Last updated at Posted at 2018-05-22

ネタ元

この記事の内容はstackoverflowのHow do I edit /etc/sudoers from a script?への回答を参考にした。

動機

sudoの設定ファイルであるsudoersはvisudoで編集するのがお作法。でも既存の設定をsedでちょこっと編集したい時もある。単なるアンコメントとか、スクリプトから編集したいときとか。

良くない例

直接sudoersを編集しちゃうこともできるがややお行儀が悪い。

# sed -i '' -e '/%wheel ALL=(ALL) ALL/s/^# //' /usr/local/etc/sudoers

構文チェックだけならvisudo -cで後からチェックすることもできるが、同時に編集されてしまう可能性は排除できない。

良い例

EDITOR=teeを指定すればsudoersが標準入力と置換される。標準出力にもまるまる出てくるけれど、それは/dev/nullに捨ててしまえば良い。

# sed -e '/%wheel ALL=(ALL) ALL/s/^# //' /usr/local/etc/sudoers | EDITOR=tee visudo >/dev/null

ちなみに構文エラーがあれば、標準エラー出力にその旨表示される。

おまけ

sudoersに追加したいだけならEDITOR='tee -a'が使える。ネタ元の回答はこれ。

# echo "%wheel ALL=(ALL) ALL" | EDITOR='tee -a' visudo >/dev/null
10
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
7