Note that if you make # chown m1 /var/ftp/ or # chgrp m1 /var/ftp/, then its the ftp directory that will change the owner, not the pub directory!
Please try: # chown m1 /var/ftp/pub && chgrp m1 /var/ftp/pub
or:# cd /var/ftp/ , then # chown m1 pub && chgrp m1 pub
(you can ignore "&&" and type chown and chgrp separately. "&&" just makes bash execute 1st command and then the the 2nd, if the first returned no errors... just a tip
To check if the pub directory is owned by the user m1, just make # ls -l or # ll , in the directory above (/var/ftp) and you can see the owner of that directory on the 3th and 4th column.
I've just tested in my ftp server and it worked! I just had to change the directory ownership to the user I want.
If its still not working, then see if you have selinux disabled. (if enabled then disable it)
It needs to work!!
P.S. Don't forget to change back the ownership of /var/ftp to root!
EDIT: I forgot to tell you that you need to restart vsftpd when ever you make changes to /etc/vsftpd/vsftpd.conf. To restart, as root type: # service vsftpd restart