[RFC] Do not use root as default user [WIP] #307
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Connecting to containers as root causes issues with permissions when using cp-remote to sync files, or running commands without realising.
If the build user were to be connected to instead, file permissions for new files would be correct and commands that would create new files in the wrong places (e.g. cache directories owned by www-data) would fail but not cause a site outage.
Invocations of
container
that need to do privileged things like install software with apt-get, would have to be re-run assudo container
instead.This would be a breaking change as if people are using
container setup
, for example in a continuous-pipe.yml, they would need to update it to besudo container setup
.Either we run container with sudo or we need to go around adding
sudo
to all commands we run that expecting to be root.Downstream images will need to switch to root and back again to do their current software installations in their Dockerfiles but we could encapsulate this into container calls as build, e.g.
container install_packages one two three
would dosudo apt-get update; sudo apt-get install one two three; sudo apt-get clean; # etc
What do you think we should do?