# About root, spot and fido

This is a short explanation of why users run as the administrator (root) in Puppy Linux, and/or use the non-root spot and fido accounts.

## root, spot, fido

In a nutshell, root login gives you total access to everything, whereas a non-root login gives you restricted access (that is configurable for each user by the administrator).
Puppy is not a multi-user system as are most other Linux distributions, in which there is a root login plus any number of non-root login accounts.
Puppy on the other-hand, has root, plus just two non-root logins, named spot and fido.

## root

There are two main objections to running as root: firstly, that you might accidentally do something dumb, such as delete important files, secondly that if someone gains access to your computer, either remotely via the Internet/network, or locally, they will be at root-level and able to do much more damage than if they gained access as a non-root user.

### Doing something dumb

In the case of accidentally wiping important files, which files are important to you? Your own personal files and data of course, which regardless of whether you are logged in as your non-root account, or logged-in as root, you are just as prone to doing the same dumb thing.
That is, your personal files, settings, applications, are all owned by the non-root user, and can just as easily be deleted by the non-root user as can be deleted by the administrator.
In other words, this argument against running as root is itself dumb. At least in respect to the safety of your own files.

Where the "doing something dumb" argument is valid is in a multi-user system, where the administrator could accidentally delete or otherwise compromise another user's files. However, Puppy is not multi-user.

With regard to system files, they can easily be restored, in fact Puppy makes this easy as the entire system is in one Squashfs file.

### Remote access as root

What are you afraid of? Someone getting at your personal files and data, especially such things as identification and login/password data. Much of this is on your computer, and if you run a distro in which you login as a non-root user, are in files owned by your non-root account, meaning they are accessable equally by someone breaking in as non-root user or as root.

However, there are two scenarios in which running as root has a security risk, only one of which applies to Puppy.

Firstly, if you login non-root, you could bump up to root-level to perform certain operations such as keep a file of usernames and passwords. There are some applications also that use secret files owned by root, that non-root users are not supposed to read. Thus, anyone gaining access as root, can read all of those files.

A note on the side about the above paragraph: major distros such as Ubuntu allow the first user account to bump up to root just by prefixing commands with "sudo" or "su", without requiring root password, which makes the whole protection mechanism a joke. Considering that most Ubuntu users are using this first login account as their regular login.

Secondly, in a multi-user environment, the enemy may be another user. You would never have users logging in as root in that scenario. But, I repeat, Puppy is not multi-user.

Note, Puppy allows multiple session save-files, which are usually managed by one user for different usage profiles. However, this can also cater for different users, even with optional password protection on a save-file, however this is only intended to be used in a "friendly" local environment. It is a very light-weight alternative to a multi-user system.

Puppy supposes a "friendly" local environment, and the main threat is from someone gaining access to your computer via the network ports while you are online.
Which is highly unlikely in Puppy, due to the firewall, minimal daemons (with network capability disabled). But, the concern is still there...

## spot

This brings us to 'spot', which is a classical name for a dog. But, spot is not a normal user, you don't login as user spot. Instead, you bootup in the normal way as the root user, but you can choose to run some Internet applications as the restricted user spot.
This means that you have unfettered access to your local system, all the benefits of root, no hassles with file/directory ownerships and permissions, no restrictions on access to all hardware.
But, you can run, for example, the browser, as spot. The home directory for spot is /root/spot, and the browser will only be able to (normally) edit/create/write files inside /root/spot.

With spot, you have the best of both worlds. Freedom in your local system, a restricted user for Internet access.

Note, at the time of writing, Puppy offers only Didiwiki personal blog running as spot and the browser optionally running as spot -- you can choose your level of web-browsing danger, via the Login and Security Manager in the System menu.
A fork of Puppy, FatDog64, features all Internet applications running as spot.

## fido

fido is another name for a dog, and is a full non-root login account, as you would get in any other Linux distro. With one peculiarity, it's home directory is /root (which may indeed seem very peculiar to you, but there is a reason for it!). As with other distros, you would use 'su' or 'sudo' to perform administrator activities.

fido always requires administrator password to perform administrator-level operations.

fido is offered as an option at the first shutdown of Puppy, when you are creating a save-file for the session. If you opt for fido, at next bootup you will be automatically logged in as fido. Note though, fido is not quite mature, so not yet recommended to be used.

## Final note

Puppy is designed for people who know what they are doing and what they want, and they want to do it with the least hassles. They also want exclusive use of their computer, or maybe will share with a trusted person. If you want to put a small child in front of your computer and let them wreak havoc, Puppy is not recommended, but then, they could wreak havoc regardless of operating system.
At least with Puppy, you can rescue an old PC, install Puppy, and let him/her do whatever. It is affordable for each user to have their own separate hardware.

## Links

FatDog64, a fork of Puppy created by "kirk" and "jamesbond", has since its inception run all network apps as user spot. Those guys have created an excellent web page that explains why running as root is safe (or not less-safe than running non-root):

http://distro.ibiblio.org/fatdog/web/faqs/login.html

Some more relevant links:

http://igurublog.wordpress.com/2010/01/16/fear-not-root/
http://web.archive.org/web/20080604034010/grafpup.org/news/?page_id=243