Linux

在linux中將文件從使用者複製到另一個

  • March 9, 2018

我正在嘗試將文件從我的主目錄複製到另一個使用者的目錄。我對沒有密碼的其他使用者有 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可能適用),您可以考慮要求您的管理員設置此組以供將來使用。

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