Server con accesso utenti locali ftp

Salve a tutti.
Ho un problema con la configurazione di vsftp.
Vorrei fare un server che abbia collegamenti come anomino (con permessi solo di upload) e come utenti del computer.
Gli utenti del computer dovrebbero essere confinati nella loro cartella di riferimento e non poter uscire da questa (jail).
Sono riuscito a fare una parte di questa configurazione, in quanto il collegamento anonimo funziona, ma il collegamento con gli utenti no, in quanto mi permette di ‘girare’ all’interno del computer, cosa che non vorrei sia possibile.
Questa la parte di setup della configurazione degli utenti:

#chroot_local_user=YES
chroot_list_enable=YES
# (default follows)
chroot_list_file=/etc/vsftpd/user_allow
userlist_enable=YES
#userlist_deny=NO

Al momento nel file user_allow c’è un solo utente, ma non lo fa entrare

Ciao,
prova a dare un’occhiata a questa guida credo che ti manchi la definizione degli utenti locali che possono eseguire l’accesso, qualcosa di questo tipo:

userlist_enable=YES # vsftpd will load a list of usernames, from the filename given by userlist_file
userlist_file=/etc/vsftpd.userlist # stores usernames.
userlist_deny=NO

Ciao, ho provato ma da errore 500. Non riesco ad entrare.
Il fatto è che vorrei impostare il mio server per poter inviare dei file tramite ftp come fosse un sito remoto.
Ho aggiunto un utente fittizio e poi modificanto /etc/passwd, ho impostato questo utente la cartella /var/www/httpd come fosse la sua cartella di origine. Quando vado con ftp con questo utente, mi va nella cartella indicata da etc/passwd, ma non legge nulla di quello che c’è dentro. Ho modificato i permessi, ma non li legge neanche con le cannonate. Invece, un utente normale sono riuscito a farlo entrare, ma non rimane confinato nella sua HOME. E’ libero di andare ovunque e scaricare dove ha i permessi, ma non voglio che esca dalla sua home.

Questa la configurazione corrente

# You may specify an explicit list of local users to chroot() to their home
# directory. If chroot_local_user is YES, then this list becomes a list of
# users to NOT chroot().
# (Warning! chroot'ing can be very dangerous. If using chroot, make sure that
# the user does not have write access to the top level directory within the
# chroot)
#chroot_local_user=YES
chroot_list_enable=YES
# (default follows)
#chroot_list_file=/etc/vsftpd/chroot_list
chroot_list_file=/etc/vsftpd/user_allow
userlist_enable=YES
userlist_deny=NO
userlist_file=/etc/vsftpd/user_allow
#
# You may activate the "-R" option to the builtin ls. This is disabled by
# default to avoid remote users being able to cause excessive I/O on large
# sites. However, some broken FTP clients such as "ncftp" and "mirror" assume
# the presence of the "-R" option, so there is a strong case for enabling it.

L’utente che deve accedere alla directory “/var/www/httpd” ha i permessi per accedere?
Di solito la modifica della home directory si esegue con il comando “usermod” e non modificando a manina /etc/passwd…
Se ricordo a memoria il comando dovrebbe essere:

# usermod -d <nuova home directory> <utenza>

Ho ripristinato l’utente e ricambiato come dicevi tu. E’ come lo avevo scritto io.
ho cambiato l’utente

chowh user:user /var/www/html

ma non riesco a connettermi con ftp

Ok, trovato un impedimento con selinux.
setsebool ftpd_full_access da off a on.
Ora l’utente della pagina web funziona, non la home degli utenti sulla loro home directory.
Sto vedendo che anche il chmod è diverso tra gli utenti normali e quello della pagina web.
L’utente normale ha

unconfined_u:object_r:user_home_dir_t:s0

quello della pagina web invece

system_u:object_r:httpd_sys_content_t:s0

Leggendo un po qua e un po la ho visto che mancava la direttiva

allow_writeable_chroot=YES

Aggiunta questa le utenze vengono gestite bene, gli utenti sulle proprie cartelle e quella del sito all’indirizzo giusto, però l’accesso anonimo ora non funziona.
Per l’accesso anonimo invece no, non lo accetta

Ok, trovata la magagna.
Oltre agli utenti che finalmente confina all’interno della loro directory, quando ci si collega come anonimo il client chiama il server con utente ‘anonymous’ il quale deve essere inserito nella lista user_allow per poter entrare nella cartella anonima.
Spero di essere stato chiaro.
Salute a tutti

1 Mi Piace