I would expect all the CMS to be able to do this but I am very familiar with Joomla and there is a Component called Docman that can be added. These two will give you exactly what you are looking for. I have used Docman successfully and it works very well.
You can set it to be viewable for visitors or only logged in folk. The docs can be uploaded from front end very easily. They can be set to only viewable, downloadable etc.