当前位置: 首页 > news >正文

麒麟服务器上执行可执行脚本报错:bash: ./xx: Permission denied(完整版)

前情提要

本来都好好的,我重启了服务器以后就开始报这个错了,而我的麒麟服务器目前是这个情况:

  1. 已经在服务器上配置好了 ssh 免密登录,在命令行里执行 ssh -o StrictHostKeyChecking=no -p 22 username@xxx.xxx.xxx.xxx 可以正常登录
  2. 可执行文件存在于 /tmp 中
  3. 查看可执行文件目录的权限,发现权限是 drwxrwxr-x,而可执行文件的权限是 -rwxr-xr-x,对于 user 本身来说,应该是可以执行的(对于linux文件权限不太了解的可以看文章【Linux】权限 一)

找bug的心路历程

我本来以为是 ssh 的权限问题,网上查到最多的解决方法就是像下面两篇这样:

  • linux scp传输文件权限被拒绝,Linux的远程传输文件scp及出现Permission denied (publickey).lost connection问题解决方法…
  • Ubuntu下scp命令出现permission denied错误的解决

修改/etc/ssh/sshd_config,但是对于我已经配置好免密登录的服务器来说,这一步着实没什么必要,和我遇到的问题基本没有关系

看了半天才发现我的报错原来不是单纯的Permission denied,前面还有一个 bash: Permission denied(没看清楚,汗流浃背了)

又看到了 解决linux的-bash: ./xx: Permission denied 这篇,说是权限问题,但是我的文件夹和文件权限都属于可执行的

看了半天,终于从 /tmp 目录下执行脚本失败提示 Permission denied 这篇里找到了线索:

发现是/tmp文件系统的属性被设置了noexec。noexec表示对应文件系统不允许执行可执行程序,即使文件具有可执行过权限。通常是考虑安全原因会这么设置。

可能是服务器重启后,重新打开了某个安全设置

于是,我顺藤摸瓜,找到了这篇云服务器 ECS Linux 系统 tmp 目录的安全设置,按照文内的验证方法,在 /tmp 目录下随便建了个 test.sh 文件,手动执行 bash test.sh,终于发现了问题:

    [麒麟安全授权认证]检测到未认证程序试图执行,是否允许?程序:test.sh    调用者:bash路径:/tmp/test.sh禁止(N)  允许(Y)  本次允许(O):

输入 Y 后才能正常执行

再搜索,找到了这篇:Linux麒麟系统(V10)rc.local开机不启动,在命令行中执行

getstatus

得到了和博主一样的结果:

KySec status: enabled    // 表示当前为强制模式exec control    : warning    // 表示当前执行控制功能为警告
net control       : off    // 表示当前网络控制功能关闭
file protect    : on    // 表示当前文件保护功能为开启 (只有当相应功能的状态为(on)的时候,其所控制的功能配置才能生效)
kmod protect    : on    // 表示当前内核模块保护功能为开启
three admin    : off    // 表示当前三权分立状态为关
process protect    : off    // 表示当前进程保护功能为开启

参考

KySec有三种安全模式:① 强制模式(Normal):出现违规操作时,不止会审计记录该操作,还会阻止该操作的运行;② 警告模式(Warning):出现违规操作时,会弹出麒麟安全授权认证框进行授权(在上面2023.3.18问题中提到的弹窗);③ 软模式(Softmode):出现违规操作时,只会审计该操作,而不会阻止该操作的运行。

于是,直接执行

sudo setstatus softmode

把它关掉了,此时再执行 getstatus,就会得到

KySec status: enabled(softmode)exec control: off
net control : off
file protect: off
kmod protect: off
three admin : off
process protect: off
device control: off

此时再创建一个 test2.sh,并且执行 bash test2.sh 就没有安全授权认证了,问题搞定~

http://www.lryc.cn/news/349584.html

相关文章:

  • 触觉美学:移动端UI设计的视觉盛宴
  • 前端起dev从110秒减少到7秒, 开发体验大幅提升
  • Flink CDC 原理
  • Axure网上超市用户端APP原型 (O2O生鲜电商/买菜到家/数字零售/京东到家/抖音超市领域)
  • 外包公司中能学到技术的都是那些人?
  • JavaEE初阶-多线程进阶2
  • B/S和C/S框架
  • 机器学习中常用的几种距离——欧式、余弦等
  • 2024 Google I/O Android 相关内容汇总
  • # 从浅入深 学习 SpringCloud 微服务架构(十八)
  • 在SQL Server中使用临时表与普通表的性能差异分析
  • 数据中台管理系统原型
  • 数据库练习
  • Rust学习笔记(上)
  • 【SRC实战】文件名回显导致反射型XSS,URL重定向
  • mysql高版本导入低版本Unknown collation: utf8mb4_0900_ai_ci
  • 运筹说 第114期 | 其他排队模型简介
  • 易基因: WGBS等揭示梨驯化和改良过程中DNA甲基化对果实成熟的作用机制 | 作物育种
  • 数据分析(二)——导入外部数据,导入Excel数据,CSV文件,txt文件,HTML网页,数据抽取,DataFrame对象的loc属性与iloc属性
  • 如何让Linux系统崩溃?
  • C# 实现邮件推送功能
  • 企业微信私域营销:构建高效转化新引擎
  • 电力物联网-(2)系统设计
  • 如何确保企业信息的真实性和可靠性,保障企业权益、降低合作风险
  • 用python写一个自动生成android开机动画的工具
  • 玩机进阶教程------MTK机型重置账号 去除FRP 去除开机密码 清除数据的几种方法步骤解析
  • 基于STM32单片机和RFID的智能仓库管理系统-设计说明书
  • 使用Processing和PixelFlow库创建交互式流体太极动画
  • 环境工程设计专项资质乙级可以承接哪些业务
  • WordPress原创插件:超链接点击访问统计