- PR -

ロケールがSJISのときログインシェルがcshだと正常にログインできない

1
投稿者投稿内容
morningsun
会議室デビュー日: 2008/10/01
投稿数: 2
投稿日時: 2008-10-01 17:31
いつもお世話になっております。

CentOS5を使っています。

もともとロケールをUTF8にしていたのをSJISに変えて、
ログインシェルがcshのユーザでログインしようとすると、UTF8では正常にログインできるのに、SJISだと正常にログインできません。

~user1/.cshrcを正常に読み込めていなくて、su - コマンド実行すると
~: イベントが見つかりません.
というエラーがでます。

わからないのはなぜログインシェルがcshで、かつロケールがSJISのときのみエラーがでるのか、どうすればエラーがなくなるのか、です。

ロケールSJISでもログインシェルbashのユーザでは正常にログインできますし、
ログインシェルcshのユーザでもロケールUTF8だと正常にログインできます。

OKWAVEでも同様の質問をしたところ、
「!~」演算子がロケールSJISの時のみ、ヒストリ展開になっているようなので、
違う書き方をすればいいのでは、という助言をいただきました。

そこで、
ログインシェルcshのログイン時に読み込まれるファイルで!~演算子を
使用している3ファイルの!~部分を書き換えました。

/etc/profile.d/krb5-workstation.csh
/etc/csh.login
/etc/profile.d/krb5-devel.csh

すると、~user1/.cshrcの途中まで読み込まれるようになりました。
~: イベントが見つかりません.のエラーは変わらずです。

途中まで、というのは
~user1/.cshrcにプロンプト指定のあとに環境変数設定を書いているのですが、
そのプロンプトは適用されるようになったのです。
環境変数設定はされていません。

長くなりましたが
どうかご教授のほどよろしくお願い致します。
morningsun
会議室デビュー日: 2008/10/01
投稿数: 2
投稿日時: 2008-10-03 18:24
CentOS5ではSJISがロケールのとき、チルダはご認識されるようです。
iconvでUTF8に変換したら、・~となりました。

ログインシェルがcshのユーザで正常にログインするために、
.cshrcの中で!~演算子を使っているファイルを読むとき

env LANG=C ファイルを読む部分〜

で解決するということを教えていただいたので
ご報告しておきます。
1

スキルアップ/キャリアアップ(JOB@IT)