UNIX-like operating systems (including Linux) use a concept called privilege separation to ensure that the system stays safe. UNIX was designed as a multi-user system from the ground up - that is, it was designed so that many people could use one computer running UNIX at once. Because most users don't need to be able to modify the core system only the system administrator should have that privilege. That privileged user is traditionally called root. (Root is a lot like Administrator in Windows.)
This makes sense on several levels. Commonly, a web server or other process that exposes a port to other (possibly malicious) computers will run as its own user (Apache runs as the user
nobody), so that even if the web server program is hacked, the attacker can't trash the entire machine quite so easily. It even makes sense for mostly single-user machines such as desktops: if other members of your family, for example, somehow manage to run
rm -rf / (do NOT run that), they won't have permission to delete every file on the system, like they would if there were no such thing as privilege separation.
There are several commands you can use to elevate your privileges. The
sudo command exists to temporarily give you root-level privileges when you need them to administer the system. You can also use the commands
su. The latter can be used only if you know root's password and is a good option if your account doesn't have permission to use
The root user can do anything on a system, with almost no exceptions. So even if you request something by accident, it will be carried out with little or no warning, even if it's bad for the health of your system. This is why it's good practice to do most of your activities as a normal user, and use root only when needed, like when you're installing a program.
You shouldn't need to use root to get rid of a segmentation fault. If root is the only thing that fixes a segfault, then the program has a bug. Programs should not fail like that just because they don't have root.