Como copiar uma pasta usando remoto usuário remoto com sudo? [duplicado]

0

Como copiar uma pasta do remoto usando o usuário remoto com o sudo? Nenhum desses funciona em pastas com permissões e falha com permissão negada:

scp -r [email protected]:/source/ /destination/
sudo scp -r [email protected]:/source/ /destination/

Quando ssh on remote e executo sudo su , posso ver esses arquivos e pastas. Para mim, não importa o uso de scp ou smth else, desde que seja baseado em ssh.

Talvez seja uma limitação do scp usar os direitos do sudo como benefício de segurança. No entanto, é realmente frustrante poder fazer o ssh, executar sudo su e visualizar todas as pastas, mas não conseguir fazer o download de um modo remoto (embora você provavelmente possa resolver isso com tar e fazer o download de qualquer maneira)

    
por Centurion 25.03.2016 / 11:52

3 respostas

1

Garanta que usuário deve usar os usuários sudo - local ou remoto (ou ambos)? ou seja, sudo scp afeta somente os direitos de usuário local para executar o comando scp .

Como uma solução - tente mover source arquivos em outro diretório com propriedade e direitos de usuário remoto e verifique permissões de gravação para o usuário local no lugar em que destination pasta deve ser criada.

Além disso, tente mover source para o diretório inicial do usuário remoto ~ (pode ser um resultado da política de segurança do servidor).

    
por 25.03.2016 / 12:37
1

Supondo que você tenha ou possa se dar acesso NOPASSWD (para todos os comandos, ou apenas 'tar' ou 'cat'), pode ser tão simples quanto

# For a single file
ssh [email protected] 'sudo cat /source/SINGLE_FILE' > /destination/SINGLE_FILE

# for recursive copying, use tar or cpio
ssh [email protected] 'sudo tar -C /source/ -czf - .' | tar -C /destination/ -xzf -

Você precisa executar o sudo no lado remoto e, em seguida, enviar os arquivos por meio de um programa que grava stdout em um programa que lê stdin.

Se você precisar inserir sua senha para o sudo, as coisas ficarão muito mais feias, mas isso pode ser feito com servidores rsync e encaminhamentos de porta.

    
por 25.03.2016 / 22:04
0

O arquivo que você tenta obter deve ter permissão modificada (próprio por root ou permissão não legível nesses arquivos e pastas específicos) Portanto, a maneira mais simples de obter esse arquivo é scp para a raiz e não para o usuário.

scp -r [email protected]:/source /destination/

Habilite o login raiz via SSH (De RedHat)

Ponto de vista de segurança, é melhor não permitir esse tipo de coisa, mas se você precisar fazer isso, você deve usar uma chave e tê-la no /root/.ssh/authorized_keys

    
por 25.03.2016 / 13:33

Tags