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/environment
ssh