企业🤖AI Agent构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
[TOC] 本文将介绍如何创建docker用户及docker用户组,并为docker用户设置免密执行`sudo`的权限。注意以下命令需使用root用户执行 --- ### **创建docker用户与用户组** 首先执行以下命令判断docker用户是否存在 ``` $ id docker ``` ##### **1.1 docker用户已存在** 如果docker用户已存在(此时docker用户组一般也存在了),则判断docker用户是否只属于docker用户组。即执行以下命令查看 ``` $ id docker uid=1000(docker) gid=1000(docker) groups=1000(docker) ``` 上面的输出中`groups`只有`docker`一个,说明docker用户只属于docker用户组。 而如果输出如下,则说明docker用户同时属于`docker`和`wheel`这两个组 ``` $ id docker uid=1000(docker) gid=1000(docker) groups=1000(docker),10(wheel) ``` 此时,需要把docker用户从`wheel`组中移除(因为不移除会导致后面的权限设置不起作用),执行以下命令设置docker用户只属于docker用户组 ``` $ usermod -G docker docker ``` 如果有必要,使用以下命令修改docker用户的密码(可选) ``` $ passwd docker ``` ##### **1.2 docker用户不存在** 如果docker用户不存在,则判断docker用户组是否存在,执行以下命令判断(`lid`命令会输出某个组下有哪些用户);如果没有报`docker does not exist`则说明docker用户组已存在,否则不存在 ``` $ lid -g docker ``` 如果docker用户组不存在,则执行以下命令:创建docker用户及docker用户组,并把docker用户添加到docker用户组中 ``` $ useradd docker ``` 如果docker用户组已存在,则执行以下命令:创建docker用户,并把docker用户添加到docker用户组中 ``` $ useradd docker -g docker ``` 然后确认一下docker用户只属于docker用户组。 如果有必要,使用以下命令修改docker用户的密码(可选) ``` $ passwd docker ``` ### **为docker用户设置权限** 我们希望docker能使用sudo来执行某些命令,且使用sudo时不需要输入密码。 用root用户执行命令`visudo`,然后在文件的尾部添加如下一行 ``` docker ALL=(ALL) NOPASSWD:ALL ``` 保存后切换到docker用户,执行一下命令`sudo ls`,如果没有提示输入密码则配置成功