This question comes to you from the the common WindowsNT advice that "I", as the computer administrator, should login with a normal unprivileged user account for day to day use. Does this concept have a place in the Linux (Specifically the Debian and Ubuntu [derivatives])?


In fact it does not matter much.

The admin / normal user separation comes from the world of mainframes, back in the previous century; it was expected that a given computer was used by several (many) users, often at the same time, and these users do not trust each other. The OS enforced separation, and becoming "administrator" allowed for bypassing that separation, and thus was the ultimate goal of any attacker. In that models, attackers are the users themselves.

In modern computer usage, especially for "workstations", there is only a single user on a given machine. Your computer is yours; thus, you are not an attacker. It is expected that you can become an administrator whenever you wish it so, and, in practice, since you have physical access to the machine, it would be hard to prevent you from doing so. Attackers, in that model, are external people who want to access your data (not root's data, but yours). The attacker wins if he gets to run his code with your privileges, because then he can plunder all your data, and/or use the machine as a relay host to attack other machines. In modern workstation usage, there is no strong security need for user/admin separation. You still want to log in as a non-root account (but still sudoer) to protect you against accidental mishaps: as a non-root, if you want to make your machine unbootable, you have to do it on purpose. Anyway, due to the longstanding firmly entrenched Tradition of mainframes, modern Linux distributions frown upon opening sessions as "root", in the same way that playing satanic hard rock might offend the Pope (although that's not guaranteed with the current incumbent).

What you do with your machine will fall somewhere between these two models, but probably closer to "modern workstation" than "mainframe". As a rule of thumb: if your machine does not run a SSH daemon (sshd), then you are in the "modern workstation" model and user/admin separations are irrelevant; you can be a sudoer as much as you want.


I'd say that's fine. As long as you don't preface your commands with 'sudo', you're just like any other user on the system. Just be mindful that when you use sudo, you're borrowing the power of root. Don't use sudo for untrusted programs and scripts, and keep your password extra secure.

However, if there is a sudo vulnerability that allows for authentication bypass [*], you would be at risk since you have the right to use sudo. If that's an acceptable risk to you, then use a sudoers account for your day to day. If not, work out something else.

[*] which would be AWFUL

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.