無能が苦悩したメモ

無能な著者が学んだことを忘れないための覚え書きです...

Ubuntu:管理者権限でのコマンド実行

*本記事はUbuntu 18.04LTSでの設定を想定しています

suコマンドが使えない

OSインストール直後のUbuntuでsuコマンドを実行すると以下のような結果になり、rootユーザーになれない。Ubuntuではデフォルトでrootユーザーのパスワードが設定されていないため、それが原因らしいです。

muknow@Ubuntu18:~$ su
Password: 
su: Authentication failure

新規ユーザーでsudoを使えるようにする

adduserコマンドやuseraddコマンドを使うことで新規にユーザーを作成できます。

muknow@Ubuntu18:~$ sudo adduser test1

しかし、新規ユーザーにおいてsudo権限でコマンドを実行しようとしてもできません。

test1@Ubuntu18:~$ sudo adduser test2
[sudo] password for test1: 
test1 is not in the sudoers file.  This incident will be reported.

上の出力では「test1はsudoresファイルに記載がない」と怒られています。sudoコマンドを実行するためには/etc/sudoresファイルを編集して、ユーザーに権限を付与しなければならないのです。なお、編集は直接sudoresを書き換えるのではなく、visudoというsudoresを編集する専用のコマンドを使います。


ただ、sudoresを編集せずとも、ユーザーをsudoグループに追加すればsudoコマンドを実行できるようになります。sudoグループはデフォルトで作成されており、sudoresファイル内にもsudoグループに関する設定が記載されています。ちなみに設定の意味は「sudoグループに属するユーザーは、他のすべてのユーザー権限・グループ権限で、すべてのコマンドを実行できる」といった感じです。

muknow@Ubuntu18:~$ sudo cat /etc/sudoers
  (省略)
# Allow members of group sudo to execute any command
%sudo	ALL=(ALL:ALL) ALL
  (省略)

ユーザーをグループに追加するにはgpasswdコマンドを使用します。-aオプションがグループに追加するためのオプションです。

muknow@Ubuntu18:~$ sudo gpasswd -a test1 sudo
Adding user test1 to group sudo

idコマンドを実行するとtest1がsudoグループに属していることが確認できます。

muknow@Ubuntu18:~$ id test1
uid=1003(test1) gid=1004(test1) groups=1004(test1),27(sudo)