Linux
在linux中將文件從使用者複製到另一個
我正在嘗試將文件從我的主目錄複製到另一個使用者的目錄。我對沒有密碼的其他使用者有 sudo 訪問權限。我嘗試做類似的事情:
sudo secondUser cp /home/firstUser/file /home/secondUser
有沒有辦法做到這一點?我也沒有 root 訪問權限,也不知道 secondUser 的密碼。
編輯:有一種方法可以快速輕鬆地完成此操作,無需額外設置。
cat ~firstUser/file | sudo -u secondUser tee ~secondUser/file >/dev/null
這將準確地傳輸所有文件的內容。如果您關心文件權限和/或時間戳是否與原始文件匹配,則需要使用
chmod
和單獨修復它們touch
。原始答案:
這裡的問題是:
secondUser
無權訪問您的主目錄。- 您無權訪問
secondUser
的主目錄。因此,無論您
cp
是以自己身份還是以身份執行命令secondUser
,它都無法執行文件複製。鑑於您說您無權
root
訪問,顯而易見的答案是通過中間世界可讀位置複製文件,例如/tmp
並將文件的權限更改為世界可讀。但是,如果文件中的數據很敏感,您可能不想這樣做,因為伺服器上的任何人都可以在文件傳輸時讀取文件。如果不是敏感數據,只需執行以下操作:cp file /tmp/ chmod a+r /tmp/file sudo -u secondUser cp /tmp/file ~secondUser rm /tmp/file
如果可以安排,更好的選擇是創建一個僅包含您和的組
secondUser
,以及chgrp
該組擁有的文件副本/tmp
。這樣,您不需要使文件世界可讀,而只能由組讀取(使用chmod g+r /tmp/file
)。但是,groupadd
它本身需要 root 訪問權限,所以這不太容易安排。根據具體情況(如果您經常嘗試與其共享/協作secondUser
可能適用),您可以考慮要求您的管理員設置此組以供將來使用。