2016-04-14 40 views
1

我們的服務器中的用戶帳戶設置有以下限制(出於安全原因):首先,我必須用我的用戶標識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"' 

這工作。我從Python織物的sudo('tail -f $HOME/application/log/uat.log', user=dev)得到這個命令,使用--show=debug標誌。

但是,當我試圖做到這一點沒有反斜槓(在$ HOME前),像

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

如果在'sudo'之前評估'$ HOME',它不會擴展到用戶'dev'的'$ HOME',而是擴展到運行'sudo'的用戶。 – tripleee

+0

@tripleee謝謝。我沒有注意到這一點。你能把這個帖子作爲回答,以便我能接受嗎? – RajaRaviVarma

相關問題