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