SSH経由でCentOSサーバーにログインするときのデフォルトパスを変更しますか?

SSH経由でCentOSサーバーにログインするときのデフォルトパスを変更しますか?

CentOS 5.7 Webサーバーがあり、SSHを使用して接続するときにログインするデフォルトの場所を変更したいと思います。

現在に着陸している/home/usernameのに着陸したいです/home

私はルートに入り、追加しましたPermitUserEnvironment yes/etc/.ssh/sshd_configこれは自分のsshフォルダからファイルを検索することを理解していますenvironment。不明なのは、この環境ファイルに何を追加しているかです。export path=$PATH:$HOMEここでは、.bashrcファイルまたは.bash_profileファイルでは動作しないようです(私の知る限りは動作しません)。違いがある)とにかくSSH接続は非対話型シェルですか? )。

よろしくお願いします。

答え1

認証にPAMを使用する場合、これはおそらく最も可能性が高いです。根を見てください/etc/passwd

そこからユーザー名とパスを見ることができます!そこで着替えて家に帰る準備ができました!

編集 - 申し訳ありません。ホームフォルダを変更したくないかもしれないと思いました。この場合は、以下を追加してください。

cd /home

ファイルの一番下に移動します.bashrc

答え2

~/.ssh/environmentシェルやコマンドが生成されるssh前に読み込まれるため、エクスポートや $PATH(例:) は意味がありません。ここでは環境変数のみを設定できます(通常のシェルコマンドは実行できません)。

非対話型SSHシェル環境を取得したら、それを変更すると、非対話型コマンドに必要なものを入手する必要があります。たとえば、

$ ssh mylogin@myserver env

これにより、サーバーはSSHの開始コンテンツを提供します。~/.ssh/environmentファイルを次のように書くと:

PATH=/usr/local/bin

上記のコマンドを再実行すると、「bash:env:コマンドが見つかりません」というメッセージが表示されます。いいね!

これでsshd、システムベース(最初の "ssh....env"呼び出し)に基づいてパスを明示的に構築します(たとえば、/usr/local/binヘッドに追加)。

PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

また、CWDを設定しようとすること(~/.ssh/rc読み取り後のシェルまたはコマンドの前に実行)は、シェルがホームパス(デフォルト)で開始されるため役に立ちません。~/.ssh/environmentssh

関連情報