copiando arquivos de um usuário para outro em uma única máquina

14

Como copiar arquivos ou diretórios de um usuário para outro usuário em uma mesma máquina via terminal ?

Suponha que haja um arquivo test.txt no diretório inicial de USER1. Eu preciso copiar esse arquivo para o diretório inicial de USER2 na minha máquina. Como posso fazer isso via terminal?

    
por nischalinn 18.11.2014 / 16:08

6 respostas

21

Supondo que você tenha sudo privileges, o seguinte comando serve.

sudo cp /home/USER1/FNAME /home/USER2/FNAME && sudo chown USER2:USER2 /home/USER2/FNAME

Copia o arquivo de USER1 para USER2 e, em seguida, altera o proprietário da cópia em / home / USER2 para USER2

Se você não tiver sudo privileges, os dois usuários precisarão garantir que você tenha permissões de leitura no diretório USER1 e acesso de gravação no diretório USER2. Se você tiver esses acessos, você pode digitar o comando:

cp /home/USER1/FNAME /home/USER2/FNAME

Isso copiará o arquivo em questão, mas o USER2 talvez não consiga manipular o arquivo até que ele tenha as permissões apropriadas.

    
por Charles Green 18.11.2014 / 16:19
5

se você não tem privilégios sudo, mas você pode entrar com os dois usuários, então você pode usar scp com localhost:

scp file1 user2@localhost:/home/user2/
    
por loudstil 12.01.2017 / 12:57
1

Suponha que você não tenha ssh instalado ou não possa compartilhar chaves / segredos.

Suponha que user1 esteja em group1 e user2 em group2, e user1! = user2 e group1! = group2.

Crie um grupo compartilhado, group3s.

addgrp group3

Adicione o usuário1 e o usuário2 ao grupo3.

Crie um diretório em um local de acesso mútuo, onde um usuário é proprietário, mas tenha a propriedade de grupo de 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

Mas, suponha que você não possa criar o novo grupo compartilhado e colocar os dois usuários nesse grupo?

Crie o diretório e dê a ele 770 permissões,

mkdir $place/shared && chown user1.group1 $place/shared && chmod 770 $place/shared;

Em seguida, como root / admin, altere a propriedade do grupo para o grupo do outro usuário,

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

O comando chmod g + s define o bit setgid para que os arquivos colocados no diretório tenham a propriedade do grupo configurada para group2.

    
por ChuckCottrill 05.08.2017 / 04:28
1

Como USER1:

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

Como USER2:

cp /tmp/[filename] .

Como USER1:

rm /tmp/[filename]
    
por Ryan J McCall 09.08.2017 / 23:32
0

Qualquer outra resposta aqui requer acesso root, permite que qualquer usuário na mesma máquina copie o arquivo ou exija o compartilhamento de senha. Aqui está um método que não:

Tenha USER2 (vamos chamá-lo de Bob) executar os seguintes comandos (você pode substituir /tmp por qualquer diretório para o qual ambos os usuários tenham permissão para gravar, mas /tmp é ideal porque por padrão é pegajoso, impede que um usuário mal-intencionado subverte esse processo. Um diretório de propriedade de Bob que é legível por todos também funciona):

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

Isso cria um arquivo que pode ser gravado no mundo, mas não legível.

Em seguida, execute USER1 (vamos chamá-la de Alice) (se você estiver paranóico, Alice poderá verificar as permissões primeiro para garantir que o arquivo pertença a Bob):

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

Isto sobrescreve o conteúdo de /tmp/test.txt . Se você quiser verificar a integridade do arquivo, Alice também deve gerar um hash do arquivo. Por exemplo:

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

Você pode assinar digitalmente o arquivo ou qualquer outro método para garantir sua integridade.

E, finalmente, Bob move o arquivo e apropria-se dele:

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

E o Bob pode verificar a integridade se ele gostar. Se assim for, ele deve verificar se apenas Alice pode escrever para /tmp/test.txt .

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

Se o arquivo foi copiado corretamente, isso não deve exibir saída.

    
por Chris 06.04.2018 / 20:24
-1

Antes de copiar um usuário para outro, você precisa fazer o login como usuário su e depois usar o comando cp

sudo cp /home/shyam/Desktop/sparkhadoop_2.11-1.0.jar /home/hadoop/Desktop
    
por Shyam Gupta 11.11.2017 / 18:04

Tags