最近、"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 でカラー表示をさせるために試行錯誤した時に設定したものでした。
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 でカラー表示をさせるために試行錯誤した時に設定したものでした。