Eu preciso copiar o arquivo entre máquinas Linux. O problema que o usuário que utilizo para fazer login ( myuser
) é diferente do usuário que pode acessar o arquivo.
Se eu for ssh
para a máquina, posso trocar de usuário sudo su someuser
, posso fazê-lo de alguma forma enquanto scp
?
Ao usar o WinSCP, eu consegui fazê-lo, configurando o SCP / Shell, então acredito que deve haver uma maneira semelhante de fazê-lo via shell puro.
ssh
e executarscp
, algo como istossh myuser@host "sudo scp ..."
:?Respostas:
Supondo que o usuário para o qual você PODE ssh não precise de uma senha para sudo su no usuário de destino, você pode tentar o seguinte:
... Lembre-se, ainda não estou convencido de que simplesmente configurar
targetuser
apenas permitir scp / sftp / rsync sobre SSH e usar um par de chaves RSA para autenticação não seja uma opção muito melhor.fonte
tar -cvf - * | ssh user@host "sudo -u targetuser tar -C /targetdir -xf -"
para um monte de arquivos-z
ou-j
são úteis, dependendo da velocidade de conexão e hardware de computador de ambos os lados ...Se você conhece as credenciais para o outro usuário (
someuser
), basta especificá-las na suascp
chamada.Na
man scp
página:Aqui está a sintaxe usada:
Exemplo
Você quer copiar o arquivo
/home/foo/bar
a partirhost1
de seu localhost, utilizando usuáriosomeuser
, aqui está o comando:Você será solicitado a autenticação (senha, chaves, ...).
fonte
É provável possível , mas eu diria que é uma maneira muito estranha de fazer isso.
Minha primeira sugestão é fazer login como esse usuário. Mesmo que você não tenha a senha do usuário, você pode adicionar sua própria chave pública ssh às chaves_estabelecidas deles e, em seguida, scp usando a chave deles, como mostra rahmu.
Se isso não for possível, minha segunda sugestão é fazer o login por ssh, sudo para o usuário e criar um arquivo tarfile dos arquivos que você deseja copiar e colocá-lo em algum lugar que seu próprio usuário possa ler. Em seguida, verifique esse tarfile.
fonte
use
-S
noscp
comandopor exemplo, /superuser/87597/how-to-perform-scp-as-a-sudo-user
Isso permitirá que você execute um script, como eu acredito que você estava fazendo com o caso de uso winscp.
fonte
Tentei dar alguns exemplos no artigo a seguir. A idéia básica não é usar scp, mas usar dd e ssh com a opção de usuário sudo. Veja:
http://hmmss.wordpress.com/2014/07/02/ssh-and-scp-with-another-user
fonte