sudoの権限を設定するvisudoコマンド【Linuxコマンド集】

  • このエントリーをはてなブックマークに追加
  • Pocket

visudoはsudo権限を変更するためのコマンドだ。sudoersファイルを安全に編集するコマンドになる。

このページではvisudoコマンドについてまとめている。

sudoでの実行

Linuxでは例えばユーザーの追加や削除やプロセスの管理など、管理者以外が操作するとシステム運用にリスクを伴う。

そのため、Linuxシステムにとって重要なコマンドは、rootのような管理者だけが実行できるようにするのが一般的だ。

下記のページで詳しく解説している。

上記ページでも解説しているが一般ユーザでrootユーザしかできないような各種作業を使いたいときはsudoを使う。

もちろん自由にsudoできるわけではなく、sudoができるユーザなども細かく指定ができる。sudoersファイルはデフォルトでは/etc/sudoersを編集することになる。

visudoコマンドは管理者の権限でのみ操作できる。

visudoコマンドの基本

visudoコマンドを使うと設定ファイルが編集できる。viでファイルを指定してもいいのだが、visudoは簡単だ。

コマンドの基本動作

使い方は、次のとおりだ。

$ visudo

sudoersファイルを編集する場合は、次のコマンドだ。

visudoコマンド

すると、sudoersファイルを編集できるようになった。

sudoersファイルの設定

実際にvisudoコマンドの挙動を見ながら、sudoersファイルの編集方法を解説する。

まず、Linuxユーザーsnowは追加したばかりだ。passwdコマンドでパスワードを設定しただけの一般ユーザーで、sudoの権限はない。

snowユーザのままでuseraddコマンドを実行しようとしパスワードを入力しても、「snow is not in the sudoers file.  This incident will be reported.」というエラーが表示される。

visudoコマンド

追加したばかりのユーザーはsudoの権限がないのだ。

そこで、visudoコマンドでsudoersファイルを編集し、ユーザーsnowにもsudoの権限を付与する。

ファイル内に次のような設定が記述されている。

visudoコマンド

root ALL=(ALL) ALL

この「root    ALL=(ALL) ALL」の部分が権限になる。書式は「ユーザー ホスト=(誰々として) コマンドパス」だ。ALLの場合はすべてのコマンドを実行可能という意味になる。

「ホストtty7からアクセスしたユーザーsnowは、vagrantとして/usr/sbin/useraddコマンドをsudoで実行できる」という場合は次の設定になる。

snow tty7=(vagrant) /usr/sbin/useradd

ホストなどはALL(すべてOK)であることがほとんどだが、このようにも記述ができる。また、ユーザーは%を付与することでグループを指定することができる。

コマンドパス

指定するコマンドパスはwhichコマンドで調べたいコマンドを調べることでわかる。例えば、userdelコマンドのコマンドパスは次のコマンドでわかる。

$ which userdel

visudoコマンド

今回はsnowに対してsudoですべてのコマンドが実行できるようにする。

「root ALL=(ALL) ALL」の行の下に「snow ALL=(ALL) ALL」を入力する。

visudoコマンド

エディタを終了して、エラーメッセージが出なければ問題なくsudoersファイルの設定が適用されている。

visudoコマンド

再度、ユーザーsnowでsudoを使ってuseraddコマンドを実行してみる。

visudoコマンド

今度はエラーが出ずに実行できた。

編集時にエラーだった時の挙動

編集時にわざとsudoersファイルの最終行に「xxx」と入力し、保存、エディタを終了してみた。

visudoコマンド

エラーメッセージが表示され、どうするかの問い合わせがある。

この時、eのキーを押すと、再編集のためにエディタ画面に戻る。xのキーでは、編集を破棄し、編集前の状態が維持される。

問い合わせ時に、そのままEnterキーを押すと、上記の内容が表示されるので、忘れてしまった時は活用するとよいだろう。

visudoコマンド

パスワード入力の制御

sudoで実行した時のパスワード入力をしないように設定することもできる。

「ユーザー ホスト= NOPASSWD: コマンドパス」となり、すべての端末から/usr/sbin/useraddをユーザーsnowが実行した場合、パスワードを入力しなくてよくする設定は、「snow    ALL=NOPASSWD: /usr/sbin/useradd」となる。

visudoコマンド

visudoコマンドのオプションたち

オプションの一覧

後から詳細をご紹介するが、まずは一覧で見てみよう。

オプション-c

書式のチェックのみを行う。

オプション-q

編集後書式のエラー結果を表示しない。

オプション-s

厳密なチェックを行う。

オプション-f

sudoersのファイルを指定する。

-cオプション:書式のチェックのみを行う

書式のチェックのみを行うコマンドは次のとおりだ。

$ visudo -c

visudoコマンド

書式のチェックが表示され、正常であることが確認できた。

もし、ファイルが正常ではなかった場合は、エラー表示となる。

visudoコマンド

-qオプション:編集後書式のエラー結果を表示しない

編集後書式のエラー結果を表示しない書式は次のとおりだ。

$ visudo -q

visudoコマンド

わざと間違った書式で編集を終了したが、書式のエラー結果を表示しない。書式のエラー結果を表示しないだけでエラーのために再編集を促すメッセージは表示される。

-sオプション:厳密なチェックを行う

厳密なチェックを行いながら編集するコマンドは次のとおりだ。

$ visudo -s 

-fオプション:sudoersのファイルを指定する

sudoersのファイルを指定する書式は次のとおりだ。

$ visudo -f ファイルパス

例えば、sudoersのファイルを/tmp/sudoers_testに指定するコマンドは次のとおりだ。

$ visudo -f /tmp/sudoers_test

visudoコマンド

sudoersのファイルを指定しsudoersファイルを編集する。

visudo関連コマンド

最後にvisudoコマンドに関連して、基本的なsudo関連のコマンドも紹介しておく

suコマンド

ユーザーを切り替えログインするコマンドだ。

まとめ

このページでは、visudoコマンドについての解説と挙動と使い方を詳しく解説した。

それほど使うコマンドではないかもしれないが、初期環境を設定するときなどに活躍する。出番が来たら思い出していただければと思う。

  • このエントリーをはてなブックマークに追加
  • Pocket

このページの続きや関連ページは下記から一覧で確認できます。

IT講師に興味はありませんか?

・「今までIT講師をやってきたが、更に多くの講義を行いたい」

・「エンジニアとしてやってきたが講師業に魅力を感じている」

・「講師として活躍するためにベースとなる知識を知りたい」

・「様々な分野や言語の講師にチャレンジしてみたい」


という方はぜひIT講師募集のページをご覧ください。


リスキルテクノロジーでは「受講している方々にITを好きになってもらう」ことを目標に、同じ目標に向かって歩んで行ける講師の方を常に探しています。


システム開発やインフラ構築などのエンジニアリング経験を活かし、新入社員などの未経験者や経験の浅い初学者の方々に対してITトレーニングを行っていただくことになります。


テキストやカリキュラムは事前に用意されており、それらを元に講義を進めていくため、IT講師をはじめて実施する方でも安心してトレーニングを実施できます。


IT講師募集のページを見る

SNSでもご購読できます。

コメントを残す

*

未経験からの育成制度も充実
IT講師に興味はありませんか?

リスキルテクノロジーでIT講師の積極募集を開始! 経験・未経験問わずご応募可能。育成制度で講師スキル向上も目指せます

IT講師に応募する