週刊これは夢?!

それとも…。
すぐ忘れちゃうので備忘録用ブログ。
週1ペースで書くことを、ゆるい目標にしていました。

cannot open /etc/termcap

2014-02-05 | 電脳
最近、"su -m" で root になった後、"su -" をすると、次のエラーがでていた。
  csh: Cannot open /etc/termcap.
  csh: using dumb terminal settings.

なお、/etc/termcap は存在する。普通に読める。root権限で読めないというのは理解しにくい。

ログインするタイミングでエラーがでるので、シェル関連の設定に問題があるのだろうと予測。
同じような構成のマシンで、出るマシンとでないマシンがあるので、比較しながら調べてみた。

termcap なら xterm とかかなーとあたりをつけつつ、"su -" を実行した後、"evn" を見比べてみた。
 エラーの出ないマシン → TERM=xterm-256color
 エラーの出るマシン  → TERM=xterm-screen

/etc/termcap に xterm-256color の記述はあるが、xterm-screen の記述はない。
これが原因かな、と思い、もう少し調べてみる。

/root では環境変数などの設定を変更せず、FreeBSDをインストールしたままの状態にしている。
だから、rootでは xterm-256color の設定も xterm-screen の設定もない。

ログインユーザーのシェルの設定ファイルは次のように設定していた。
 エラーの出ないマシン → eval `tset -sQI xterm-256color`
 エラーの出るマシン  → eval `tset -sQI xterm-screen`

エラーの出るマシンの設定を、出ないものと同じものに変更したところ、エラーはでなくなった。

"su -" では、環境変数はすべてリセットされると思っていたため、気付くのが遅れた。
"man su" によると、TERM は "su -" をした時のユーザーのものが引き継がれるようだ。

※xterm-256color や xterm-screen は、terminal や emacs でカラー表示をさせるために試行錯誤した時に設定したものでした。
コメント