CentOS 5.7 Webサーバーを使用していて、SSHを使用して接続するときに着地するデフォルトの場所を変更したい。
現在、/home/username
に着陸していますが、代わりに/home
に着陸したいと考えています。
私はrootとして入り、PermitUserEnvironment yes
を/etc/.ssh/sshd_config
に追加しました-そして私が理解しているように、ユーザー自身のssh
フォルダをenvironment
ファイルにスイープします。 export path=$PATH:$HOME
がここでも、.bashrcファイルまたは.bash_profileファイルでも機能していないように見えるので、私がこの環境ファイルに追加しているのは、正確にはわかりません。 SSH接続は非対話型シェルなので、とにかく違いはありませんか?).
前もって感謝します。
認証にPAMを使用している場合、これが最も可能性が高いです。ルートとして/etc/passwd
に移動します。
ユーザー名とパスが表示されます。そこで変更すれば、あなたは家から解放されます!
編集-申し訳ありませんが、ホームフォルダーを変更したくない可能性があります。その場合は、単に次を追加します。
cd /home
.bashrc
ファイルの最後に!
覚えておくべきことは、~/.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
シェルが起動するため、~/.ssh/rc
(~/.ssh/environment
が読み取られた後、ssh
シェルまたはコマンドの前に実行される)でCWDを設定することは役に立たないことにも注意してください(デフォルト)ホームパス。