パスの変更

パスの変更

ユーザーが/bin/bashシェルを持ってい/etc/passwdて、ssh user@host commandBashを使ってコマンドを実行するとします。ただし、シェルはログインも操作もできません。つまり、ログインもソースも提供できない~/.bash_profileことを意味します~/.bashrc。この場合、PATH実行ファイルを見つけて実行できるように環境変数をどのように設定する必要がありますか?実際のコマンドの前にプレフィックスを付けることをお勧めしますsource ~/.bashrcか?


編集する。この問題は(人々が指摘したように)Bashにとってはマイナーな問題です。~/.bashrc はいこのような状況から来ています。最終的な回答は次の節にありますman bash

Bashは、リモートシェルデーモン(通常はrshd)またはセキュアシェルデーモンsshdによって実行されている場合など、ネットワーク接続に接続されている標準入力を使用して実行されていることを確認しようとします。bashこのように実行中であると判断された場合、~/.bashrcファイルが存在し、読み取れる場合はコマンドを読み込み実行します。として呼び出されると、これは行われませんsh。この--norcオプションを使用すると、この動作を抑制し、--rcfile他のファイルを強制的に読み取るために使用できます。ただし、rshdまたはsshdは通常、これらのオプションを使用してシェルを呼び出すか、指定を許可しません。

ベストアンサー1

いくつかの可能性があります:

  • PATHサーバーで設定します~/.ssh/environmentPermitUserEnvironment yes経由で有効にする必要がありますsshd_config)。
  • バイナリファイルのフルパスを使用してください。
  • 前述のように手動でsource .bashrc:コマンドの前に. ~/.bashrc(またはsource)を付けます。

どの方向に行くかは、ユースケースによって大きく異なります。

おすすめ記事