Sudo vs. Root 327
lessthan0 writes "In Mac OS X, the root account is disabled by default. The first user account created is added to the admin group and that user can use the sudo command to execute other commands as root. The conventional wisdom is that sudo is the most secure way to run root commands, but a closer look reveals a picture that is not so clear." The article is about OSX but the debate is a little older ;)
Layered Security (Score:5, Informative)
The article doesn't say that sudo isn't the most secure way to run commands, it just details how to make it even more secure.
Re:Layered Security (Score:5, Insightful)
Re:Layered Security (Score:4, Funny)
Re:MUCH MUCH Much better solution (Score:5, Insightful)
Just pick a good damned password.
Seriously. Nobody really cracks passwords anymore. Sure there are the ubiquitous SSH scans on the net looking for just insanely stupid passwords. Pick a good password and move on.
Firstly... any security discussion that starts with "what if they have your password" is flawed. They shouldn't have your password, if you let it go, or its THAT easy to guess.... then your security is broken right from the start and there is nothing you can do YOU ARE FUCKED.
I worked at a place that did sudo for root passwords, and I thought it was one of the god damned stupidest things ever. The ONLY benefit of it, was that it forced us to figure out how to make secure passwords for root that people could easily memorize and taught us all to use mnemonics. That was seriously the ONLY benefit.
Basically if you log in locally, or use ssh for everything, then your password never goes out in clear text. If you worry about ssh, then fine... use key authentication, then your password never gets used for anything but sudo.
Basically.... this is a totally fake issue. If someone has your user account password, you are just screwed. They can trojan your entire environment such that the chances that you will EVER notice is minimal, and then they will just get the root password the very next time you sudo.
Bottom line... protect your password... your security depends on it.
-Steve
Re:MUCH MUCH Much better solution (Score:4, Interesting)
Re:MUCH MUCH Much better solution (Score:4, Interesting)
I'm sorry if I sound like I'm attacking you, but this is not the first time I've heard someone talking about some "secret hole/backdoor/vunerability" and I'm getting sick of the contentless assertions. If you're hiding it because you want to sell it on the black market, that's one thing, but if that's not the motivation, just don't think you're really doing anyone a favor by sitting on it.
Re:MUCH MUCH Much better solution (Score:3, Funny)
People don't crack passwords? (Score:3, Interesting)
Seriously. Nobody really cracks passwords anymore.
Umm, this is dead wrong. Password attacks are getting more and more effective and popular among serious attackers all the time. Why? Very simple: because as computers get faster, passwords get weaker. If the attacker can get a copy of the encypted password file, he's home free, because peoples' ability to remember passwords has not kept pace with the ability of computers to search them. Barring that, any authentication service that doesn't do lockou
Oh, great! (Score:4, Funny)
Re:Oh, great! (Score:3)
I'm going to be even more irresponsible and invoke our good friend Tim Towtdi....
Re:Oh, great! (ways around) (Score:5, Insightful)
Try the following: However, that's not going to stop joe user from copying bash over to
Better kill your scripting languages then, too. (Score:4, Insightful)
Re:Oh, great! (Score:4, Interesting)
I've never liked that "security measure" in mac os x or ubuntu. Take a IM app or browser. Find a bug in it, and exploit the hole by running "sudo rm -rf
AFAIK there's nothing stoping that from happening? What that tells to my head is "you can do anything as root by using sudo". How can that be called "security"? I use a shared computer between several people and the first thing I do is to run "sudo passwd" because, well, other person could do it if I don't do it before him.
If it doesn't have a password, I don't trust it. sudo just helps people to jump walls that they're not supposed to be able to jump.
Re:Oh, great! (Score:5, Insightful)
Re:Oh, great! (Score:2, Informative)
Re:Oh, great! (Score:3, Interesting)
As far as Ubuntu is concerned (dunno about OSX) it never was about security, or at least not in an abstract way, "what's more secure: root or sudo?". This is one of those myths that get perpetuated on mailing lists,
Sudo in Ubuntu was done for one thing: convenience
Re:Oh, great! (Score:3, Insightful)
Okay, wrong. Sudo still involves a password. Only allowed "sudoers" are able to run sudo, and they are prompted for a password. Sudo, in my humble experience, actually is more secure simple because of human nature. And here's why:
1) In distributions that expect you to use root, users tend to leave a terminal logged into root all the time. With sudo, there's an automatic t
Re:Oh, great! (Score:2)
Sudo (Score:4, Interesting)
Personally, I prefer sudoing a shell to run as root so I don't have to type the command all the time, but that's just in my home Ubuntu installation which I don't care much about.
Re:Sudo (Score:2, Informative)
Now, the servers at the workplace are a different story, though I tend to ssh in as root at times as well.
Re:Sudo (Score:2)
In my mind the sudo approach is an obvious chouce. But I use both approaches.
Re:Sudo (Score:3, Informative)
Not quite. The idea is to set it so root can't log in remotely, and that sudo requires the ROOT password and not the USER password.
This way a hacker would have to obtain BOTH the user password and the root password.
For even more fun, restrict SSH to not allow keyboard-interactive logins and require anyone who need
Re:Sudo (Score:3, Informative)
Not completely true, at least on BSD-ish systems properly configured. If you set the sappnd or schg flags on a file only root can change the file and even root can only append to the file (in the case of the sappnd flag). Since those flags can only be reset in single-user level, that greatly complicates the prob
Sudo is only useful when there are lots of admins (Score:5, Insightful)
For a single-user system, sudo is pointless. Nearly everyone is just going to sudo into a shell to do anything where root is needed on their own personal box anyway.
Re:Sudo is only useful when there are lots of admi (Score:2, Interesting)
Being a more experienced admin, that looks wierd and counterproductive. But here's the nice thing: it keeps users from opening up a root shell and then forgetting they're in that shell, where they could easily wreak havoc. I think that's a good thing.
Me, I pretty much just always ty
Re:Sudo is only useful when there are lots of admi (Score:4, Informative)
Re:Sudo is only useful when there are lots of admi (Score:5, Informative)
However, I never run sudo su Why? Being forced to type "sudo" in front of potentially dangerous commands forces me to think a second time and make sure I'm not doing something stupid. If I type rm -r * and get prompted that I don't have access, you bet I'm going to double check to see if I'm in the right directory.
Re:Sudo is only useful when there are lots of admi (Score:3, Informative)
Re:Sudo is only useful when there are lots of admi (Score:2)
Re:Sudo is only useful when there are lots of admi (Score:2)
Now what might be interesting is to see how Solaris's RBAC comes along. I'm still sort of new to it myself, but the little that I've done with it has allowed me to create a role that can manage a few services related to a single project (they are limited to start/stop on a temporary basis and refresh as needed). In my case, I setup that role as having manage and modify rights in SMF. The users don't need to have root or sudo, just a role login which doesn't have a lot of
Re:Sudo is only useful when there are lots of admi (Score:2, Interesting)
That's right.
What many linux affectionados do not realize is there are many much more advanced power user control systems then sudo. My favorite example is RBAC [sun.com] which has, unlike sudo, some corporate/security professional appeal. See there. [sans.org] It is mostly used on Solaris where the integration level is impressive. For example we can make a requirement that some operations can be only performed by two admins (a "two men rule" [sun.com] ).
Sure, sudo can also can be taken to a much higher level when properly configured,
better way (Score:2)
It'd be nice if this had a distinctive window border. It's possible with fvwm I think.
Better yet, duplicate the GNOME (or KDE) menu as a white-on-red version labled "root", with all the games and crap greyed out. That's pretty much sudo for a GUI. (per-command stuff in the regular menu is lame, because some commands are useful both as root and as non-root)
Re:Sudo is only useful when there are lots of admi (Score:2, Insightful)
Remote managment (Score:3, Interesting)
This just in: (Score:5, Informative)
C'mon, anyone with even a passing involvement with sudo has looked at the sudoers file. You can configure pretty much any group or role based permission you want; if you can describe it as a logical statement, you can do it in sudo. Yes, out of the box, you can sudo to a shell (or to an app which has a shell escape).
Re:This just in: (Score:3, Informative)
With one slight problem... Yes, for a handful of well-known low-complexity programs, you can lock down sudo. For anything more, you may as well just give the user root... For example, if you let your sudo'ers use any shell or editor, or invoke any world-writeable script, game over. Most process-, file-, and account-management programs. Anything that allows explicity suspending to a shell (or invoking an arbitrary subprogram). I
Old news and Poorly written (Score:2, Insightful)
Must be a slow day for news for nerds. More like news for noobs
Re:Old news and Poorly written (Score:3, Funny)
Stuff that flatters?
Good Advice (Score:5, Interesting)
Re:Good Advice (Score:3, Insightful)
Personally, I also like the ability to go back through the logs and see what I've done...
-Dom
Sudo vs. Root? (Score:5, Funny)
How To Become Root on OS X (Score:3, Informative)
Welcome to Darwin!
Hunter:~ Adam$ sudo su
Password:
Hunter:/Users/Adam root#
This is on an unmodified install....woops I guess that root account wasn't disabled after all!
Re:How To Become Root on OS X (Score:3, Informative)
Re:How To Become Root on OS X (Score:5, Informative)
Re:How To Become Root on OS X (Score:5, Interesting)
Why people keep on confusing this?
Password login to the root account is disabled by having the shadow password set to * - thus you can't enter a valid password for root. Just because password logins are disabled does not mean the account is disabled — try ps -U root -u root u sometime. Besides, 'root' is just one name for uid=0, change your user's uid to 0 and bam! you're it, whatever name you have (but then if you can change your uid you're it already, this was just an academic example)
Also, if your login relies on other methods than pam_unix then the star in
Re:How To Become Root on OS X (Score:2)
Use sudo to revoke root from a single user (Score:5, Insightful)
But when you share a root account, revoking privilege from a single admin means that every remaining admin has to learn a new password.
Re:Use sudo to revoke root from a single user (Score:2)
untrue (Score:2)
Re:untrue (Score:3, Insightful)
2 passwords instead of 1 (Score:2)
2 passwords to gain access to root on your system if root
itself is disabled - a user password and the root password.
If they cracker has already somehow cracked the root password
then I doubt they'll have much trouble with a user password
which are usually far less secure.
Re:2 passwords instead of 1 (Score:5, Insightful)
Firstly, asking for a root password has no effect on the security of the system. A cracker does not have to crack an extra password. Once your user account has been cracked, if you know the root password and use su (or sudo or whatever), then at some point you are going to login and do that. Unfortunately, the cracker knows your user password - your
This can be solved, with some form of secured authentication path (like a smartcard device, which can't be trojaned using the user's password, and there are also ways to do this without needing extra hardware). sudo supports stuff like that, if you know what you're doing. But simply asking for a second password, in an application running in the terminal, is no more than a speed bump. It's not the second layer of security that it looks like it should be. Anything you type into the terminal is compromised once an attacker has your user password.
Secondly, shared passwords are bad security. You can't easily change them - it has to be arranged between several people. You have to pass the secret between at least two people on at least one occasion, and somebody else can overhear when you do that. People tend to be less careful about information that is known to several people. If the secret leaks out, there's no easy way to trace who leaked it. There's all sorts of issues with shared passwords. If you really wanted a second password, you should have one 'root' password for every user who has root access (Kerberos systems allow for this scenario, because a Kerberos environment can have secure authentication paths; sudo and su don't, although you could have one 'login' password and one 'sudo' password by creative use of PAM, but you have to tackle the authentication path issue first).
Thirdly, the point of sudo asking for the user password is to authenticate that the user currently sitting in front of the computer is the same user that logged in at some point in the past. Users are forgetful; they walk away from their console to get coffee without locking it. sudo attempts to verify that the user currently sitting there is probably the right one, and not somebody else who snuck into their office. If you have sudo ask for a single shared root password, then one of the other users with root access could use somebody else's account, and would appear in the logs as that user. That means they deflect blame for their actions onto somebody else. If you really wanted to have a second password with a shared root password, you should ask for both the user and the root password.
You could argue that a user with root access can always just clean the logs afterwards - but this is not necessarily true. A system can be configured so that syslog immediately sends every message over the network to another host. sudo deliberately sends the message to syslog before running the command, so that this scenario remains secure. The user could immediately disable this configuration, but they can't stop that first message from going out, saying who they are and when they logged in. (We will assume that this scenario involves ssh access to a server located in a locked datacentre, so there is no opportunity to interfere with the physical network connection).
sudo's way of doing things really does have security advantages. It may be true that these advantages aren't relevant to the default macosx configuration, but that does not mean they don't exist. However, using a single root password, like the article author suggests, does not have security advantages over the default behaviour (see the first point in this post). And the default behaviour is more convinient for users (who only have to remember one password instead of two), which is almost certainly why Apple set it up that way. The article ignored this aspect.
Re:2 passwords instead of 1 (Score:2)
My favorite sudo command: (Score:5, Funny)
Re:My favorite sudo command: (Score:2)
Messed up sudoers (Score:4, Funny)
Now, a live CD and a setuid bash executable managed to fix the issue directly, but we learned an important lesson about root-less systems. If you screw up something like the /etc/sudoers, the system is hosed unless you
have physical access.
So as much as I use sudo for almost all my UID 0 needs, I think root still needs to live in every box just to safegaurd against such simple mistakes which ended up costing more hours than the sudo would've saved.Re:Messed up sudoers (Score:3, Insightful)
Re:Messed up sudoers (Score:4, Insightful)
And in other news, opticians around the globe are surprised to find that hindsight is always 20/20.
Re:Messed up sudoers (Score:2)
Re:Messed up sudoers (Score:4, Informative)
btw you don't need a livecd if you can get to the bootloader prompts, just use init=/bin/bash on the kernel command line and the box will drop straight into a shell. Type exec
Re:Messed up sudoers (Score:2)
Single user mode. No boot media required.
If you've disabled single user mode, there's not much that can be done. That's the nature of security.
Re:Messed up sudoers (Score:2)
linux single rw init=/bin/sh
Next?
You might also like to keep an alternative such as _super_ installed, against this eventuality.
Re:Messed up sudoers (Score:2)
Re:Messed up sudoers (Score:5, Insightful)
Yes, this is the voice of experience with breaking just about everything at some point or another - it's how you learn. Well, it's one way *I* learn, anyway.
Re:Messed up sudoers (Score:2)
So as much as I use sudo for almost all my UID 0 needs, I think root still needs to live in every box just to safegaurd against such simple mistakes which ended up costing more hours than the sudo would've saved.
If you blow up /etc/passwd or /etc/shadow, you're still g
Re:Messed up sudoers (Score:2)
Re:Messed up sudoers (Score:2)
The best way to secure the root account... (Score:5, Funny)
Re: (Score:2)
Re:The best way to secure the root account... (Score:2)
Re:The best way to secure the root account... (Score:2)
Re:The best way to secure the root account... (Score:2)
guesses: 0 time: 13:23:10:57 c/s: 4993 trying: cwtdi50d
1337 passwords 1, Mat's brain 0
Problem with both sudo and Root (Score:4, Insightful)
Don't know any way of solving this except for training though. Or possibly making it IMPOSSIBLE to do certain tasks. But that no good solution.
No it's not a mystery (Score:5, Insightful)
All that is in bash history for the root user. And anyone who knows how to clean that can clean the log as well.
Re:No it's not a mystery (Score:3, Informative)
All that is in bash history for the root user. And anyone who knows how to clean that can clean the log as well.
Actually, this is not always true. In some environments remote logs are kept and versioned. Root on a workstation would not have access to wipe the remote log, only add more entries to it. Still, anyone working in such an environment would almost certainly have made other changes to the workstation anyway, so arguing over the default setting is pointless.
Sudo more secure? (Score:2, Insightful)
I'm just a part time sysadmin, so I don't know the nitty gritty, but it was beat into my head to use sudo instead of root simply so that I wouldn't "forget" I was in root and do something stupid...
There is no reason (usually) to be logged in as root, and that anything I need to do as root I could do using sudo. It seems to me that you hack with sudo just as easily as with root...
Ubuntu (Score:3, Interesting)
Sudo is a tool not the entire solution (Score:2)
The first one is all about convinience. It makes it easy to be logged in as regular user and issue root commands as needed. This lessens the incentive to be logged in as root al the time and thereby can reduce the risk of accidentially issue unfortunate commands as root.
The second is a help to
Re:Sudo is a tool not the entire solution (Score:5, Informative)
For example, I have this command in my sudoers file:
www ALL = NOPASSWD:
This allows apache to use
Didn't we already have the wheel group for this (Score:3, Informative)
Re:Didn't we already have the wheel group for this (Score:2, Informative)
Long answer: man sudo and man sudoers
medium length answer: sudo gives a much more fine grained access control. If I had known about sudo I never would have needed to write wrapper programs with setuid permissions and all kind of groupbased access control to them myself.
That's an Interesting Pickle (Score:2)
Here's the Score (Score:5, Interesting)
By default OS X machines use the same password for sudo commands as they do for the regular user account. If you are more concerned about security than the average bear (or OS X user) you can change the password or you can disable sudo altogether and enable the root account with a different password. All of this is good info for those interested in security, but who are still learning.
From this article I predict a number of people knocking this default setup and then a rehash of the old argument as to what the default should be. I contend, that it is probably the correct default. OS X is a workstation not a server. It is designed for normal users. Having two password (heck having even one) is a usability issue for many users. People are confused by the whole concept of passwords and many have trouble remembering even one. Further, setting a second password only slightly increases the difficulty for a competent cracker. The truth is, there will be local escalations for the foreseeable future. OS X is not a super-locked-down server.
Basically, for the average user, a second password gains them very little except confusion. For more advanced users, well they can change the defaults, as many do. Maybe the only issue here is the in-between people. Those are the people targeted by this article. Those that might want to change the defaults if they knew about the issue and how to do it. Maybe this configuration should be made a little easier, or even incorporated as an option in the install process.
This default bears revisiting should Apple ever move to a more locked-down system. Maybe when users are accustomed application specific privileges they should also be introduced to a more layered security scheme. For now, though, I think the usability issue outweighs the security one.
Personal Feeling (Score:2)
Same reason I don't allow root login through SSH and why I firewall the SSH ports on my machines.
sudo -s (Score:2)
Quick Solution to sudo abuse (Score:2)
Requiring root password? Isnt that bad? (Score:2)
Hu? I though one of the strength of sudo (over su) was that you DONT have to give out the root password to every user that needs some administration powers.
Of course, if the root account is completly disabled and the root password is ONLY used to authentificate against sudo, it's slightly less of an issue, but even then I dont think it's better than requiring the user password.
Example
admin Alice has all powers (can sudo a shell)
admin Bob can only edit h
Old, but valid news (Score:3, Insightful)
I don't use much OS X but I do use Linux quite abit. When I set up my machines, of course I use root access, lazy heck no. I have hordes of little tweaks and such to perform, packages to install, things to edit and permissions to set. If I had to use sudo, my first command would be to open a root bash shell. As for security, a new system it not accessible to the outside, thats it. After a system is up and running, I tighten things up.
First thing, as mentioned, is to disable root access by ssh. Of course, use public keys instead of passwords where possible. However why not go a simple step further, and the article missed that. Most of my accounts, and certainly all those accessible with ssh don't even need the privileges to use sudo or su to root at all. In fact in most cases my externally accessible shell accounts have a very limited set of commands they can run, simply because shell access is so insecure to begin with (hello gcc under remote shell users). I feel that this is clean and efficient and not a real pain to setup.
If you are paranoid and want a 2nd password for "root" access, use such a limited user for all users, then make a second account that may use sudo or root and log the heck out of it. Make each prospective admin su to that first. in the end, its only how much security is reasonable that wins. if you need more unplug the box and lock the thing up in a closet to prevent physical access by lock key, this too can be broken...
When a pack of wolves hunt a herd of sheep, as a sheep you need not out run the wolves to be safe, only the slower sheep. These slower sheep (aka windows) are generally quite abit slower these days than you (OS X). However, this all depends on the number of wolves you keep (or allow) on your netoworks... If you can't generally trust your users you have other problems.
Alternate methods (Score:4, Informative)
Solaris' problems were even more acute. Sudo was a download; it didn't come with the system. If you changed root's shell from the minimal Bourne shell the boot scripts would malfunction. More, root's home directory was "/". So setting up a personalized environment where you could use root access effectively was a pain.
The solution I came up with was a second root account. I just added another name with uid 0 using a seperate password, a seperate home directory and the ksh shell. Then I randomized the main root password, stored it away and promptly forgot it. I'd only need it for fsck on boot.
Later when I was in charge of multiple system administrators I gave each one their own root account. This let them set up their environment in a way that worked for them, it showed me who was using root commands when and it logged their commands to individual
It also means that like with sudo when a sysadmin leaves I don't have to change all the passwords. I just delete their account.
I still use sudo for folks who I don't expect to do much as root, but the sysadmins get their own root account.
Pretty Tenuous Argument (Score:5, Insightful)
In related news, I am so tired of all of these non-news blog entries that keep being put on Slashdot. Give me real news from a reliable source, not some no-name idiot that has no clue what he is talking about. Seriously, we need some sort of blog tag that allows us to immediately identify blog articles and appropriately ignore them.
Phil Collins (Score:5, Funny)
pcollins$ su su sudio
TONS more info on main sudo page (Score:2)
I'm surprised this article made the front page of /. as it arguably confuses the issue more IMHO.
Sudo insecure if same account used for email (Score:5, Insightful)
So basically their password gets sent openly when they login via POP to check their email. Anyone with a sniffer can get their password, login, and have full sudo access.
Now that's great security for ya.
That's why when I install a distro like Ubuntu that defaults to using sudo I always make the first account a dedicated admin account. Which sort of raises the question of why not just use "root" in the first place...
I, Root (Score:2)
Re:I, Root (Score:4, Informative)
Windows actually has a similar feature, sort of- right-click on something and choose "run as...", then log in as an administrator.
Re:I guess that this article can be skipped (Score:2)
Re:I guess that this article can be skipped (Score:3, Interesting)
Try it. Right click on the link to application or application itself and select "Run As". (Also you can hold "
Re:I guess that this article can be skipped (Score:2)
First of all, windoze does not have a "mandated GUI". You are free to write console-based apps in windows. I'm not sure what all of that "right click" and "run as" crap is either. Just drop to a console and type "runas /usr:admin ". You can use the switch "/profile" or "/noprofile" to control whether the "fancy stuff like desktop and registry" (which I'm assuming you mean the user's profile) are loaded. If you absolutely must use the mouse, then just create a script file and then create a shortcut to i
Re:The Monad shell won't be in Vista (Score:2)
Re:Same applies to Ubuntu (Score:2)
With sudo taking the user password, the second barrier doesn't exist if the first barrier was taken by figuring out the password.
BTW, you can also give the root account a different name, so the root account name will not be known to the attacker either. As bonus, if you see any attempt to login as "root", you are like