2009-10-06 15 views
33

Ho bisogno di dare accesso SFTP a una directory all'interno del mio webroot sul mio server. Ho installato ben_files come utente e ho posto la sua home directory pershell Linux per limitare gli utenti sftp alle loro directory home?

/var/www/vhosts/mydomain.com/files

Questo è tutto bene se si collega con Plain Old FTP - ha limitato solo a quella directory, ma per abilitare SFTP ho dovuto aggiungerlo alla shell bin/bash, che improvvisamente apre tutto il mio server ...

C'è un modo per dargli accesso SFTP ma senza aprire tutti i miei elenchi? Mi piacerebbe che si limitasse solo alla sua casa;)

Grazie!

risposta

46

OpenSSH ≥ 4.8 supporta una direttiva ChrootDirectory.

Aggiungi al /etc/sshd_config o /etc/ssh/sshd_config o quello globale del file di configurazione del sshd la configurazione è:

 
Match user ben_files 
     # The following two directives force ben_files to become chrooted 
     # and only have sftp available. No other chroot setup is required. 
     ChrootDirectory /var/www/vhosts/mydomain.com/files 
     ForceCommand internal-sftp 
     # For additional paranoia, disallow all types of port forwardings. 
     AllowTcpForwarding no 
     GatewayPorts no 
     X11Forwarding no 
+0

Hiya, ho alcuni errori - Avvio di sshd:/etc/ssh/sshd_config: riga 113: opzione di configurazione errata: corrispondenza AND/etc/ssh/sshd_config: riga 115: opzione di configurazione errata: ForceCommand. Entrambi smettono di tornare su sshd. Qualche idea? – MrFidge

+0

Probabilmente non hai una versione di SSH abbastanza nuova. – ephemient

+0

ahh sì, ho perso un po 'la risposta - siamo sul 4.3, cercherò di aggiornarlo. – MrFidge

3

si potrebbe provare a impostare il suo guscio per /bin/rbash

RISERVATA SHELL Se bash è iniziato con il nome rbash, o l'opzione -r è alimentato a invocazione, la shell diventa limitato. Una shell limitata è utilizzata per configurare un ambiente più controllato rispetto alla shell standard. E comporta in modo identico per colpire con l'eccezione che il seguente sono consentito oppure non eseguita:

·  changing directories with cd 

e molto di più ...

Assicurati di comprendere appieno ciò che è permesso e annullato prima tu lo usi.

+0

rbash è nella distro, ma non sembra consentire sftp - dovrò esaminare la configurazione credo. Grazie per il suggerimento! – MrFidge

3

Dai uno sguardo allo rssh. Potrebbe essere già confezionato per la tua distribuzione o/s.

+0

Non è confezionato, ma è perfetto! Vedrò di averlo installato al più presto;) Grazie! – MrFidge

-1

È inoltre possibile impostare gli utenti Shell/bin/false utilizzando:

usermod -s/bin/false nome utente

li costringe da ssh 'e posso solo sftp (o ftp, se è impostato)

Lo uso per sftp usres, insieme al setup chroot menzionato (coperto da altre risposte).

+0

Quando ho impostato la mia shell su/bin/false, non posso più sftp o scp! – Jeach

+2

'/ bin/false' limita qualsiasi tipo di tentativo di accesso. Le tue informazioni sono false. Usa '/ sbin/nologin' invece – hayonj

Problemi correlati