Ubuntu20.04 管理者権限(sudo)の設定
本記事では、管理者のユーザアカウントで管理者権限が必要なコマンドを実行する際に使う"sudo"コマンドを、パスワード入力なしで実行する設定を説明します。
関連記事
ベアボーンのミニPCを組み上げてみた
Ubuntu20.04 LTSのインストール
Ubuntu20.04 管理者権限(sudo)の設定(この記事)
Ubuntu20.04に固定IPアドレスを設定する
Ubuntu20.04 SSHサーバのインストール
Ubuntu20.04でリモートデスクトップ
1.sudoコマンドについて
Unix系のOSでは、ファイルの読み書きやプログラムの実行について、権限を厳密に管理しています。このため、システムの根幹を書き換えるようなコマンドを実行するには、管理者権限が必要となります。Unix系OSでは、rootアカウントを使えば、すべてのプログラムを実行できます。しかし、サーバの管理を共通のユーザアカウント(rootアカウント)で利用するのはセキュリティ上好ましくありません。したがって、Ubuntuでは、インストール初期設定でrootアカウントを利用できない設定になっています。
その代わり、インストール時に登録したアカウントは初期設定で"sudo"グループに所属しています。
sudoグループに所属しているユーザアカウントは、実行したいコマンドの前に"sudo"を追加することで管理者権限でコマンドを実行することができます。
例えば、ユーザアカウントを追加するadduserコマンドの実行は、管理者権限が必要です。したがって、このコマンドを実行するときは、前にsudoを追加して以下のように実行します。
$ sudo adduser test
自分のアカウントがsudoグループに所属しているかどうかは、groupsコマンドを使って確認できます。
$ groups ogs-digilife
ogs-digilife : ogs-digilife adm cdrom sudo dip plugdev kvm lpadmin lxd sambashare libvirt
groupsコマンドは、後ろで指定したユーザアカウントがどのグループに所属しているかの一覧を出力します。私のユーザアカウント(ogs-diglife)はいろいろなアプリケーションをインストールしてるので、いろいろなグループに所属していますが、ここで"sudo"と表示されたらsudoグループに所属していることになります。
2.パスワードなしでsudoコマンドを実行する方法
sudoコマンドを使ってプログラムを実行すると、毎回パスワードの入力が求められます。管理者権限が必要なコマンドを実行する度にパスワードを入力するのはとても面倒です。
そこで、パスワード入力なしにsudoコマンドを実行できるよう、visudoコマンドを使って設定を変更します。
$ sudo visudo
エディタ(nano)が起動し、sudoコマンドの設定ファイルが表示されます。最後の行に以下を追加します。ogs-digilifeは私のユーザアカウントなので、ここは自分のユーザアカウントで書き換えてください。
ogs-digilife ALL=NOPASSWD: ALL
追加したら、CTRL + Xでnanoエディタを終了させます。変更を保存するか聞いてくるので、"Y"を入力します。続いて、書き込むファイルのパスが表示されます。パスを書き換えずにそのままリターンキーを入力。これで設定ファイルの変更と保存が完了しました。
visudoコマンドで上記設定が追加されたユーザアカウントは、sudoコマンドをパスワード無しに実行することができるようになります。
sudoコマンドの設定ファイルのパスは、/etc/sudoersです。このファイルを直接編集して設定変更することもでいます。ただし、エラーチェックもやってくれるようなので、visudoコマンドを使って編集するようにしましょう。