Linux
使用 SSH 和切換使用者進行文件傳輸
遇到 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
直接使用它們。