繁体   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