Windows UAC vs Linux sudo

5 03 2009

As Windows7 gets closer to release people have started to pull apart the changes to User Access Control (UAC) to see if Microsoft have managed to get anywhere near the simple and sleek sudo system found under most Linux distributions.

So what does UAC do and why is it so important?

UAC is the system introduced in Vista that asks a simple Yes/No question every time a command tried to write, update or otherwise manipulate an important Operating System file or setting.

This sounds fine in principle and means it is hard for some pesky Virus or other malware to infect your system without your knowwledge. When you see it in action though you soon change your mind.

Try any action that triggers UAC and you will receive prompt after prompt after prompt asking if you want to allow the task to complete.

Are you sure you want to move the file?
Are you sure you are sure you want to move the file?
You know this might be your last chance to say you want to move the file?
Come on, those last times I asked might have been wrong. Are you really really really really really sure?

IS UAC really is that bad? YES. In fact it is one of the things that REALLY put people off Vista!

Now compare this with Linux and the sudo command. sudo is a prefix you give a command when you want it to run as administrator, or super user as it in known in Unix style systems. sudo stands for Super User DO.

If you want to check for updates you can type the following at the command prompt.

sudo apt-get update

Your will be prompted for the administrator password because the command needs to manipulate protected files. If updates are found you can type the following to trigger the upgrade.

sudo apt-get upgarde

This command also requires administrator access but as you have already supplied the password it just gets on and does the requested task. In fact any other sudo command you type into the same shell will not ask you for the password again.

Why does this escalation of priveldges work so well under Unix style systems?

Because Unix/Linux was built from the ground up with security in mind.

Microsoft has tried to emulate this functionality in Windows7 and reduce the constant nagging from UAC but in doing so they appear to have made it next to worthless if reports are to be believed.

The trouble with Windows is that it still provides backwards compatibility for DOS and Windows 3.1 applications.  In fact I have a client that is still using and wants updates to an application that is targeted on Windows 3.1 that I created MANY moons ago. Vista runs it fune but there in lies the problem!

This need to support aging systems that have no place in the modern world is the real issue that needs to be addressed. No amount of tweaking to the nagging UAC gives will change this fact.

As a final note… Visual C++ V1.52 is a painful place to work compared to a modern IDE.








Follow

Get every new post delivered to your Inbox.