Linux

使用 SSH 和切換使用者進行文件傳輸

  • February 26, 2015

遇到 SCP 和 SFTP 無法解決的情況。我有 SSH 的 RTFM,但找不到我要找的東西。

場景是,為了將文件傳輸到伺服器,我首先將它們 SCP 到使用者目錄,然後使用受限使用者帳戶使用 SSH 登錄,SU 到 root,然後將文件移動到需要的位置。

因為伺服器不允許root登錄,有沒有辦法用SSH登錄,SU到root,從本地機器傳輸文件?

真的,我只是在尋找一種更有效的練習,然後像我一直在做的那樣來回走動。

另外,我會感謝註釋中指向 GUI 客戶端的任何連結,這些連結允許在 Mac 上執行此操作,以便我可以將文件從本地電腦拖放到適當的遠端目錄中。SFTP GUI 客戶端似乎是合乎邏輯的選擇,但所需的提升使用者權限會阻止它執行我需要的操作。

在您的本地系統上,創建您想要的框架。例如,如果要將文件複製foo到遠端位置/etc/foo,則需要創建一個etc目錄,然後放入foo其中。然後tar是骷髏。現在您可以按照@Anthon 在上述問題的評論中的建議通過 cron 執行此操作。

一步步:

在遠端主機上,創建如下腳本:

#!/bin/sh
DROP="/home/YOURUSERNAME/drop.tgz"
if [ ! -s "$DROP" ]; then exit 0; fi
cd /
tar -pzxf "$DROP" && rm "$DROP"

在遠端主機上,將該腳本添加到以 root 身份執行的 cron 作業中。

在本地主機上,創建骨架並填充要複製的文件:

mkdir -p etc
mkdir -p var/www
cp -a foo etc/
cp -a bar var/www/
tar -pzcf drop.tgz etc var
scp drop.tgz REMOTEHOST:
rm -rf drop.tgz etc var

drop.tgz在 root 的 cron 下次執行時提取。請注意,這將覆蓋您可能不喜歡的各種內容。

假設您只需要修改幾個文件,一個更安全的選擇是讓您的使用者帳戶對它們具有寫訪問權(chown或兩者兼而有之),chgrp然後chmod g+w您可以scp直接使用它們。

引用自:https://unix.stackexchange.com/questions/186827