The safest way is to set up a chrooted ftp environment.
man ftpd
and look for the section on how to set up a chrooted environment.
Main Topics
Browse All TopicsI am running a small web hosting service on a Unix server running solaris 8. I want to be able to restrict users to a certain "folder" or area in the server when they ftp in to the system to load their web pages. I know how to add a user to the system but I have not been able to figure out how to keep them from going outside of their particular folder. I imagine that there is a way to do this on Solaris. Any guidance is much appreciated!
This Question has been solved and asker verified All Experts Exchange premium technology solutions are available to subscription members.
Experts Exchange has been collecting answers to technology questions since 1996…3 million and counting! If you have a question, chances are we already have your answer.
If you can't find the exact answer you're looking for, ask our exclusive community of 50,000 experts. You’ll get a personalized answer from a trusted professional.
Thousands of free tech tips, tricks, how-to’s and tutorials are available in our peer reviewed articles section. See for yourself how smart our experts are, no login required.
Access the answers to your technology questions today.
30-day free trial. Register in 60 seconds.
Members of the expert community talk about why the experience at Experts Exchange is different than what you will find anywhere else.

Try it out and discover for yourself.
30-day free trial. Register in 60 seconds.
Join the community of experts here and help other tech pros by answering question in your area of expertise. You can earn FREE access to all Experts Exchange's premium features and resources.
You can also use "scponly"
http://www.sublimation.org
also see:
http:Q_20975062.html
Also, if the users do not actually access a shell account on the system, you can set their account home directory to the document directory where they are permitted to upload files (that is, their home directory does not NEED to be /home/user or /export/home/user). This is not really a security measure, just a system administration nicety.
1. Use chroot (as advised by TinTin) to change the user's "root" dir to their data directory. Then, they cannot move backwards into the main server dirs. You will need to create a /bin dir for the commands they will need (like ls, chmod, ETC.) See web pages and man pages about setting up "anonymous" ftp. You DON'T want anonymous FTP, but the concepts are the same.
2. In the /etc/passwd file, change the users shell to "/dev/null" or "/usr/bin/none". This will prevent them from having a login ability.
3. Make sure you use proper permissions on all the dirs. I.e. ...
rw------- /www/clienthtdocs root root
rw-rw-r-- /www/clienthtdocs/user1 user1 root
rw-rw-r-- /www/clienthtdocs/user2 user2 root
rw-rw-r-- /www/clienthtdocs/user3 user3 root
You can change the "root" group on the client dirs to something like "ftpadmin" too...making the admin (or root) the only member.
Be cautious of allowing "x" (execute) in the permissions structure. This will be necessary for certain types of web pages, however creates an opening for a classic hack (user FTPs in an executable script designed to cd backwards, or run vicious code, and then triggers it from the web or other source.)
Best of Luck!
M
Business Accounts
Answer for Membership
by: yuzhPosted on 2004-08-09 at 20:18:08ID: 11759277
You need to set the proper dir permisions, eg: you web server Document Root is
/www
under /www
you have dir1, dir2, dir3..., dirN etc
and you want user1 can only put files in dir1, userN, put files in dirN etc.
the Document Root is own by admuser or root.
you login as root (or su as root), and then do the followings:
cd /www
chmod 750 dir1
chmod g+s dir1
chown user1:nobody dir1
do the similar thing for dir2...dirN
then user1 can only FTP to dir1, user2 FTP to dir2....