I have an Ubuntu server and I run an FTP server on it. I changed its folder structure and want to restrict access of users to some of the files not all of them in a way that other files be hidden to users.
How can I do this?
It's just a matter of permissions. Supposing that your FTP directory is in /srv/ftp, first you should issue these two commands:
find /srv/ftp -type d -exec chmod 755 {} \;
find /srv/ftp -type f -exec chmod 600 {} \;
so that every file can be read and written by its owner only, and every directory can be read and written by its owner only, but can be explored by everyone.
Then, you can proceed in changing the ownership of files and directories. What should be visible through FTP will belong to the user ftp, while the rest will belong to root or any other user that is not ftp.
hide_fileoption invsftpdserver. So which ftp daemon you're running?