rsync problemas e preocupações de segurança

0

Oi eu estou tentando usar o rsync para copiar arquivos entre dois servidores linux. ambos em 10.04.4

Eu configurei o ssh e um script sendo executado em um cron job. esta é a mensagem que recebo do trabalho cron.

To: mark@ubuntu Subject: Cron ~/rsync.sh Content-Type: text/plain; charset=ANSI_X3.4-1968 X-Cron-Env: X-Cron-Env: X-Cron-Env: X-Cron-Env: Message-Id: <20120708183802.E0D54FC2C0@ubuntu> Date: Sun, 8 Jul 2012 14:38:01 -0400 (EDT)

rsync: link_stat "/home/mark/#342#200#223rsh=ssh" failed: No such file or directory (2) rsync: opendir "/Library/WebServer/Documents/.cache" failed: Permission denied (13) rsync: recv_generator: mkdir "/Library/Library" failed: Permission denied (13) * Skipping any contents from this failed directory * rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1060) [sender=3.0.7]

Q.1 alguém pode me dizer por que recebo esta mensagem - >

rsync: link_stat "/home/mark/ # 342 # 200 # 223rsh = ssh" falhou: Nenhum arquivo ou diretório (2)

o script é:

    #!/bin/bash
SOURCEPATH='/Library'
DESTPATH='/Library'
DESTHOST='192.168.1.15'
DESTUSER='mark'
LOGFILE='rsync.log'
echo $'\n\n' >> $LOGFILE
rsync -av –rsh=ssh $SOURCEPATH $DESTUSER@$DESTHOST:$DESTPATH 2>&1 >> $LOGFILE
echo “Completed at: '/bin/date'” >> $LOGFILE

Q2. Eu sei que tenho vários problemas com as permissões que todos os arquivos que eu estou copiando geralmente exigem que eu use o sudo para manipulá-los. A minha pergunta é, então, existe uma maneira que eu possa executar este trabalho sem dar o meu usuário acesso root ou usando root no login ??

Obrigado pela ajuda.

    
por MB. 08.07.2012 / 21:56

2 respostas

0

Quanto ao Q1, estou supondo que você tenha colocado o traço duplo antes de "rsh" como um "en-dash", ou seja, um único caractere: - então o rsync está interpretando como um nome de arquivo em vez de uma opção programa.

Para o segundo trimestre, se você quiser conceder a um usuário não-root permissão para fazer coisas com arquivos que, de outra forma, não seria capaz de manipular, terá que alterar as permissões dos arquivos ou elevar as permissões do usuário, por exemplo através do uso de sudo .

sudo pode ser configurado para permitir que certos usuários executem certos comandos como root sem prompt de senha, então o que você precisa fazer é separar as coisas que você precisa fazer como root em um script que as faz (e somente eles) e, em seguida, permitir que esse script seja chamado como raiz. Aqui está um exemplo de um dos meus arquivos /etc/sudoers :

Cmnd_Alias      F2B_CLIENT_PING = /usr/bin/fail2ban-client ping
nagios          ALL             = NOPASSWD: F2B_CLIENT_PING

O que isto faz é permitir que o usuário "nagios" execute "/ usr / bin / fail2ban-client ping" como root usando o sudo, sem que seja solicitada uma senha. Eu uso isso no meu monitoramento.

Você teria algo como:

Cmnd_Alias RSYNC_BACKUP = /usr/local/sbin/backup_my_stuff_with_rsync.sh
youruser   ALL          = NOPASSWD: RSYNC_BACKUP

e então no seu cron você chamaria sudo /usr/local/sbin/backup_my_stuff_with_rsync.sh

Você pode testá-lo na linha de comando primeiro para verificar se ele não solicita senha.

Observe que a execução de um script como root é um grande problema e, portanto, você deve garantir que seu script esteja seguro e correto. Se você puder encontrar alguma maneira de fazer isso como não raiz, seria melhor.

    
por grifferz 08.07.2012 / 23:06
0

Corrigir os direitos desses arquivos, usando

chown -R Mark:Mark *

você terá que fazer isso para todos esses diretórios .dot, a menos que você obtenha Fanny com find -exec

    
por Floyd 08.07.2012 / 22:02