[英]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_user
為prod_user
時,我遇到了同樣的挑戰:
首先,我使用以下命令創建了一個prod_user
:
sudo adduser prod_user
然后我將新創建的prod_user
添加到 sudo 組:
sudo adduser prod_user sudo
接下來,我將我需要的所有目錄從stage_user
的home
目錄stage_user
到prod_user
:
sudo cp -r /home/stage_user/folder1/ /home/prod_user/
接下來,我將復制文件夾的所有權從stage_user
為prod_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.