maeshimaの日記

メモ書きです

sudo-ext.elがうまく動かない件

3ヶ月前にsudo-ext.elがうまくいかない><というエントリを書いたら、id:rubikitch さん、id:handlename さんからアドバイスをいただきました。ありがとうございます!!!

Macでsudo-ext.elを使う場合 - handlename::blog
sudo-ext.elがうまく動作しない場合の対処法 - (rubikitch loves (Emacs Ruby CUI Books))

アドバイスをみながら四苦八苦してみましたがどうにも動かないので、とりあえず状況を書いてみます(3ヶ月も遅れてすみません・・・)。

sudoersファイルを確認

/opt/local/etc/sudoer, /etc/sudoer 両方とも下記のようになっているのを確認。

##
## User privilege specification
##
root ALL=(ALL) ALL
%admin ALL=(ALL) ALL
maeshima ALL=(ALL) ALL

ターミナルで sudo -v と sudoedit を実行

両方とも普通に実行できる。

/Users/maeshima% sudo -v
Password:
/Users/maeshima% sudoedit /etc/passwd 
Waiting for Emacs...

emacs で M-x sudoedit

  1. 開くファイルを聞かれる
  2. ファイルを指定すると固まる
  3. 仕方ないので C-g するとパスワードを聞かれる
  4. パスワードを入れても何も起こらない

というような感じです。また、 C-g してもプロセスは残っている模様。

Proc        Status   Buffer      Tty          Command
----        ------   ------      ---          -------
sudoedit<2> run       *sudoedit* /dev/ttys004 sudoedit /etc/passwd
sudoedit<1> run       *sudoedit* /dev/ttys003 sudoedit /etc/passwd
sudoedit    run       *sudoedit* /dev/ttys001 sudoedit /etc/hosts

emacs で M-! sudo -v

M-x sudoedit した時と同じ挙動

emacs で M-! which sudo

なぜか M-x sudoedit した時と同じ挙動!?

sudo-extを読み込まない((require 'sudo-ext) をコメントアウト)するとミニバッファに /opt/local/bin/sudo と表示される。

感想

途中までは、emacsの環境とターミナルの環境が違っていてそれが原因なんだろうなーと思っていたのですが、なんとなく M-! which sudo としたら固まってよくわからなくなってきました。elispを最近少しずつ勉強しているので、もうちょい時間をおいてelispをいくらか読めるようになったら原因調査に乗り出したい。