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

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

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

1
задан 18 November 2014 в 19:08

5 ответов

, если у вас нет привилегий sudo, но вы можете войти в систему с двумя пользователями, тогда вы можете использовать scp с localhost:

scp file1 user2@localhost:/home/user2/
5
ответ дан 24 May 2018 в 01:46
  • 1
    Что заставляет вас думать, что речь идет о удаленном хосте или о том, что на рассматриваемой машине работает SSH / SFTP-сервер? – David Foerster 12 January 2017 в 17:26
  • 2
    Предполагая, что у вас установлен SSH – loudstil 14 February 2017 в 19:09

Предположим, вы либо не имеете ssh, либо не можете делать, не хотите делиться ключами / секретами.

Предположим, что user1 находится в group1, а user2 - в группе2, и оба user1! = user2 и group1! = group2.

Создайте общую группу, group3s.

addgrp group3

Добавьте как user1, так и user2 в group3s.

Создайте каталог во взаимно доступное место, где один пользователь владеет, но имеет групповое владение группой3.

#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, чтобы файлы, помещенные в каталог, имели групповое право собственности на группу2.

1
ответ дан 24 May 2018 в 01:46

Как USER1:

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

Как USER2:

cp /tmp/[filename] .

Как USER1:

rm /tmp/[filename]
1
ответ дан 24 May 2018 в 01:46

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

Имеем USER2 (назовем его Боб) запускаем следующие команды (вы можете заменить /tmp на любой каталог, для которого оба пользователя имеют права на запись, но [ f8] является идеальным, потому что по умолчанию он липкий, что предотвращает вредоносный пользователь от подрывного процесса. Также существует каталог, принадлежащий Бобу, который доступен для чтения по всему миру):

[bob@computer ~]$ touch /tmp/test.txt
[bob@computer ~]$ chmod 622 /tmp/test.txt

Это создает файл, который

Затем запустите USER1 (давайте назовем ее Алиса) (если вы параноик, Алиса может сначала проверить разрешения, чтобы убедиться, что файл принадлежит Бобу ):

[alice@computer ~]$ dd if="$HOME/test.txt" of=/tmp/test.txt

Это перезаписывает содержимое /tmp/test.txt. Если вы хотите проверить целостность файла, Алиса также должна генерировать хэш файла. Например:

[alice@computer ~]$ openssl sha1 < "$HOME/test.txt" > /tmp/test.txt.sha1

Вы можете вместо этого подписать цифровой файл или любой другой способ гарантировать его целостность.

И, наконец, Боб перемещает файл и берет его на себя: [ ! d7]

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

И Боб может проверить целостность, если захочет. Если это так, он должен проверить, чтобы только Алиса могла писать /tmp/test.txt.

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

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

0
ответ дан 24 May 2018 в 01:46

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

sudo cp /home/shyam/Desktop/sparkhadoop_2.11-1.0.jar /home/hadoop/Desktop
-1
ответ дан 24 May 2018 в 01:46
  • 1
    Это не передаст право собственности на USER2, но оставит его как root. -1 – David Foerster 11 November 2017 в 21:49
  • 2
    @DavidFoerster мы не передаем право собственности, мы копируем файл от одного пользователя другому пользователю. используя пользователя root, мы можем передать файл. ОК – Shyam Gupta 11 November 2017 в 22:15

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

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