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)