Users created with useradd
do not have sudo access by default, and cannot install packages, add users etc... Only root can do that (via sudo or directly from a shell or script).
Give the user theuser a home dir, (several ways to do that, use a command for instance [look near the bottom]).
And set accesses
Eg in /home/theuser
(sudo, or become root first)
sudo mkdir /home/theuser
sudo chmod 700 /home/theuser
# next create / move user home dir to /home/theuser
sudo usermod -m -d /home/theuser theuser
# give a password to the user
sudo passwd theuser
And the user will log in /home/theuser, can do, there, whatever he wants. Create, delete files and directories. Upload files (assuming he is allowed to use ssh to upload files via rsync for instance).
The last point from your question "even accessing other folders". Provided that other home dirs are - usually - only accessible by their owners (access like drwx------
or 0700
), do you really want the user not being able to see the system files etc...?
In this case, you have to jail the user to its home dir, see this document on AskUbuntu, actually not specific to Ubuntu.
The reason I was asking about the file system, is because you could also use the ACL (Access Control Lists) to set a specific access to a given user at any level of the file system(s). E.g. preventing the user from visiting some particular areas of the system. More information on ACLs