sudo にハマってしまいました

最近の Linux で定番となったディストリビューションの Ubuntu ですが、一般ユーザーで作業している時に root 権限で作業する場面は時々発生しますよね。その時に 1コマンドだけを実行するには sudo コマンドを使用するわけです。使う場面としては、例えば一時的にパーティションをマウントしたり、マウントを解除したり、新しいディレクトリを生成したりと、一般的な作業で日常的に発生する頻度の高い作業です。
sudo コマンドを実行するときに、一般的にはログインしている一般ユーザーのパスワードで認証するのですが、パスワードを省略して作業したい場合もあります。問題としてはデスクトップを放置している場合に他人が操作するセキュリティですが、それよりも深刻なのはシェルの連続動作中に root 権限を必要とするコマンドを利用しなければならないケースです。この場合はパスワードの入力を求められて、対応できなくて異常終了してしまう等の結果になることが多く救いようがなくなります。
sudo コマンドの動作の振る舞いを定義するのは、/etc/sudoers ファイルですが、これを直接編集して問題を起こすと取り返しのつかない問題になるらしく、冒頭のコメントに ‘# This file MUST be edited with the ‘visudo’ command as root.’ と書かれています。
実は昔から私は一般ユーザー(自分のユーザー権限)の作業中に決まったルーチンで、ネットワークで接続しているサーバーに、データを転送したりバックアップするようなことを行っていました。この場合に mount コマンドで一時的に接続したり、umount コマンドで開放したりを動的に実行していました。場合によっては rsync コマンドでデータ転送も行っていましたが、ここで出てくるのが sudo コマンドです。ところが Ubuntu 14.04LTS から Ubuntu 16.04LTS にバージョンアップしてからパスワードを要求されるようになりました。
原因がわからずにしばらく悩む結果となりました。 sudo のセキュリティがアップされて、認証の仕様が変わったのだと思い込んでいました。今までは、NOPASSWD: のキーワードを付けて、パスワード無しで実行できていました。今でも同様の構文が記述されているにもかかわらず何故かパスワードを求められます。/etc/sudoers ファイルに記述された構文や構成要素の意味がわからず手探りでマニュアルを探していました。
ついに日本語のマニュアルを見付けました。もっともそのマニュアルを見ても表現が今ひとつ理解しづらいのですが、でも構文の使用例が多めに載せてあって何となく言おうとすることが理解できるような気になってしまいます。その内容の中に 『複数のエントリがマ ッチする場合は、順番に適用される。矛盾する値がある場合は、マッチする行の最後の値が効果を持つ。』 と書かれていました。これって同じ構文でも順序が大きく影響すると書いてますよね。 …そうでした。構成要素の最後に NOPASSWD: の定義がある構文を移動したらパスワードを求められなくなりました。
知らない、理解していない…って何をするかわからないですよね。改めて自分の知識の無さに情けなさを感じるというか、ある意味怖いですよね。何となく /etc/sudoers ファイルの構文の意味やファイルの構成順に関して少し理解できるようになりました。
最近になって解決したばっかりの問題で、無駄な時間を潰してしまった失敗談です。