Generally speaking, you would not want to use any of these options to “give users access” to your website.
Those options give a user almost complete ability to create and modify content on your site - and you will be responsible for any violations of DreamHost Terms of Service that they may commit.
Additionally, only one of these “users” could have that access to a given “website” (in the purest sense), so they would all have to share a set of credentials in order to gain mutual access.
I think you should consider exactly what you want these “users” to be able to do with their “access”, and consider using a different approach than ftp/ssh/sftp to provide them with that capability.
SFTP account - sftp (SSH ftp) file transfer access only. - This allows a user to use the ssh protocol for ftp purposes only, and is considerably more secure than standard ftp. It does not allow them “shell” access, but provides a more secure method for transferring files than that provided by regular ftp.
Shell account - allows FTP plus ssh/telnet access. - This is “the whole thing”, and allows the user to use sftp for transferring files and an ssh client to access the shell, as well as allowing them to use the less secure ftp for transferring files and the less secure telnet to access the shell.
What this means to you, if your user is a “shell enabled user”, is that it defines which linux shell environment is provided for your use immediately upon logging into the shell.
There are several different “shells” available; experienced linux users have different preferences regarding which shell environment they feel is “best”, and DreamHost offers them an initial choice. BTW, there is not “right” answer for this question ; it’s a matter of taste and personal preference (let the Holy Wars begin!). If you want to experiment in the shell, leaving the default “bash” setting will work just fine for you; you can always change it later if you want to experiment with a different shell as you learn your way around linux.
This setting will only mean something to your “users” if you allow them shell access - and, as I wrote in the beginning of this response, I strongly recommend that you not do this unless you clearly understand what that means (and from the looks of your questions, it appears that you do not).
If you are not experienced with such things, you should definitely not allow others (who might know more about this stuff than you do) to have shell access to your account unless they are your employee or someone you are choosing to trust with complete control of your website and your account.
I say this because with shell access, they can control your site completely, and can easily do things that can cause you to have your account suspended or terminated.
If you describe what, exactly, you want your “users” to be able to do, I’m sure that many on these forums can suggest ways to accomplish that without giving them any of those types of access.
It is also quite possible that, depending on what you envision those users doing, giving them ftp/shell accounts will not provide the capability you are trying to give them anyway.