web-dev-qa-db-ja.com

CentOSサーバーにSSH接続するときのデフォルトパスを変更しますか?

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接続は非対話型シェルなので、とにかく違いはありませんか?).

前もって感謝します。

12
Ben

認証にPAMを使用している場合、これが最も可能性が高いです。ルートとして/etc/passwdに移動します。

ユーザー名とパスが表示されます。そこで変更すれば、あなたは家から解放されます!

編集-申し訳ありませんが、ホームフォルダーを変更したくない可能性があります。その場合は、単に次を追加します。

cd /home

.bashrcファイルの最後に!

14
stevie I

覚えておくべきことは、~/.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を設定することは役に立たないことにも注意してください(デフォルト)ホームパス。

4
Yarko