[英]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.