Chagrin:
[quote author=Ran Talbott link=topic=101259.msg766557#msg766557 date=1334901188]
Chagrin:
How small does a device need to be before it's socially acceptable to log in with root?If it supports multiple uids, most people should usually avoid being root.
It's not so much about security (unless it's a Windoze box): it's mainly about the fact that people make mistakes, and not being root frequently makes the difference between "an annoyance" and "a cluster(bleep)".
Not creating backups or failing to store your source code on an off-Pi repository is an entirely different problem than simply using root.
So let's look at how root differs from an unprivileged user. You can access all other users' files on the Pi, but to me that seems like a convenience. If multiple people are non-cooperatively using it and you're concerned about those security implications -- well that would be pretty weird on a $30 piece of hardware, but you've still got your backups. Like the article mentions, there's also the GPIO that a user cannot reach, but how is it any improvement to log in as an unprivileged user, su to root, adjust the permissions on the GPIO devices (which are apparently connected to some type of mission critical peripherals), then drop back to an unprivileged user? It's just a hassle and in the end you've reduced the GPIO security from root level anyway. Your device with a daemon-running-as-unprivileged-user is now no safer than it would be if the daemon was running as root.
Don't get me wrong, I'm not saying that you can't design your device for deployment with carefully restricted GPIO access or configure it to do things like store your collected data in a way that prevents its destruction from a non-root user, I'm simply saying that disallowing direct root login is a level of nannying that makes no sense for a device of this size.
[/quote]
I'm probably poking sticks into the bee hive, but I'll give it another shot.
The root account can mess with every single file in the file system. Every one.
If you want to give a user access to the GPIO device (or any other device), write a UDEV rule to put the device in a group that the user is also in. Then they can access them, no need to mess with root or change permissions etc. In fact, if you just want to open up the device to everyone then write UDEV rule to do that instead.
I really don't understand why the size of the linux system hardware changes how you would treat root access to the system. Don't get it. Can you explain why the size is a factor in the security of the linux system?