当前位置: 首页 > 知识库问答 >
问题:

以拥有sudo访问权限的用户身份运行Ubuntu Docker容器

姬博瀚
2023-03-14

我试图编写一个docker文件,它创建一个拥有主目录的用户,该用户是< code>sudoers组的一部分,并以该用户的身份启动容器。

我面临的问题是,从容器内部,每个命令都需要预先附加 sudo,这显然会为创建的每个文件带来权限问题。

我这样做的理由是,我想要一个模仿干净Linux环境的容器,我可以从中为用户编写安装脚本。

以下是到目前为止我的 Docker 文件的副本:

FROM ubuntu:20.04
 
# Make user home
RUN mkdir -p /home/nick

# Create a nick  user
RUN useradd -r -d /home/nick -m -s /sbin/nologin -c "Docker image user" nick
# Add to sudoers
RUN usermod -a -G sudo nick
# Change ownership of home directory
RUN chown -R nick:nick $HOME
# Set password
RUN echo "nick:******" | chpasswd
# Install sudo
RUN apt-get -y update && apt-get -y install sudo

ENV HOME=/home/nick
WORKDIR $HOME

USER nick

共有1个答案

丌官招
2023-03-14

我不明白为什么这不起作用:

FROM continuumio/miniconda3
# FROM --platform=linux/amd64 continuumio/miniconda3

MAINTAINER Brando Miranda "brandojazz@gmail.com"

RUN apt-get update \
  && apt-get install -y --no-install-recommends \
    ssh \
    git \
    m4 \
    libgmp-dev \
    opam \
    wget \
    ca-certificates \
    rsync \
    strace \
    gcc \
    rlwrap \
    sudo

# https://github.com/giampaolo/psutil/pull/2103

RUN useradd -m bot
# format for chpasswd user_name:password
RUN echo "bot:bot" | chpasswd
RUN adduser bot sudo

WORKDIR /home/bot
USER bot

# CMD /bin/bash
 类似资料:
  • 本文向大家介绍以非root用户身份运行Docker容器,包括了以非root用户身份运行Docker容器的使用技巧和注意事项,需要的朋友参考一下 当您在Docker容器中运行应用程序时,默认情况下,它有权访问所有root特权。您可能已经注意到,当打开Ubuntu Docker Container Bash时,默认情况下您以root用户身份登录。在应用程序的安全性方面,这可能是一个主要问题。任何局外人

  • 我试图弄清楚如何使用Ansible(version2.0.2.0和python 2.7.3)创建一个名为“deployer”的用户,并能够使用该id登录服务器,然后进行“apt-get install”之类的操作。我的剧本是这样的: 运行这个playbook后,我可以以“deployer”(例如ssh deployer@myserver)的身份ssh进入机器,但是如果我运行sudo命令,它总是要求

  • 我正在Ionic中创建一个应用程序,它使用Firebase对用户进行身份验证。一旦成功执行身份验证,将其数据保存在Firestore中。用户Firestore集合中的一项是“activeUser:Boolean”,我可以在登录后通过“AngularFirestore”插件返回的可观察(用户$)进行监控。 我创建了一个canActivate类型的保护文件,以便在Firestore中的“activeU

  • 我使用Ansible安装了Nginx。要在Centos7上安装,我使用了yum软件包,因此默认情况下它是以root用户身份运行的。我希望它在Centos中以不同的用户(前nginx用户)身份启动和运行。当我尝试与其他用户一起运行时,会出现以下错误: nginx的工作。服务失败,因为控制进程已退出,错误代码为。有关详细信息,请参阅“systemctl status nginx.service”和“j

  • 问题内容: 到目前为止,我已经制作了一个Java应用程序,并在我的PC和铸造的PC中对其进行了测试。但是当我将我的应用程序“安装”到他的PC上时,该应用程序是我的另一个有迪斯科舞厅的朋友( Windows Vista 32位)无法正常工作,然后我继续搜索并发现问题是特权…我安装了Vista 32位和XP 32位虚拟机进行一些测试,我我无法使用管理员权限来运行我的应用程序。 有什么方法可以创建批处理

  • 我正在Docker中制作python Django应用程序的简单图像。但是在构建容器的末尾,它抛出了下一个警告(我正在Ubuntu 20.04上构建):