Slashdot Mirror


Root as Primary Login: Why Not?

A user writes, "I help moderate a forum dealing with Mac OS X, and I'm having an awful time convincing a fair portion of our readers that logging in as root all the time is a Really Bad Idea. Worse, though, are the ones who try to convince others to log in as root all the time, claiming it's 'more Mac-OS-9-like,' or saying 'it's not really more insecure,' or even that 'a firewall should deter hackers pretty well.' I know all the standard arguments, but they're not working out. Does anyone here have some real-world anecdotes that I can point to?"

6 of 164 comments (clear)

  1. Re:Why i have to log in as root. by lexarius · · Score: 5, Informative

    Well, you could have a script run at boot time to connect the adsl, or one that is set to run as root no matter who runs it.

    As for the original poster, I don't know what to say. In OS X root still has to give his password for authentication screens. The only convenience I can really see it having is to mess around with system libraries and configuration files unchecked. Oh yeah, thats right. Most unices aren't very vulnerable to virii because the user isn't root, so the virus can't get at the important things. The most a trojan could do is take out your home directory. Your system would still run.

    Of course, logging in as root makes the system slightly more vulnerable to local attacks, but that isn't saying much.

    Cmd-S during boot-up.
    fsck -y
    mount /
    SystemStarter
    passwd root

    System compromised.
    But thats a feature. I think it can be disabled, possibly by supplying an OpenFirmware password... auto-logging in as root sort of ruins that, though.
    If people want security similar to Windows, tell them to run as root. OS9 is somewhat more "secure" than OSX because it was meant to be stupid-proof. Running as root in OSX is like telling the computer you really know what you're doing. If you don't, you shouldn't.

  2. Re:Why i have to log in as root. by foobar104 · · Score: 4, Informative

    Also, sudo is a great utility for doing things as root, does it come installed by default?

    Yup, sure does. As far as I know, it's been there since forever. At least since 10.0.3, which was the earliest version that I used regularly.

  3. Here's one. by Eagle7 · · Score: 5, Informative

    Let's say that you want to change the permissions of all the files in your home directory to go-rwx (which make sense). So, you type:

    chmod go-rwx ~/*

    But by mistake, you hit the space bar, and get:

    chmod go-rwx ~ /*

    By the time you realize the hard disk has churned too long, you'd just gone and wiped the permissions on /bin, /sbin, /var, etc. You're system is now screwed up to the point where it's probably faster to reinstall than change all the permissions. If you weren't root, you'd see something like this (from a Linux-PPC box):

    [pts/2@tardis:/home/dmorriso @00:45] chmod go-rwx ~ /*
    chmod: /bin: Operation not permitted
    chmod: /boot: Operation not permitted
    chmod: /dev: Operation not permitted
    chmod: /etc: Operation not permitted
    chmod: /home: Operation not permitted
    chmod: /lib: Operation not permitted
    chmod: /lost+found: Operation not permitted
    chmod: /mnt: Operation not permitted
    chmod: /opt: Operation not permitted
    chmod: /proc: Operation not permitted
    chmod: /root: Operation not permitted
    chmod: /sbin: Operation not permitted
    chmod: /tmp: Operation not permitted
    chmod: /usr: Operation not permitted
    chmod: /var: Operation not permitted
    [pts/2@tardis:/home/dmorriso @00:46]

    And yes, back in the day, I did make this oops and had to reinstall, because I had used su rather than sudo, and had forgotten to un-su. I started using sudo right afterwards. :)

    --
    _sig_ is away
    1. Re:Here's one. by foobar104 · · Score: 4, Informative

      chmod go-rwx ~ /*

      I just want to second this. I did the same thing once, but on an SGI O2 rather than a Mac. My variation: chown -R foo / when I meant to type chown -R foo .. The dot and the slash are just too damn close together for comfort.

      That was when I learned that you can't boot an SGI if files like /bin/sh and /sbin/init aren't owned by root.

      And yeah, it was easier and faster to just reinstall the OS than it was to try to fix the ownerships.

  4. Re:You don't log in as root in macosx by Drakino · · Score: 4, Informative

    At install there is no root user created. So by default you cannot log in as root from the gui or via su. sudo is available however to users who are set as "admin".

    You can enable root through the netinfo config utility. It asks for a new root password.


    Partially correct. root is created on install just like any other Unix, and is the owner of most files on the system initially. Just who knows what the password is. Netinfo lets you set a different password, but all it is is a pretty GUI for "sudo su; passwd root".

  5. Re:Why i have to log in as root. by Permission+Denied · · Score: 4, Informative
    Well, you could have a script run at boot time to connect the adsl, or one that is set to run as root no matter who runs it.

    OS X, like most unices, doesn't honor the set-uid bit for scripts.

    I would just write a trivial C program and make that set-uid:

    #include <unistd.h>

    #define ADSL "/path/to/adsl-connect"

    int main()
    {
    execl(ADSL, ADSL, NULL);
    return 1;
    }

    On OS X, install dev tools, compile as "cc file.c -o my-script" and then "chmod 4755 my-script". You can then run it from a normal user shell and the script is run as root (make sure the file is owned by root).

    NB: I'm not replying directly to you, but rather to the original poster who wanted to know how to do this.