2016-04-14 3 views
1

私たちのサーバーのユーザーアカウントの設定には、セキュリティ上の理由から以下の制限があります。まず、ユーザーIDを持つサーバーにsshを実行し、 'raja'別のユーザーとして、 'dev'と言います。 「dev」ユーザーはすべてのチームメンバーに共通であり、すべてのサーバー操作はこのユーザーとして実行されます。ファイルパスの前のバックスラッシュの目的

私はこの作品

ssh -t uat4 'sudo -S -p "sudo password: " -u "dev" /bin/bash -l -c "tail -f \$HOME/application/log/uat.log"' 

、尾には、このコマンドを使用して、私のローカルマシンからのログ・ファイルをしようとしています。私は--show=debugフラグを使用して、このコマンドをPythonファブリックのsudo('tail -f $HOME/application/log/uat.log', user=dev)から取得しました。私は($ホームの前に)バックスラッシュせずにこのを実行しようとしました

しかし

ssh -t uat4 'sudo -S -p "sudo password: " -u "dev" /bin/bash -l -c "tail -f $HOME/application/log/uat.log"' 

のように私はこのエラーメッセージ

尾を取得しています: ` を開くことができません。 /home/raja/application/log/uat.log 'の読み取り: 許可が拒否されました

ma-retailmet-lapp04.corp.appへの接続le.comが閉鎖されました。

このコマンドのこのバックスラッシュの目的は何ですか。

答えて

1

escaping the characterとの違いですか?コンソールでecho "$HOME"echo "\$HOME"を試してみてください。

+0

お返事ありがとうございます。 '$ HOME' 'は私にパスを与え、' \ "$ HOME" 'はリテラル** $ HOME **を与えますが、私の場合は' $ HOME'変数がリモートユーザのホームパスに対して正しく評価されます。私はより詳細な質問を編集しました。これについてもっと詳しく教えていただけますか? – RajaRaviVarma

+3

'$ HOME'が' sudo'の前に評価された場合、 '$ HOME'は' dev'ユーザの '$ HOME'に展開されるのではなく、' sudo'を実行するユーザのものです。 – tripleee

+0

@ tripleeeありがとうございます。私はそれに注意を払わなかった。私はそれを受け入れることができるように答えとして投稿していただけますか? – RajaRaviVarma

関連する問題