Linux不同用户之间复制文件

考虑如下情景:foo用户home目录下有一文件file.txt,要将其copy至bar用户的home目录。Linux对用户home目录有严格的权限限制,非owner用户或者同group用户无权限读写,除非是root(至高无上的root)。如果没有root权限,有什么办法把file.txt 复制到bar用户的home目录下呢?

想到两个办法。第一个办法,先用foo用户登录,把文件copy到系统临时目录/tmp,然后切换到bar用户,再从系统临时目录/tmp把文件copy到自己的home目录。这里为什么用cp不用mv?因为复制到/tmp的文件owner还是foo,默认情况下其他用户自有读权限,没有写权限(自然没有移动权限)。即使通过修改文件权限,让bar可写,移动到bar的home目录下owner还是foo,而且非得root才能改成bar。这个办法有点曲折,弊端也很明显,文件需要复制两次,花两倍的时间。

[plain]

# cp file.txt /tmp/

# su - bar

# cp /tmp/file.txt ~/

# exit

# rm /tmp/file.txt

第二个办法,使用scp命令。原本scp是用来在不同主机上通过网络copy文件,用在这里刚好。用bar用户登录

[plain]

# scp [email protected]calhost:/home/foo/file.txt ./

输入foo用户密码,开始文件传输。也可以用foo用户登录,

[plain]

scp file.txt [email protected]:/home/bar/

输入bar用户密码,过程一样。

实际中使用哪一种方法,看个人喜好了。如果要copy的文件不大,第一种方法也不失为一种选择。

来源 http://blog.csdn.net/afeiqiang

时间: 2024-08-27 00:02:47

Linux不同用户之间复制文件的相关文章

linux新建用户自动复制文件

作为一个Linux管理员,每次创建用户,都要给用户一些固定文件,比如Readme.txt但是每个都复制,太繁琐.解决方法. 系统每次创建账号时,都会将/etc/skel文件夹里的文件复制到用户的home目录下,利用这个功能,我们把Readme.txt放到/etc/skel目录里,下次创建账号时候就会自动复制进去. 参考文章: http://mirage1993.blog.51cto.com/2709744/1535143

两个linux之间复制文件及目录

Linux为我们提供了两个用于文件copy的命令,一个是cp,一个是scp,但是他们略有不同,cp 主要是用于在同一台电脑上,在不同的目录之间来回copy文件 scp 主要是在不同的Linux系统之间来回copy文件.scp即security cp,带有安全性的复制. 在两台linux机之间复制文件,我们打开其中任意一台即可,利用scp可实现两者之间文件目录的传输: 从本地服务器复制到远程服务器: (1) 复制文件: 命令格式: scp local_file [email protected]_

-scp Linux之间复制文件和目录

scp 简介 scp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的.可能会稍微影响一下速度.当你服务器硬盘变为只读 read only system时,用scp可以帮你把文件移出来.另外,scp还非常不占资源,不会提高多少系统负荷,在这一点上,rsync就远远不及它了.虽然 rsync比scp会快一点,但当小文件众多的情况下,rsync会导致硬盘I/O非常高,而scp基本不影响系统正常

securecrt在linux与windows之间传输文件(转)

摘自:http://blog.csdn.net/rangf/article/details/6096365 SecureCRT这款SSH客户端软件同时具备了终端仿真器和文件传输功能.比ftp命令方便多了,而且服务器不用再开FTP服务了.rz,sz是便是Linux/Unix同Windows进行ZModem文件传输的命令行工具. windows端需要支持ZModem的telnet/ssh客户端,SecureCRT就可以用SecureCRT登陆到Unix/Linux主机(telnet或ssh均可).

虚拟机中实现Linux与Windows之间的文件传输

虚拟机中实现Linux与Windows之间的文件传输 标签: linux 2016年06月28日 11:17:37 2092人阅读 评论(0) 收藏 举报  分类: linux(2)  一.配置环境 虚拟机Linux:Fedora 9 文件传输工具:SSHSecureShellClient-3.2.9 二.实现步骤 1. 在Windows中安装文件传输工具SSHSecureShellClient-3.2.9,主界面如下: 左边是Windows资源管理器,右边是Linux目录显示区(还没连接到Li

如何在docker和宿主机之间复制文件

如何在docker和宿主机之间复制文件 最近在用Docker布署hadoop,要将文件上传到HDFS首先文件得在Docker容器中吧,网上提供的方法差不多有三种 1.用-v挂载主机数据卷到容器内 2.直接在主机上拷贝到容器物理存储系统 3.用输入输出符 具体方法这篇文章写的很详细:http://blog.csdn.net/yangzhenping/article/details/43667785 但是对这三种方法我都不太喜欢,无意间看到另位一种方法供大家参考: 从主机复制到容器sudo dock

VMware workstation虚拟机与真机之间复制文件

首先选择导航栏的“虚拟机”选项,在下拉菜单中选择“安装VMware Tools” 弹出自动播放的选项,选择安装setup64.exe 开始安装VMware Tools,安装过程都保持默认即可,一直点“下一步”直到安装成功 点击“完成”会弹出是否重新启动的会话,点击“是”重新启动虚拟机系统,重启完成,到此VMware Tools安装成功 我们可以验证下真机和虚拟机之间复制文件,可以成功复制真机文件到虚拟机 原文地址:https://www.cnblogs.com/wei9593/p/1205949

虚拟机centOs Linux与Windows之间的文件传输

一.配置环境 虚拟机Linux:Fedora 9 文件传输工具:SSHSecureShellClient-3.2.9 二.实现步骤 1. 在Windows中安装文件传输工具SSHSecureShellClient-3.2.9,主界面如下: 左边是Windows资源管理器,右边是Linux目录显示区(还没连接到Linux不可操作) 2. 启动虚拟机中的Linux,查看Linux的IP地址,如下: ifconfig命令查看IP地址,我的IP是192.168.134.128 3. 在Windows的命

Linux 普通用户之间免密登陆

目的: 同台机器之间实现普通用户之间的免密登陆: NN01 的user1 免密登陆 user2 不同机器之间实现普通用户之间的免密登陆 :NN01 的user1 免密登陆 NN01 的user1 一.同台机器之间实现普通用户之间的免密登陆 普通用户之间的免密登陆和 使用root 进行免密登陆,基本设置都是一样的,只不过普通用户之间需要修改 .ssh 和 authorized_keys 的权限免密才能生效. 登陆 user1 的前提下, ssh-keygen #使用 ssh-keygen 命令,一