In order to upload a website you've created to DreamHost's servers, or make changes to an existing website, you need to create an FTP (File Transfer Protocol) user at the DreamHost Control Panel's Users > Manage Users area.
Every website hosted with DreamHost is "owned" by exactly one FTP user.. however, an FTP user may own more than one website (each one would have its own directory under the FTP user's root directory).
Can an FTP user only have access to one subdirectory on a Dreamhost website? yes
FTP Security Issues
FTP is not considered a secure protocol, as all of your traffic (including your login info!) is transferred over the web in plain text (which means an exceptionally sneaky someone could eavesdrop on what you're sending). For more information, see FTP#FTP_Security
SFTP users are similar to FTP users, except it is only possible to use a SFTP user to connect via SFTP, an encrypted alternative to FTP
All FTP (including Shell) users can also receive email, and so in a way they are also "mail users".
However, there are also special Mail-only users (also known as mailboxes) that are only used for reading and sending email, and cannot FTP nor access the shell. These mailboxes currently are all named in the format m######## although they can also be accessed using the entire associated primary email address. Each mailbox has one primary email address associated with it, but can also have unlimited other email addresses that also deliver to it (you can set this up from the Mail > Addresses area of the DreamHost control panel).
Note that it is possible that if a domain is removed, any m####### mailboxes associated with it might remain on the server. It is not possible to see such mailboxes in the control panel, only from the command-line.
MySQL has its own complex permissions system, and each time you need to access a MySQL database, you must log in with a username and password it recognizes. Everytime you create a new MySQL database with DreamHost you'll need to specify a unique username you'd like to create to allow access to it. This user is only for MySQL access and must be unique across all other accounts we host. MySQL also checks where you are connecting from and only allows access from Internet hosts it knows are okay. By default, we set this up to be all DreamHost servers, but if you'd like to access your MySQL database directly from your home computer or some other server, you can add more allowable hosts from the MySQL area of the DreamHost Control Panel.
Known affectionately as your Web ID, this user is the only one that doesn't give you access to any physical DreamHost server. Instead, Web IDs are only for logging into the web-based DreamHost Control Panel and managing your account. Web IDs are intended to logically represent one actual human being.. so a Web ID can own multiple billing accounts, with multiple domains, users (FTP/Shell/Mail), MySQL databases, and so on. You can share access to any of your account's features with other Web IDs as well, so there's really no reason to ever have more than one Web ID per human being!