2009年10月14日水曜日

NetWalkerでsudo ponのパスワード入力を省略

これだけ科学技術が発達してるのに何故... と思ってしまうのは朝コンタクトを入れようとして目にまつげが一本入っていた時が最高ですが、NetWalkerを使っていても結構そう感じる事があります。一番よくあるのは、インターネットに繋ごうとしてsudo ponを実行した時に、パスワードの入力を求められる事です。
NetWalkerは(というか、Ubuntuは)システム→設定→メインメニュー で、メニューに「sudo pon 設定名」とか入れておけばメニューから一発で接続実行出来ます。メニューを使えば、NetWalkerに対する取り組みというか没入度が緩いままで操作出来る。端末に目一杯顔を近づけて必死に入力していると周囲に壁を作りがちですが、だらっとしたメニュー操作ならその点Goodだと思います。しかし現実は厳しい、実際にはsudoのパスワードを入力しなければならないので接続がうまくいきません。その為、メニューアイテムの種類を「端末内で起動する」にして、実行時にパスワードが入力できるようにしないとつながりません。
既に一ヶ月近く毎回パスワードを入力しながら、これだけ科学が発達している時代になぜ... と唇を噛む毎日でした。

下に続きます。

ちょっと補足しますと、sudo実行でのパスワード入力は、一回入力するとしばらくの間キャッシュが効いて、sudoをまた実行してもパスワード入力が不要になっています。先に書いたメニューからの実行時でも再実行でキャッシュが効きます。意外と親切ですね。
あと、ppp接続するコマンド sudo pon 設定名 は、設定をデフォルト名称のままで作成すると、sudo ponだけで設定名省略で接続出来るそうです。参考にしたサイトには設定名はデフォルトのままをお勧めしますとはっきり書いてあったのですが、しっかり名前を付けてしまい設定しなおす気力もありません。たぶん、お勧めされなければ何も考えずデフォルトのままにしていたと思うのですが...

さて、本日会社を出るまでは毎回パスワードを入力していた訳ですが、それは何故かというと既に一回sudoのパスワード入力省略の設定に挑戦し、失敗していたからです。ここらへんの挑戦記は、前述のキャッシュのせいでぬか喜びしたり、結構書けそうな気がするのですが、なにぶん半月以上前の話なので、あまり憶えていません。そのうち誰かがどこかで説明してくれるだろうと、だだ待つだけの日々。そもそも余りにも基本的な事で、むしろ出来ない人の方がめずらしいという感じだったのでしょう。うまい解説が探し当てられません。
ところが、さっきまた検索して見つけたページhttp://hw001.gate01.com/kaie/sudo.html を見て電車の中で色々やってたら、なんか出来た気がする。でも、キャッシュかも... まぁ勘違いだったら謝って訂正すればいいや、アップしてみよう。と、ついにNetWalker初心者向けに解説してくれる人が現れたのです。いや、自分ですが。

それでは手順です。
端末でsudo visudo と実行すると、怪しいエディタが起動します(GNU nano? nanoって何かのちっちゃい判ってこと?)。使い方が判らないです。幸いフルスクリーンエディタでデフォルトがインサートモードになっているので、入力とバックスペースだけで編集して余計な操作をしなければ、全然判らなくても編集できます。大丈夫です。誰も見ていませんから。
私はこんな感じで編集しました。
最後の一行を追加しただけで、後はそのままです。(だと思います。たぶん。)

# /etc/sudoers
#
# This file MUST be edited with the 'visudo' command as root.
#
# See the man page for details on how to write a sudoers file.
#

Defaults env_reset

# Host alias specification

# User alias specification

# Cmnd alias specification

# User privilege specification
root ALL=(ALL) ALL

# Uncomment to allow members of group sudo to not need a password
# (Note that later entries override this, so you might need to move
# it further down)
# %sudo ALL=NOPASSWD: ALL

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

ALL ALL=NOPASSWD: /usr/bin/pon,/usr/bin/poff

説明すると一個目のALLはユーザーです。ここを特定のユーザーにしても効くのを確認しました。
つぎのALLはホスト名ですがこの場合気にしないで良いですよね。
=の後に(実行ユーザー)で実行ユーザーを書く様ですが省略でrootになるので省略します。
最後に、パスワード無しでsudo実行を許可するコマンドです。ここではpon poffの二つ。

ここで気付いたのですが、sudoersファイルに最初からある、「パスワード不要で実行するには」の、コメント例と、ほとんどそのまんまでは無いですか。なんで今まで設定出来なかったんでしょうか。不思議です。自分の頭の中をのぞいて見たいです。
私は、シャワーが壊れてぬるま湯しか出なくても、「お風呂沸かすからいいや...」と何年も放って置くような所がありまして、そういう所が関係しているのかもしれません。

さて、手順の追加でvisudoの補足をします。編集したらcontrol-oで保存し、control-xで終了です。中止はcontrol-xで保存しますかにN答える。
保存の時に拡張子がtmpの変なファイル名が出ますが、構文チェックされてから自動で反映する仕様なので、そのまま改行決定でOK。
なお、構文エラーがある場合はWhat now? と聞いてきますので、x改行で取り消し eで再編集です。qは強行なので押してはいけません。空改行押すと説明出ます。

さて、以上で快適なパスワード省略ライフを楽しんで頂ける事と思いますが、実はさっき書かなかった事があります。
手順の途中まで本文を書いて電車が八王子駅に到着した所で、ふとインターネット接続ponをやってみると...
? パスワード聞かれるじゃん!すみません。出来てませんでした。
このままだと、書いた文章が全部無駄になるよ... それから、かなり必死に試行錯誤して成功したのが上の設定です。
ほんと、なんで今まで出来なかったんだろ。やっぱやる気の問題ですかね?

4 件のコメント:

  1. 同じ状態になって、テキトウに検索して対応したので詳細がでてこないんですが、特定のグループIDを持った「dip」というグループを作って、そこに普段使用しているユーザーを追加したらsudoいらなくなりましたよ。
    未確認ですが「ユーザーの設定」で「ユーザーの権限」の「モデムを使って~」あたりをオンにしてもいけるかもしれません。

    返信削除
  2. Group ID 30でした。

    グループの管理で「新しいグループ」でグループ名を「dip」、グループIDを「30」で作成。その後、自分をそのグループに追加。いったんログインしなおしたほうがいいかもです。最初、グループIDを1001のままで作ってうまくいかなかった記憶があります。

    https://bugs.launchpad.net/ubuntu/+bug/278828/comments/5

    返信削除
  3. >>Nock Foragerさん
    ありがとうございます。
    dipユーザーでないとだめ!と言われて
    悔しい思いをしている人が、日本中にいっぱい居ると思います。
    あらたにグループ作れば良いとは驚きです。

    あと、初コメントを頂いて、なんかブログっぽくなった気分です。
    ありがとうございます。

    返信削除
  4. sudoersの設定について最終的に成功してるんですが、誤解を招きそう(失敗で一度落としてるので)だと気付いたので、最後の成功の文字をデカくしました。

    関係ないけど自分でつけたコメントが右のRecent Commentsガジェットに表示されないなーこれはbloggerいまいち。

    返信削除