azure - 容器应该如何在没有 sudo 的情况下授予对 groupadd 的访问权限?

标签 azure docker azure-devops azure-pipelines

我尝试在 Azure DevOps 管道中使用图像,但该图像不符合 the following requirement of Linux-based containers :

USER has access to groupadd and other privileges commands without sudo

因此,Azure 无法注入(inject)其片段,因为该功能不可用,并且管道失败。

这不是我故意对图像做的事情。我将如何允许用户访问groupadd等而不需要sudo

最佳答案

第一个答案是以 root 身份运行镜像。这根本不安全。
Josh Channings 给出了另一个答案,或更准确地说是一种解决方法。上Github 。在你的 Dockerfile 中,你应该...

...
chmod u+s /usr/sbin/groupadd /usr/sbin/usermod && \
touch /etc/sudoers && \
chmod u+w /etc/sudoers && \
rm -f /bin/su && \
echo '#!/usr/bin/env bash' > /bin/su && \
echo "echo 'su' has been disabled in this container" >> /bin/su && \
chmod +x /bin/su && \
...

基本上,我们覆盖/bin/su并更新权限,以便我们可以使用groupaddusermod。这一点都不方便,但确实有效。答案还涵盖了基础镜像中不存在 /etc/sudoers 的情况。

关于azure - 容器应该如何在没有 sudo 的情况下授予对 groupadd 的访问权限?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75534971/

相关文章:

azure - ADAL [AquireTokenAsync] 在公司代理网络内的 WebAPI 中运行时超时

azure - 当前正在安装Windows Azure Pack:网站v2,但在我的Web安装程序4.6中不存在该文件,这是什么原因?

mysql - 无法使用 MySQL Workbench 将 mysql 构建与 dockerfile 连接

ruby - Alpine linux 3.5和ruby 2.0错误?

docker - Kubernetes Pod 分布

node.js - 将TFS2017任务更新到最新版本

c# - Azure 上无法识别 WebAPI 路由

java - Android,从azure表中检索经过身份验证的用户信息

azure-devops - VSTS 拒绝拉取请求完成工作流

azure - 如何在Azure DevOps Pipeline中设置和读取用户环境变量?