【Linux】sudoコマンドをパスワード無しで実行できるようにする方法
今回はLinuxのsudoコマンドを実行した際にパスワード入力無しでそのまま実行させる設定方法を紹介します。
デフォルト状態でsudoコマンドを実行した場合
まずは、Linuxをインストールしてから何も変更を加えない状態のまま、一般ユーザ(今回はhayanaユーザ)でsudoコマンドを実行したらどのようになるかを試してみます。
例:rootユーザにスイッチするコマンド
$ sudo su
[sudo] hayana のパスワード:
上記の様にsudoコマンド実行時はユーザパスワード(今回はhayanaのユーザパスワード)を求められます。
これを毎回打つのは面倒くさいのでパスワード無しでsudoコマンドを実行できるように設定していきます。
sudoコマンドのパスワード要求を無効化する設定手順
パスワード無効化設定は/etc/sudoersファイルに記載します。
sudoersファイルを開く
まずは、以下のコマンドでsudoersファイルを開き、何が記載されているか確認しましょう。
sudo visudo
もしくは
vi /etc/sudoers ←非推奨
このsudoersファイルを壊したらsudoが使えなくなる可能性があります。
極端な話、記載ミスを絶対しないのであればviエディターでsudoersファイルを直接書き換えても問題はありません。
自身がない場合は「sudo visudo」でsudoersを編集しましょう。
以下はsudoersファイルの一部を抜粋したものです。
sudoコマンドを実行することが出来るユーザとグループが記載されています。
# User privilege specification
root ALL=(ALL:ALL) ALL
# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL
# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL
上記を見てみると、「root ALL=(ALL:ALL) ALL」との記載があり、これを超ざっくりに読み取ると「rootユーザはsudoコマンドを使えるよ」ということが書いてあります。
%adminと%sudoが記載されている行では、Ubuntuインストール時から用意されているadminグループとsudoグループにsudo使用権限が付与されている為、この2つの所属しているユーザはsudoコマンドを実行することが出来ます。
また、ユーザ「hayana」は元々sudoグループに属すように設定されています。
sudoersファイルにパスワード無効化を記載
sudoのパスワードを無効化するには各ユーザ、各グループ用に記載されている最後のALLの前に「NOPASSWD:」を付加するだけで完了します。
sudoをパスワード無しで実行するというのは、すべてのコマンドがパスワード無しで実行出来てしまうということなので、必要最低限の範囲に設定しましょう。
設定方法はユーザとグループのどちらも紹介しますが、余程の理由がない限りはユーザ単位での設定を推奨します。
単体ユーザにパスワード無しsudo権限を与える場合
<ユーザ名> ALL=(ALL:ALL) NOPASSWD: ALL
ユーザhayanaでは以下の様になります。
hayana ALL=(ALL:ALL) NOPASSWD: ALL
グループにパスワード無しsudo権限を与える場合
%<グループ名> ALL=(ALL:ALL) NOPASSWD: ALL
ユーザhayanaが所属しているsudoグループに設定する例では以下の様になります。
%sudo ALL=(ALL:ALL) NOPASSWD: ALL
設定対象のユーザからログアウト
sudoパスワード入力を無効化設定したユーザがログインされている状態のままだと、書き換え後のsudoersファイルが適用されていない状態なので、一度exitコマンドでログアウトします。
設定対象のユーザでログイン
再度ログインします。
設定対象のユーザがhayanaである場合はログイン用コマンドは以下のコマンドです。
su - hayana
sudoコマンドを実行してみる
sudoコマンドのテストとして以下のコマンドを使ってrootユーザに切り替えてみましょう。
hayana@ubuntu:~$ sudo su -
root@ubuntu:~#
ディスカッション
コメント一覧
まだ、コメントがありません