Some of the pros and cons of both approaches

Pros of using a root account:

  • Separate password -- A separate root password can in many cases be a lot safer. It can be longer and more complex than your normal password since you'll need to use it less often.
  • Separate account -- When a user gets hacked, the hacker does not automatically get access to root privileges (via sudo).
  • Easier to differentiate between admins and users -- Admins can have all the access they need, while users will not have anything beyond what's reasonable.

Cons of using a root account:

  • Separate password -- It can be inconvenient to have to remember two passwords, especially on a home computer.
  • Separate account -- With an enabled root account, a hacker knows exactly what to target. On a multi-user system, if only one user account has administrative privileges, they might have a harder time figuring things out.
  • Easier to differentiate between admins and users -- Same as above. A hacker will instantly know what to target.

It is worth noting, that hacking rarely happens through password cracking, or brute force attacks. A much more common way to get privileges is e.g. social engineering, where users are tricked into giving up their passwords, or plain and simple surveillance, key-logging, etc. Despite what Hollywood would have us believe, the most effective tool a hacker can use is psychology.

Pros of using sudo:

  • One password to rule them all -- A user must only remember one password: their own. This makes administrative tasks a lot simpler, and much more convenient.
  • No dedicated root account -- As discussed above, this can be a lot safer.
  • Non-obvious system administrators -- A user account called john can be given admin privileges, and nobody would be the wiser just by looking at it.
  • Finer control over privileges -- sudo would allow to give certain users only some admin privileges, not necessarily full root powers. This might be beneficial on a multi-user system, with varying levels of roles, and is possibly less important on a home computer.

Cons of using sudo:

  • One password only -- And if that gets compromised, the whole system is compromised...
  • No dedicated root account -- sudo does not always suffice, some very low-level operations need a proper root account. Again, this might no concern home users.
  • Exposing the system to inexperienced users -- What's worse than a malicious user is a clueless one. Giving a user root privileges can be as dangerous anything. If super-user powers are just a password away, nothing will stop a user to accidentally wreck the system.
  • Possible hidden privilege escalation -- A script started with sudo will continue to execute with elevated privileges even when the user is logged in normally, and any commands the script calls, will be running as root. This might be intended behaviour but can easily become a security issue too.