首页 > 其他分享 >踩过的坑(一)——web容器升级

踩过的坑(一)——web容器升级

时间:2024-08-19 23:38:12浏览次数:10  
标签:0022 web 容器 umask 升级 sh 644 权限

背景:

国产化web容器(宝兰德)升级。

 

踩坑过程:

web容器升级后,web系统正常访问,看似正常。晚上批量跑批的时候,中断了。

中断原因:发现某路径下的文件,的确存在,但是程序报NoSuchFileException。

调查得知,现在该文件的权限是640(linux),想定应该是644。其他用户组的read权限缺失,导致文件不可读(也就是读取不到)。

项目启动脚本中,有umask 0022。

(默认情况下的umask 0022 ,为了控制默认权限,使得默认文件和目录不会具有全部权限。umask 0022 文件的默认权限是644,目录默认权限是755)

经过分析,以前执行脚本 umask 0022 赋的权限是644,那么却现在赋成了640。

那么,为什么会出现这个状况?

sh test.sh 原因在于此。

sh 命令执行后面的shell时,会另起一个新的子进程。这时,宝兰德容器内部为了安全性的考虑会默认设置640的权限。

改法:

sh test.sh 改成 source test.sh (source 命令在当前shell进程中执行指定的脚本,并将命令和变量导入到当前shell环境中,这就意味着外面的umask 0022的作用会影响到test.sh的运行环境,使得umask值644)

 

当时这个方案确定后,我组织人力批量修改。但是还有人改漏了,出了生产问题。

复盘:

1.reviewer 没细看代码导致问题带出

复合代码人必须逐步检查。

2.自己写的代码,自己检查。常常发现不了问题。

要进行交叉检查。A写的代码,B去检查。B写的代码,A去检查。

3.测试环境下的变量值,与生产不一致。

后续要保证一致,避免出错。

4.开发人员改了10处。那么发现一处改错了,要确认好其余9处是否有同样问题。切记!!!

(完)

 

附:

cat proc / 进程id / status  命令 (查看某进程下的umask值)

标签:0022,web,容器,umask,升级,sh,644,权限
From: https://www.cnblogs.com/lihao007/p/18368298

相关文章

  • Jira从4.4.5升级到6.4.14实施方案
    1、开始之前1.1、停止当前所用插件1.2、确认插件版本目前公司4.4.4版本使用了两个第三方插件。插件名称版本用途待升级版本备注issue-alternative-assignee1.6.3流程中人员选择插件1.7.81.6.3对应Jira4.4.41.7.8对应Jira6.4.14JIRASuiteUtilities......
  • openEuler 22.03 LTS 升级到 openEuler 24.03 LTS
    升级前准备cd/etc/yum.repos.d/sudocpopenEuler.repoopenEuler.repo_2203lts_backsudovimopenEuler.repo将22.03替换为24.03#generic-reposislicensedundertheMulanPSLv2.#YoucanusethissoftwareaccordingtothetermsandconditionsoftheMula......
  • 第一次项目搭建笔记&路由导航守卫&web前后端会话跟踪
    1.重新搭建后端项目在IDEA中重新创建一个JavaEE项目,记得勾选Webprofile之后在java文件中重新搭建分级的文件夹按照标准创建com.xxxx.dorm文件夹并创建dao(数据处理),filter(过滤器),model(模型),util(工具),web(服务端)等文件夹进行不同功能部分的分类搭建完基本的框......
  • ctfshow-web入门-sql注入(web224-web230)文件类型注入、routines存储过程与函数状态、ha
    目录1、web2242、web2253、web2264、web2275、web2286、web2297、web2301、web224登录页面测了下没发现注入点存在robots.txt访问/pwdreset.php  ,是管理员密码重置的页面直接重置密码,这里以123456为例使用admin/123456登录 来到一个文件生成界......
  • WEB渗透免杀篇-免杀工具全集
     往期文章 WEB渗透免杀篇-加载器免杀-CSDN博客 WEB渗透免杀篇-分块免杀-CSDN博客WEB渗透免杀篇-Powershell免杀-CSDN博客WEB渗透免杀篇-Python源码免杀-CSDN博客WEB渗透免杀篇-C#源码免杀-CSDN博客WEB渗透免杀篇-MSF+shellcode免杀-CSDN博客WEB渗透免杀篇-Bypass-AMS......
  • Vulnhub靶机:AI-WEB-1.0
    一.网站查询二.扫描当前网站目录 扫出有http://172.16.1.88/robots.txt继续扫这个刚扫出来的,然后得出 我们再访问m3dinfo/info.php和 /se3reTdir777/这俩目录 得到如上图所示三.进行sql注入1.判断是否有sql注入 /有结果,有报错 2.利用burp抓包进行注入......
  • Docker 容器中镜像导出/导入
    利用容器中镜像导出/导入创建一个简单的Docker镜像利用dockerps-a命令查看要导出的镜像。导出查看要导出的镜像[root@localhost~]#dockerps-adockerexport命令进行镜像导出。[root@localhost~]#dockerexport418ae>nginx-docker.tar导入[vipsoft@kafka1ho......
  • RTL9220固件分享,RTL9220硬盘盒固件升级工具下载
    RTL9220是瑞昱半导体(Realtek)推出的88针脚10mm×10mmQFN封装的单芯片,内建ARGB控制器,提供USB3.2Gen2×2(20Gbps)接口,支持双口PCIe3.0×4lanesNVMe1.3或SATAGen3(6Gbps)固态硬盘。在USB转SATA模式下,RTL9220支持SATAGen3规格,为每个端口提供6Gbps的带宽且具有与SATAGen2/Gen1......
  • Java轻松实现跨平台(Windows、Linux)多协议(Twain、Sane)的Web扫描
     由于项目需要,开发在Windows下与Linux下扫描功能,Linux主要是信创的两个系统(UOS、麒麟),研究了一下发现,Windows使用Twain协议与扫描仪通讯,Linux使用的是Sane协议与扫描仪通讯,找到Twain协议和Sane协议的标准文档,英文的,都有大几百页,项目一个月内要求上线,明显没时间慢慢研究,于......
  • docker 容器迁移
    第一步:使用dockercommit命令将运行中的容器保存为新的镜像。这里需要容器的ID或名称,以及你想要命名的目标镜像名dockercommit[容器ID或名称][目标镜像名]:[标签]#例如:dockercommitmy_containermy_new_image:latest第二步:使用dockersave命令将刚才创建的镜像保存为tar......