sudo で XXX is not in the sudoers file

sudo をやろうとして

XXX is not in the sudoers file

となってしまう時があった。

これはsudo group にユーザーXXXが追加されていないため。

どうやら何かのグループに追加する際にミスったようだ。

実は、usermodは今メンバーになっているグループ以外の別のグループに追加する場合は、今のメンバーになっているグループも同時に指定する必要がある。 言い換えると、追加したいグループを全部指定しないといけない。

自分の場合は、本来ならば

udo usermod -G staff,root,sudo,audio XXX

としないといけない。(上記ではrootも含めている。この辺りは各々のセキュリティ・ポリシーに応じて指定すれば良い。)

ネットで検索すると、sudoersファイルを編集する記事が多くヒットするが、少なくともDebianでは ユーザーをsudoグループに追加してあればsudoは使える。 つまり、そのようにsudoers が設定されている:

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL

sudoersは権限をより細かく設定できる。たとえば複数のユーザーで権限にランク分けしたい場合は、それぞれ設定できる。

だが通常はroot権限を使いたいので、sudo グループに登録するだけで良いケースがほとんどだろう。

なので、慣れないvisudoを使う必要はあんまり無いと思う。 Qiita で散見する「visudoでドキドキ編集」みたいな記事は微笑ましいが、目的からすると不必要なことをやっているので不正確な記事だ。 sudoersを良く読もうね。