解せぬ日記

雑な話をする

sudoers.pacnewを適用するぞ on Arch Linux

Arch Linuxはパッケージの更新をするときに、設定ファイルとかをxxx.conf.pacnewのような形で配置する。 例えば、mirrorlistとかsudoersとかってファイルが.pacnewになる。 これは勝手に上書きされないようにするための配慮だと思う。

んで、sudoersを更新するときにやらかしたので、一応メモしておく。

sudoersの更新

sudoのための設定ファイルであり、rootで管理されてて、visudoを使って更新するのが安全なんだけど、.pacnewの適用方法を間違うと悲惨なことになる。

好きなeditorを使ってvisudoを起動し、差分を見ながら更新するのが良さそう。

$ sudo EDITOR=vim visudo

# 差分をとる準備
:diffthis
# 新しいWindowを開く(水平)
:vnew
# .pacnewファイルを開く
:e /etc/sudoers.pacnew
# 差分を見ながら必要なものを取り込む
:diffthis

やらかした方法

mvとかボケて使うと詰む。 所有者はrootなので当たり前。

$ sudo mv /etc/sudoers /etc/sudoers.20141001
# エラーを見て、できるわけがない事に気付き、sudoが使えないので何もできなくなる
$ sudo mv /etc/sudoers.pacnew /etc/sudoers

やらかしたときの復旧方法

USBブートを行って、arch-chrootでファイルを復旧する。

$ mount /dev/sda6 /mnt
$ arch-chroot /mnt
$ mv /etc/sudoers.20141001 /etc/sudoers

まとめ

頭が悪すぎて辛い。