julien-duponchelle / docker-osx

Fast and easy installation of Docker on OS X
1.03k stars 70 forks source link

Refuse to run as superuser #35

Open aanand opened 10 years ago

aanand commented 10 years ago

I had a fun time trying to set a friend up with docker-osx yesterday: their /usr/local/bin directory was owned by root, so we ran sudo curl ... and sudo docker-osx shell. This resulted in docker-osx hanging during VM provisioning. Not 100% sure why, but docker-osx ssh complained about key file ownership, which may well be to do with it.

To make matters worse, attempting to stop and remove the VM failed silently, so even after a chown ... /usr/local/bin, and a do-over, things continued to behave oddly. We had to open up VirtualBox and remove it with the GUI.

Three takeaways from this:

  1. docker-osx should probably never be run as superuser.
  2. There should perhaps be a note in the README, since docker-osx is manually installed with curl. Perhaps "step 0" should be "make sure /usr/local/bin is writable by you".
  3. To prevent VM sadness, docker-osx should detect if it's running as superuser and refuse to do anything.
aanand commented 10 years ago

Note: it might seem strange to run sudo docker-osx shell, but it was the only way to get docker-osx to download the docker binary (because that also goes in /usr/local/bin).

qdonnellan commented 9 years ago

Hey @aanand any update on this since you last posted? My group is having a "fun" discussion on this exact thing. Seems like brew install docker without having to sudo anything would be the bees knees.

aanand commented 9 years ago

No, haven't revisited it. Would be a fairly simple PR though.

Looking back, it might be smart to revise point number 2 - instead of putting it in the documentation, simply have docker-osx check /usr/local/bin for writability and exit with a helpful message if it isn't.

However, this is all moot if boot2docker solves the volumes problem, at which point docker-osx can be deprecated entirely.

julien-duponchelle commented 9 years ago

Your are right one of our target is to deprecate docker-osx in favor of boot2docker i think it will be more easy due to the fact @bfirsh is now a part of docker team.