I have this Dockerfile:

FROM ubuntu:17.04 # Must have packages RUN apt-get update && apt-get install -y nano zsh curl git # Instal Oh my Zsh RUN bash -c "$(curl -fsSL )" RUN sed -i -- 's/robbyrussell/sonicradish/g' /root/.zshrc # Add none root user RUN adduser admin USER admin 

I'm connecting with the admin user with the zsh shell.

docker exec -ti linux zsh 

I'm adding a non-root user (admin).

I still want to execute a sudo command with this user, but it errors out:

$ sudo apt-get install vim zsh: command not found: sudo 

Same message with bash shell.

How can I run sudo commands with a non-root user?

When I don't use sudo I get a permission error:

$ apt-get install vim E: Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied) E: Unable to lock the administration directory (/var/lib/dpkg/), are you root? 
1

2 Answers

This is what I would do

FROM ubuntu:17.04 # Must have packages RUN apt-get update && apt-get install -y vim nano zsh curl git sudo # Install Oh my Zsh RUN bash -c "$(curl -fsSL )" RUN sed -i -- 's/robbyrussell/sonicradish/g' /root/.zshrc # Add none root user RUN useradd admin && echo "admin:admin" | chpasswd && adduser admin sudo USER admin 
6

Just create your non root user and add it to the sudoers group:

FROM ubuntu:17.04 RUN apt-get update RUN apt-get install sudo RUN adduser --disabled-password --gecos '' admin RUN adduser admin sudo RUN echo '%sudo ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers USER admin 

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy