On GNU/Linux there is the standard
root user, which always exists, this is different from your user account that you created when you installed Ubuntu.
Your user's home will be in
/home/sridhar. The root user's home will be
Aside from your user, and the root user there are a great number of other system users too, but these are used to run various background services used by the system only.
If you are familiar with windows the root user is very similar to the Administrator account, it's always there, as a fallback, but in general should only be used when you have to, 99% of the time you should use your regular user account.
Why do I use sudo every time I install a program?
Only the root user has access to the whole filesystem, which is needed when installing new software into the root (/) filesystem.
Only the root user can install programs and updates??
A regular login user usually only has access to his or her home directory, this prevents the user or a program run by the user from accessing important system files.
If I understand correctly I can never actually login as root.. Only as a user right
You can login as root,
sudo -s or
sudo su - do this providing a root shell, additionally you could set the root password:
sudo passwd root, and then you could log in as root like a normal user - don't do this!
Then why is there a home for the root user?
The root user still needs a home, this is where software looks for config files related to the user's preferences. when you use
sudo su - and then run a program, if that program needs a config file, it will likely look in the root users home directory.
A final note, the root user can access EVERYTHING, and should not be used for general day to day tasks. If a regular user account is compromised (say a bug in a webbrowser allows an attacker to run code on your machine), then only data in your user directory will be effected, and as a whole the system will be fine, and other users will be fine.
If you we're running your webbrowser as root and an attacker got in, they would be running code as the root user and have access to anything and everything.