- break up the script into modules and work on one at a time until its solid - don't assume that items like unattended-upgrades are desirable. In general, where you want to install more software than the user already has installed, it should be an optional module or prompted. Without that I wouldn't use this script for that reason alone. - some people have a purpose in using firewire and USB. Make it an option (my example: high end studio cameras) - consider reviewing https://wiki.mozilla.org/Security/Guidelines/OpenSSH and the release notes for the version of OpenSSH you are configuring. I wouldn't use your configuration. - why ask how many users to enforce diskquotas on and then ask for which user to enforce a disquota on? Simpler would be to read /etc/passwd (or count /home/<users>), provide a list to mark and then do it.