копирование файлов от одного пользователя другому в единственной машине

Как скопировать какие-либо файлы или каталоги от одного пользователя другому пользователю в той же машине через терминал?

Предположим, что существует один файл test.txt в корневом каталоге USER1. Я должен скопировать тот файл в корневой каталог USER2 в моей машине. Как я могу сделать это через терминал?

20
задан 18 November 2014 в 18:08

6 ответов

Предположение, что Вы имеете 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 не может быть в состоянии управлять файлом, пока у них нет соответствующих полномочий.

26
ответ дан 16 November 2019 в 12:27

если у Вас нет sudo полномочий, но можно войти в систему с этими двумя пользователями затем, можно использовать scp с localhost:

scp file1 user2@localhost:/home/user2/
6
ответ дан 16 November 2019 в 12:27

Как USER1:

cp [filename] /tmp
chmod 777 /tmp/[filename]

как USER2:

cp /tmp/[filename] .

как USER1:

rm /tmp/[filename]
4
ответ дан 16 November 2019 в 12:27

Примите Вас или не имейте 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;

Затем как корень/администратор, изменяют владение группы на группу другого пользователя,

sudo bash
chgrp group2 $place/shared && chmod g+s $place/shared

, команда chmod g+s устанавливает бит setgid так, чтобы файлам, помещенным в каталог, установили владение группы на group2.

1
ответ дан 16 November 2019 в 12:27

Прежде, чем собраться скопировать одного пользователя в другого необходимо войти в систему как su пользователь, и затем Вы используете CP команды

sudo cp /home/shyam/Desktop/sparkhadoop_2.11-1.0.jar /home/hadoop/Desktop
-1
ответ дан 23 November 2019 в 01:49

Любой ответ здесь требует корневого доступа, позволяет любому пользователю на той же машине копировать файл или требует совместного использования пароля. Вот метод, который не делает:

Иметь USER2 (давайте назовем его Bob), выполните следующие команды (можно заменить /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 перемещает файл и берет владение его:

[bob@computer ~]$ mv /tmp/test.txt "$HOME" 
[bob@computer ~]$ chmod 600 "$HOME/test.txt"

И Bob может проверить целостность, если ему нравится. Если так, он должен проверить, чтобы удостовериться, что только Alice может записать в /tmp/test.txt.

[bob@computer ~]$ diff /tmp/test/txt.sha1 <(openssl sha1 < "$HOME/test.txt")

Если бы файл был скопирован правильно, то это не должно отображать вывод.

0
ответ дан 23 November 2019 в 01:49

Другие вопросы по тегам:

Похожие вопросы: