web-dev-qa-db-fra.com

Exécuter la commande Sudo avec un utilisateur non root dans le conteneur Docker

J'ai ce 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 https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
RUN sed -i -- 's/robbyrussell/sonicradish/g' /root/.zshrc 

# Add none root user
RUN adduser admin
USER admin

Je me connecte avec l'utilisateur admin avec le shell zsh.

docker exec -ti linux zsh

J'ajoute un utilisateur non root (admin).

Je veux toujours exécuter une commande Sudoavec cet utilisateur, mais le résultat est erroné:

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

Même message avec bash Shell.

Comment puis-je exécuter des commandes Sudoavec un utilisateur non root?

Lorsque je n'utilise pas Sudoname__, j'obtiens une erreur d'autorisation:

$ 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?
2
Kevin

C'est ce que je ferais

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 https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
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
3
Grayson Kent