Answers:
假设您具有sudo
特权,则以下命令将起作用。
sudo cp /home/USER1/FNAME /home/USER2/FNAME && sudo chown USER2:USER2 /home/USER2/FNAME
将文件从USER1复制到USER2,然后将/ home / USER2中副本的所有者更改为USER2
如果您没有sudo
特权,那么这两个用户将需要确保您对USER1目录具有读取权限,并且对USER2目录具有写入权限。如果您具有这些访问权限,则可以输入以下命令:
cp /home/USER1/FNAME /home/USER2/FNAME
这将复制有问题的文件,但是USER2在拥有相应权限之前可能无法操纵该文件。
如果您没有sudo特权,但是可以使用两个用户登录,则可以将scp与localhost一起使用:
scp file1 user2@localhost:/home/user2/
作为USER1:
cp [filename] /tmp
chmod 777 /tmp/[filename]
作为USER2:
cp /tmp/[filename] .
作为USER1:
rm /tmp/[filename]
假设您要么没有安装ssh,要么不想共享密钥/秘密。
假设user1在group1中,而user2在group2中,并且user1!= user2和group1!= group2。
创建一个共享组group3s。
addgrp group3
将user1和user2都添加到group3s。
在一个用户可以拥有但具有group3s组所有权的可相互访问的位置中创建目录。
#as user1,
mkdir $place/shared && chown user1.group3s $place/shared && chmod 770 $place/shared;
#as user1 or user2,
cp $file $place/shared && chgrp $place/shared/$file && chmod 660 $place/shared/$file
但是,假设您无法创建新的共享组,并将两个用户都放置在该组中?
创建目录并为其赋予770权限,
mkdir $place/shared && chown user1.group1 $place/shared && chmod 770 $place/shared;
然后,以root / admin身份将组所有权更改为其他用户的组,
sudo bash
chgrp group2 $place/shared && chmod g+s $place/shared
chmod g + s命令将setgid位置1,以使放入目录的文件的组所有权设置为group2。
这里的所有其他答案都需要root用户访问权限,或者允许同一计算机上的任何用户复制文件,或者要求密码共享。这是不可以的方法:
已经USER2
(让我们称他为鲍勃)运行下面的命令(你可以替换/tmp
使用,无论用户有权限写入到任意目录,但是/tmp
是理想的,因为默认情况下它是粘,防止恶意用户颠覆了这一过程。目录资鲍勃(Bob)的世界可读性也适用):
[bob@computer ~]$ touch /tmp/test.txt
[bob@computer ~]$ chmod 622 /tmp/test.txt
这将创建一个可全局写入但不可读的文件。
然后USER1
运行(让我们称她为Alice)(如果您很偏执,Alice可以先检查权限以确保文件归Bob拥有):
[alice@computer ~]$ dd if="$HOME/test.txt" of=/tmp/test.txt
这将覆盖的内容/tmp/test.txt
。如果要检查文件的完整性,Alice还应该生成文件的哈希。例如:
[alice@computer ~]$ openssl sha1 < "$HOME/test.txt" > /tmp/test.txt.sha1
相反,您可以对文件进行数字签名,也可以通过其他任何方法保证文件的完整性。
最后,鲍勃移动了文件并取得了所有权:
[bob@computer ~]$ mv /tmp/test.txt "$HOME"
[bob@computer ~]$ chmod 600 "$HOME/test.txt"
如果鲍勃喜欢,鲍勃可以检查其完整性。如果是这样,他应该检查以确保只有Alice可以写信给/tmp/test.txt
。
[bob@computer ~]$ diff /tmp/test/txt.sha1 <(openssl sha1 < "$HOME/test.txt")
如果文件被正确复制,则应不显示任何输出。
在将一个用户复制到另一个用户之前,您需要以su用户身份登录,然后使用命令cp
sudo cp /home/shyam/Desktop/sparkhadoop_2.11-1.0.jar /home/hadoop/Desktop
USER2
而是将其保留root
。-1