Link simbolico e filezilla su sftp


15

Sono abbastanza nuovo su Debian e sto provando a configurare un server.

Ho creato un utente che può accedere solo alla sua cartella /home/username(e alla sua sottodirectory).

Ora voglio usare quell'utente per il server web che ho impostato e gli ho dato l'accesso /var/wwwma non riesco a vedere /var/wwwattraverso sftp e ho fatto un link simbolico come questo:

root@server:/home/username# ln -s /var/www www
root@server:/home/username# cd www
root@server:/home/username/www# chown username:username *

Ora, con filezilla, posso vedere la cartella www in questo modo:

Filezilla

Ma quando provo ad aprirlo, ottengo questo:

Aperto

Cosa sto facendo di sbagliato?

Risposte:


22

È probabile che l'SFTP sia in fase di chroot, quindi la directory / var / www non è disponibile per l'utente nella jail chroot.

Guarda /etc/ssh/sshd_configed esamina le direttive sftp. Vedi qualcosa come:

Match group sftp
  ChrootDirectory /home/%u
  AllowTcpForwarding no
  ForceCommand internal-sftp

La pagina man sshd_config è qui .

Fondamentalmente, una volta che l'utente è /home/usernameentrato in SFTP, quella directory diventa /e riferimenti al di fuori di /home/usernamenon sono disponibili. In effetti, un collegamento simbolico ln -s /var/www /home/username/wwwsembrerà che tu stia cercando di raggiungere /home/username/var/www(cioè, /home/usernameora è /così qualsiasi collegamento che i riferimenti /var/wwwdevono essere anche una sottodirectory /home/usernamenel contesto del chroot).

Come soluzione, puoi disattivare il chroot (ma questo avrà altre implicazioni per la sicurezza, principalmente con gli utenti SFTP che hanno il controllo completo sul tuo filesystem). Puoi fare un montaggio in loop di / var / www in / home / nome utente / www (qualcosa come mount --bind /var/www /home/username/www(controlla la tua documentazione per mount) che dovrebbe funzionare come ti aspetteresti con chroot). Puoi anche usare muck con il file sshd_config per escludere quel particolare utente da chroot (anche se, di nuovo, con implicazioni di sicurezza).

Proverei prima il bind mount.


2
+1 per il trucco mount -bind!
Helge Klein,

1
Se vuoi che sia persistente durante i riavvii, modifica il tuo /etc/fstabcon una linea come/home/username/www /var/www none bind 0 0
pzkpfw,

0

Ho risolto scollegando il collegamento simbolico che ho creato e con

root@server:/home/username# mkdir www
root@server:/home/username# mount --bind /home/username/www /var/www

(anche se ho perso tutto era in / var / www, ma non mi interessa)

ringrazia tutti!


Non hai perso nulla. Basta smontare e copiare i file prima di rimontarli.
Zoredache,

grazie! non avevo nient'altro che 1 file con un link, niente di importante, ma non riuscivo a capire di recuperarlo: D
Doc
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.