发布于 

docker容器中创建非root用户

简介

docker 也有一段时间了,一直在 docker 容器中使用 root 用户肆意操作。直到部署 stable diffusion webui 我才发现无法使用 root 用户运行它,于是才幡然醒悟:是时候搞个非 root 用户了。

我使用的 docker 镜像文件是 centos:centos7.9.2009,使用如下命令就可以拉取其镜像文件。

1
docker pull centos:centos7.9.2009

接下来的内容都是基于该镜像进行操作的,仅供大家参考。

厉兵秣马

我们还是要做些准备工作。

1、创建/运行容器

1
2
docker run -d -it --name c_os centos:centos7.9.2009
docker container start c_os

2、进入容器(此时用的是 root 用户,docker默认如此)

1
docker exec -it c_os bash

3、安装相关工具

1
2
yum install -y vim
yum install -y sudo

万事俱备

做完上面的工作,我们就可以来操刀了。

跟着命令敲,都是基本操作。

1
2
3
4
5
# 添加 nuser 这个用户
useradd -d /home/nuser -m nuser

# 设置密码
passwd nuser

需要为该用户 nuser 设置一个密码,比如 565656。

1
usermod -aG wheel nuser

编辑 /etc/sudoers 文件

1
2
chmod u+w /etc/sudoers
vim /etc/sudoers

修改两个地方

1
2
3
4
5
## Allows people in group wheel to run all commands  
# 取消这个注释
wheel ALL=(ALL) ALL
# 新增
nuser ALL=(ALL) ALL

编辑完成之后,关闭文件的编辑权限。

1
chmod u-w /etc/sudoers

我们退出刚才进入的容器

1
exit

指定用户 nuser 重新进入容器

1
docker exec --user nuser -it c_os bash

可以使用如下命令查看当前登入的用户是哪位

1
whoami

结果显示:nuser,搞定!



本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。

veryitman