Each person should have their own individual account
Each application should have its own individual account.
Do not allow directly into the root account.This goes for any shared or application account as well.
Do not let users log in directly as the web server user,for example.At least require them to log intotheir individual accounts first,and then switch to the root or other shared account user.
When someone switches to another account,a log entry is created, and that can help with auditing.