kylin麒麟的容器文件权限问题(runc版本)

进程创建的文件,对于ftp用户无法下载

原因:权限不足

进程创建的文件默认为640权限,其他用户(0)无读写能力

centos7.9下的

在这里插入图片描述
通过1.0.0-rc95这个版本创建的容器,umask值为022:

root@localhost:/# umask
0022

kylinv10自带的

在这里插入图片描述

进入容器修改/etc/profile,/root/.bashrc,/etc/bash.bashrc文件强制修改环境变量【echo “umask 0022” >> XXX】后,umask值确实改了022,进入容器touch文件权限也对644;
但通过容器进程创建的文件还是640.

通过1.0.0-rc3这个版本创建的容器,umask值为027:

root@017ff64a6662:/# umask
0027

解决:

● 麒麟V10-SP3,增加了默认的容器运行时为1.0.0-rc3,很可能是为了安全着想,大部分情况下640权限,其实是适用的,也就是自己产生的文件自己用。
● 对创建的文件有其他用户操作的需求,在“640”权限不满足时,如ftp的场景,则需按照如下操作:

1.全部统一替换

#确定版本号是否为1.0.0-rc95,目前用此版本
runc -v

#删除当前机器的所有容器(如需备份,提前做好,此处略)
docker ps -qa|xargs docker rm -f 

#确定安装位置
whereis runc

# 删除有问题的版本
 mv /usr/local/bin/runc /usr/local/bin/runc.bak

# 1.如果已安装docker,则从docker安装目录下复制
cp /usr/bin/runc /usr/local/bin/runc

# 2.如果版本有自定义的安装可有的版本1.0.0-rc95,提前下载此版本的runc并上传服务器
cp runc /usr/bin
cp /usr/bin/runc /usr/local/bin/runc

# 1、重启服务器,环境修改生效
# 2、如果服务器不能重启,则先重装portainer_agent,再重装其他容器

# 验证运行时版本号,1.0.0-rc95
runc -v

# 此时容器内部的umaks=022,说明已经修改正确

在这里插入图片描述

2.当有多个运行时,可通过daemon.json配置选择使用

daemon参数节点:runtimes
容器run时增加参数:--runtimes=xxx,可增加更细的参数控制,以更安全的方式运行

runc运行原理图分析:略

  • 12
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值