docker容器中创建非root用户
简介
用 docker
也有一段时间了,一直在 docker
容器中使用 root
用户肆意操作。直到部署 stable diffusion webui
我才发现无法使用 root
用户运行它,于是才幡然醒悟:是时候搞个非 root
用户了。
我使用的 docker 镜像文件是 centos:centos7.9.2009
,使用如下命令就可以拉取其镜像文件。
1 | docker pull centos:centos7.9.2009 |
接下来的内容都是基于该镜像进行操作的,仅供大家参考。
厉兵秣马
我们还是要做些准备工作。
1、创建/运行容器
1 | docker run -d -it --name c_os centos:centos7.9.2009 |
2、进入容器(此时用的是 root 用户,docker默认如此)
1 | docker exec -it c_os bash |
3、安装相关工具
1 | yum install -y vim |
万事俱备
做完上面的工作,我们就可以来操刀了。
跟着命令敲,都是基本操作。
1 | 添加 nuser 这个用户 |
需要为该用户 nuser
设置一个密码,比如 565656。
1 | usermod -aG wheel nuser |
编辑 /etc/sudoers
文件
1 | chmod u+w /etc/sudoers |
修改两个地方
1 | # Allows people in group wheel to run all commands |
编辑完成之后,关闭文件的编辑权限。
1 | chmod u-w /etc/sudoers |
我们退出刚才进入的容器
1 | exit |
指定用户 nuser
重新进入容器
1 | docker exec --user nuser -it c_os bash |
可以使用如下命令查看当前登入的用户是哪位
1 | whoami |
结果显示:nuser,搞定!