[Linux-Biella] ssh via user www-data on apache

Federico Pistono federicopistono a gmail.com
Mer 8 Dic 2010 16:58:01 CET


Alla fine ho usato ssh2_scp_send da php... :P

2010/12/3 PaulTT <paultt a bilug.linux.it>:
> On 03/12/2010 11:06, Federico Pistono 說:
>>>
>>> mi ripeti cosa vuoi/devi fare?
>>> qualcosa del tipo: "clicco su una pagina web e mi parte uno script che fa
>>> scp?"
>>>
>>
>> Yes.
>>
>>
>>>
>>> in questo caso: come lo lanci lo script?
>>>
>>
>> $cmd="/usr/local/bin/ffencall.sh bla bla";
>> shell_exec($cmd);
>>
>>
>>>
>>> Allora, ti crei un utente per eseguire lo script che abbia i permessi
>>> necessari a leggere i dati di cui fare un rsync, diciamo l'utente pippi
>>> (che
>>> fantasia :D ), nella sua home metti poi lo script da eseguire, diciamo
>>> sync.pl
>>> La riga da mettere in /etc/sudoers dovrebbe essere una cosa del tipo
>>>
>>> www-data  ALL = (pippo) NOPASSWD:/home/pippo/sync.pl
>>>
>>> Ovviamente la chiamata sara'
>>> sudo -u pippo /home/pippo/sync.pl
>>>
>>
>> Fatto. Se  eseguo da shell:
>>
>> syncdata a mgds $ scp -v -i /home/syncdata/.ssh/id_dsa file.txt
>> fede a 192.168.0.102:/tmp/
>>
>> Funziona. Vado in un'altra shell, eseguo:
>>
>> www-data a mgds $ sudo -u syncdata scp -v -i /home/syncdata/.ssh/id_dsa
>> file.txt fede a 192.168.0.102:/tmp/
>>
>> A un certo punto mi dice:
>> debug1: PEM_read_PrivateKey failed
>> debug1: read PEM private key done: type<unknown>
>> Enter passphrase for key '/home/syncdata/.ssh/id_dsa':
>>
>> I mio guess è che lui carica l'agent ssh quando carica il bashrc
>> dell'utente:
>>
>> syncdata a mgds $ cat /home/syncdata/.bashrc
>>
>> SSH_ENV="$HOME/.ssh/environment"
>>
>> function start_agent {
>>      echo "Initialising new SSH agent..."
>>      /usr/bin/ssh-agent | sed 's/^echo/#echo/'>  "${SSH_ENV}"
>>      echo succeeded
>>      chmod 600 "${SSH_ENV}"
>>      . "${SSH_ENV}">  /dev/null
>>      /usr/bin/ssh-add;
>> }
>>
>> # Source SSH settings, if applicable
>>
>> if [ -f "${SSH_ENV}" ]; then
>>      . "${SSH_ENV}">  /dev/null
>>      #ps ${SSH_AGENT_PID} doesn't work under cywgin
>>      ps -ef | grep ${SSH_AGENT_PID} | grep ssh-agent$>  /dev/null || {
>>          start_agent;
>>      }
>> else
>>      start_agent;
>> fi
>>
>> Ma se www-data lancia uno script come sycndata tramite sudo, il bashrc
>> non viene caricato, quindi l'agent non è su, quindi chiede la
>> passphrase, quindi da errore, come prima :(
>>
>
> e toglila cmq quella porcheria dal .bashrc
> mai avuto niente del genere io li' dentro :D
>
> inoltre se usi -a .ssh/id_rsa non ti serve specificare il -i
>
> cosa sarebbe sto SSH_AGENT?????
> io butterei via sta SSH_ENV e chiusa li' :D
>
> --
> - I can't wait till tomorrow.
> - What happens tomorrow?
> - I get better-looking every day.
>
> _______________________________________________
> Linux mailing list
> Linux a ml.bilug.linux.it
> http://ml.bilug.linux.it/mailman/listinfo/linux


Maggiori informazioni sulla lista Linux