シェルと.profile、.bash_profile、.bashrcに関する質問

シェルと.profile、.bash_profile、.bashrcに関する質問

私はaix 7.1を使用しており、私のシェルはbashです。

  • もし私がするなら
    ssh ibmunix 
    gqlplus  user/pass
    
    すべてがうまく機能しgqlplus始めます。gqlplus点灯/opt/freeware/bin
  • 他のマシンで行うと
    ssh ibmunix "gqlplus  user/pass"
    
    エラーメッセージが表示されます
    gqlplus: command not found
    
  • もし私がするなら
    ssh -t  ibmunix "source .bash_profile; gqlplus  user/pass"
    
    良い結果。

問題は、ssh自動的に読むことができるかどうかです.bash_profile

ベストアンサー1

まず、あなたの環境でsshd_configを有効にするソリューションを見つけました。

PermitUserEnvironment yes

次に、$HOME/.ssh/environmentを編集し、PATHと必要なものを入力します。

$HOME/.ssh/environment ファイルには、良い環境ファイルの内容など、変数や説明以外の内容を含めることはできません。

HOME=/home/user
PATH=$PATH:/opt/freeware/sbin:/bin:/opt/freeware/bin:/usr/bin:/sbin:/usr/sbin

無効な環境ファイルの内容

source $HOME/.profile
export PATH=$PATH:/usr/bin

権限も変更する必要があります。それ以外の場合は動作しません。正しい権限は.sshの場合は0700、.ssh/environmentの場合は0400です。

ls -lhd .ssh/
drwx------ 2 username username 4,0K nov  4 16:29 .ssh//
ls -lhd .ssh/environment
-r-------- 1 username username 73 nov  4 16:29 .ssh/environment

利用できる証拠。 Linux では sed_64 コマンドは存在せず、Ibmaix リモート・システムの /opt/freeware/bin ディレクトリーにあります。

ssh linuxmachine sed_64
bash: sed_64: command not found

ssh remoteaix sed_64
Usage: sed_64 [OPTION]... {script-only-if-no-other-script} [input-file]...

  -n, --quiet, --silent
                 suppress automatic printing of pattern space
  -e script, --expression=script

.....

警告:sshを使用すると、.bashrcおよび.bash_profileの前に.ssh / environmentを読み取るため、正しいパスを入力しないと、.bash_profile、.bashrcに正しいパスが設定されていてもいくつかのコマンドが見つかりません。

警告:この設定は家庭の個人的な環境でのみ安全で、生産/重大な場所では使用できません。 PermitUserEnvironmentオプションを使用すると、すべてのユーザーがログインシェルとForcedCommandをバイパスできるためです。

おすすめ記事