如何让Ubuntu Server非root用户免密码执行docker exec命令
允许特定非root用户免密执行指定Docker容器的exec命令
操作步骤:
- 编辑sudoers配置文件
使用visudo工具编辑(避免直接修改/etc/sudoers导致语法错误):sudo visudo - 添加免密命令规则
在文件末尾添加一行,替换devuser为你的目标用户名,dev-container为指定容器名:
注意:先通过devuser ALL=(ALL) NOPASSWD: /usr/bin/docker exec -it dev-container /bin/bashwhich docker确认docker的实际路径,确保路径与规则中一致。 - 测试配置
切换到目标用户,执行命令验证:
此时无需输入密码即可进入指定容器。su - devuser sudo docker exec -it dev-container /bin/bash
注意事项:
- 不建议将用户加入
docker组:该组用户拥有完整Docker权限,存在安全风险,而sudoers规则可以实现更精细的权限控制。 - 若需允许多个容器或命令,可在
NOPASSWD:后用逗号分隔不同命令,或添加多行规则。 - 确保命令完全匹配:规则中的命令参数要精确,防止用户通过修改参数执行未授权操作。
内容的提问来源于stack exchange,提问作者Damiano
相关产品推荐
相关产品推荐

