簡體   English   中英

在 Linux 中將文件從一個用戶主目錄復制到另一個用戶主目錄

[英]Copy files from one user home directory to another user home directory in Linux

我有兩個 linux 用戶(不是 root)的登錄名和密碼,例如 user1 和 user2。

如何將文件從/home/user1/folder1復制到/home/user2/folder2 ,使用單個 shell 腳本(單個腳本啟動,無需手動切換用戶)。

我想我必須使用 sudo 命令,但沒有找到確切的方法。

只是這個:

cp -r /home/user1/folder1/ /home/user2/folder2

如果添加-p (所以cp -pr ),它將保留文件的屬性(模式、所有權、時間戳)。

-r也需要復制隱藏文件。 請參閱如何使用 cp 復制以包含隱藏文件和隱藏目錄及其內容? 以供進一步參考。

須藤cp -a /home/user1/folder1 /home/user2/folder2
須藤 chown -R user2:user2 /home/user2/folder2

cp -a 存檔
chown -R 遞歸執行

復制文件,然后授予 user2 訪問權限。
復制包括點文件在內的所有文件、所有子目錄,並且不需要在命令之前存在目錄 /home/user2/folder2。

(shopt -s dotglob; cp -a /home/user1/folder1/* /home/user2/folder2/)

將使用標准cp復制所有文件(包括以點開頭的文件)。 /folder2/應該存在,否則結果可能很糟糕。

經常使用像tar這樣的打包工具也有幫助:

cd /home/user1/folder1
tar cf - . | (cd /home/user2/folder2; tar xf -)

我認為你需要使用這個命令

sudo -u username /path1/file1 /path2/file2

此命令允許您以特定用戶的身份從任何文件路徑復制內容。

PS:父目錄至少應該是可列出的,以便從中復制文件。

只是添加到fedorqui '所以停止傷害' 的答案。

當我嘗試在Ubuntu 20.04機器prod_user服務器的默認管理員用戶從stage_userprod_user時,我遇到了同樣的挑戰:

首先,我使用以下命令創建了一個prod_user

sudo adduser prod_user

然后我將新創建的prod_user添加到 sudo 組:

sudo adduser prod_user sudo

接下來,我將我需要的所有目錄從stage_userhome目錄stage_userprod_user

sudo cp -r /home/stage_user/folder1/ /home/prod_user/

接下來,我將復制文件夾的所有權從stage_userprod_user以避免權限問題:

sudo chown prod_user:prod_user /home/prod_user/folder1

就這樣。

我希望這有幫助

問題與跨用戶的權限有關。

我相信默認情況下 home 權限確實允許所有人將工作目錄列出並將其更改為另一個人的家:例如。 drwxr-xr-x 因此,在之前的答案中,人們沒有意識到您可能遇到了什么。

有了更多限制設置,比如我在我的網絡主機上的設置,非所有者用戶不能做任何事情,例如。 drwx------ 即使您使用su/sudo並成為其他用戶,您仍然一次只能是一個用戶,因此當您將文件復制回來時,同樣存在權限不足的問題。

所以。 . . 使用 scp 代替,將整個事情視為網絡環境,讓我這樣說,就是這樣。 順便說一句,這個問題已經在這里得到了回答( https://superuser.com/questions/353565/how-do-i-copy-a-file-folder-from-another-users-home-directory-in -linux ),只關心回復,因為這在我的搜索中排名第一。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM