一、限制docker命令功能
需求:
1、当用户执行docker命令时,如果参数中有 “--userns host”时,提示用户命令不存在
2、当用户执行docker命令时,需要挂载功能时
例如: xxx:~$ docker ..... -v 宿主目录:目标目录
此时需要校验 当前登录用户的id和宿主目录的id是否一样 并且 用户组id 和 宿主目录的组id是否一样
a、 如果一样,则允许执行docker功能
b、 如果不一样,则需要判断 宿主目录 的权限。当宿主目录的权限 ==777 时,则允许执行docker功能,否则不允许。
针对1需求,目前完成C程序 res_limit.c
针对2需求,目前完成C程序 res_jur.c
c程序在百度网盘
环境:
linux
编译器:
gcc
执行方法:(gcc -o docker res_jur.c ,mv /usr/bin/docker /usr/bin/rthpc ,cp docker /usr/bin/ , vim /etc/docker/daemon.json)
1、将 .c文件 拷贝到一个目录。
2、在此目录编译执行 gcc -o docker res.c 此时会在当前目录出现docker。
3、将计算机内原本(可能在/usr/bin/docker)docker命令替换成 rthpc。
4、将当前目录生成的docker拷贝到原docker目录下即可。
vim /etc/docker/daemon.json
增加
"userns-remap": "default",
二、更改数据位置
#将docker 的默认数据位置改为/home/docker,配置文件在/lib/systemd/system/docker.service
#ExecStart=/usr/bin/dockerd -H fd:// $DOCKER_OPTS
ExecStart=/usr/bin/dockerd --graph /home/docker -H fd:// $DOCKER_OPTS