SSH その6
..
150:149
08/07/26 03:10:11
というわけで、一応自分なりにまとめといた
[問題点] OpenSSH-5.1p1のsshdを動かしているシステムに対し、
bashをログインシェルとするユーザがリモートから
ssh host command を実行した場合、~/.bashrcが読まれない。
OpenSSH-5.0p1までは~/.bashrcを読んでいた。
Linux, Solarisでこの現象を確認。
[解決法] session.cの427行目の#define USE_PIPESを
削除して再コンパイル。
[原因?] bashは、リモートからの実行だと判断すると~/.bashrcを
読む機能を備えるが、stdinに対するgetpeername()が失敗すると、
リモートからの実行だと判断せず、~/.bashrcを読まない。一方、
sshd側のsession.cに#define USE_PIPESがあると、後続の
do_exec_no_pty()でsetsockpair()が使われないため、シェルへの
stdinがネット直結にならない。このため、bashがstdinに対する
getpeername()を実行したとき失敗するので、~/.bashrcが読まれ
なくなる。
次ページ続きを表示1を表示最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5122日前に更新/219 KB
担当:undef