Mount Ftp e SFTP directory

Mount ftp

C'è un articolo interessante per approfondire come linux gestisce l'ftp qui http://blog.tarotoast.com/2006/04/02/242/ .
Spiega il funzionamento di fuse, kernel space, user space, dice che è necessario modificare il kernel ricompilandolo insomma la fa complicata parecchio.

Con ubuntu 10.04 sono riuscito a fare tutto con successo usando questi comandi, prendendo spunto da questa pagina http://ubuntuforums.org/showthread.php?t=441126

Installare ubuntu

apt-get install curlftpfs

Installare redhat

#andare su http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/
#o quello più adatto alla propria distro scaricare l'ultimo package

rpm -Uvh rpmforge-release*rpm
yum install fuse-curlftpfs

Montare da super user

curlftpfs ftpusername:ftppassword@ftp.site.address /mnt/ftp/dir-locale

Questo comando monta nella directory locale indicata la home ftp dell'utente ftpusername.
Se però voglio accedere a questa cartella tramite per esempio l'utente www-data che è l'user con cui apache viene eseguito ho dei problemi anche se teoricamente i permessi ne consentirebbero l'accesso.

Leggere da utente semplice

Per riuscire a leggere dall'utente www-data per prima cosa ho recuperato il group-id e user-id di quell'utente. Si può fare con il comando id o leggendo direttamente i numeri nei file /etc/passwd e /etc/group
Nel mio caso erano entrambi 33

Ho aggiunto la riga qui sotto al file /etc/fstab ho fatto mount e tutto ha funzionato

curlftpfs#ftpusername:ftppassword@ftp.site.address/mnt/ftp/dir-locale fuse allow_other,uid=33,gid=33 0 0

Fstab dettagli configurazione

Nel help di ubuntu ci sono molti dettagli su fstab per configurarle al meglio con diversi esempi https://help.ubuntu.com/community/Fstab

Mount SFTP cioè ssh

yum install fuse-sshfs.i386
#oppure sotto ubuntu
apt-get install sshfs

Fare in modo tramite ssh che l'utente root non debba aver bisogno di password per collegarsi, c'è la procedura per l'autenticazione tramite chiave nella pagina ssh

Dentro fstab

sshfs#utente-server@ip-server:/dir/server /dir/client fuse user,auto 0 0

un altro esempio dove utilizzo una porta non standard

sshfs#backup@ipserver:/opt /mnt/backup fuse user,exec,auto,port=1234 0 0

Una pagina di riferimento http://www.wiredrevolution.com/system-administration/share-a-remote-filesystem-over-ssh un'altra pagina dove ho preso tante informazioni http://ubuntuforums.org/showthread.php?t=430312

to mount a directory in another

add to fstab this line

/dir/destination          /dir/source/will/disappear     auto bind,gid=46,defaults 0 0
Salvo diversa indicazione, il contenuto di questa pagina è sotto licenza Creative Commons Attribution-ShareAlike 3.0 License