Transferências de arquivos com SSH e switch-user

2

Tenha uma situação em que o SCP e o SFTP não funcionem. Eu tenho RTFM para SSH, mas não consigo encontrar o que estou procurando.

O cenário é que, para transferir arquivos para o servidor, primeiro os coloco em um diretório de usuários, efetuo login com o SSH usando uma conta de usuário limitada, SU para raiz e movo os arquivos para onde eles precisam .

Como o servidor não permite login de raiz, existe uma maneira de efetuar login com SSH, SU para raiz e transferir arquivos da máquina local?

Realmente, estou apenas procurando uma prática mais eficiente do que ir e voltar como eu tenho feito.

Além disso, eu apreciaria qualquer link nos comentários para clientes GUI que permitissem isso em um Mac para que eu pudesse arrastar & Solte os arquivos da máquina local no diretório remoto apropriado. Um cliente de GUI SFTP parece a escolha lógica, mas as permissões de usuário elevadas exigidas impedem que ele faça o que eu preciso.

    
por Twitch 25.02.2015 / 18:12

1 resposta

3

Em seu sistema local, crie um esqueleto do que você deseja. Por exemplo, se você quiser copiar o arquivo foo para o local remoto /etc/foo , será necessário criar um diretório etc e, em seguida, colocar foo nele. Então tar do esqueleto. Agora você pode fazer isso via cron como sugerido por @Anthon nos comentários da pergunta acima.

Passo a passo:

No host remoto, crie um script como este:

#!/bin/sh
DROP="/home/YOURUSERNAME/drop.tgz"
if [ ! -s "$DROP" ]; then exit 0; fi
cd /
tar -pzxf "$DROP" && rm "$DROP"

No host remoto, adicione esse script a uma tarefa cron executada como raiz.

Em seu host local, crie o esqueleto e preencha os arquivos que deseja copiar:

mkdir -p etc
mkdir -p var/www
cp -a foo etc/
cp -a bar var/www/
tar -pzcf drop.tgz etc var
scp drop.tgz REMOTEHOST:
rm -rf drop.tgz etc var

O drop.tgz será extraído quando o cron da raiz for executado. Note que isso sobrescreverá todos os tipos de coisas que você pode não gostar.

Uma opção mais segura, supondo que há apenas alguns arquivos que você precisa modificar, seria fazer com que sua conta de usuário tenha acesso de gravação a eles ( chown ou ambos chgrp e chmod g+w ) e, em seguida, você podescp deles diretamente.

    
por 26.02.2015 / 00:04

Tags