银河麒麟系统执行.sh脚本提示“permission denied”是因linux内核默认禁下载文件执行权,叠加kysec安全策略双重拦截;需先chmod +x赋权,再依场景用bash/sh直跑、sudo提权或kysec_set授信。

银河麒麟系统执行.sh脚本时提示“Permission denied”,不是脚本写错了,而是系统在执行前就拦住了——Linux内核默认不给下载文件执行权限,加上麒麟特有的KySec安全策略双重拦截,双击无反应、终端报错、sudo也无效都属正常现象。
确认并赋予基础执行权限
打开终端,用cd命令进入脚本所在目录,例如:cd /home/yourname/Downloads。
运行ls -l yourscript.sh查看权限。若显示以-rw-r--r--开头,说明【没有x执行位,必须补上】。
执行chmod +x yourscript.sh赋权。
再次运行ls -l yourscript.sh,确认输出中出现-rwxr-xr-x字样,x出现在所有三组权限位中才算成功。这一步跳过,后续任何sudo或bash调用都可能触发更隐蔽的失败。
绕过图形界面拦截,用解释器直跑
银河麒麟V10的Peony文件管理器默认屏蔽.sh双击行为,这是主动防御,不是bug。
方法一:用bash强制解释(不依赖x权限)
在终端输入:bash yourscript.sh。
方法二:用sh兼容模式(适配老脚本)
输入:sh yourscript.sh。
方法三:路径含中文或空格时,先复制脚本到/tmp再执行,避免解析崩溃。这步不做,脚本可能读不到同目录下的配置文件或资源。
以root权限运行安装类脚本
绝大多数.sh安装包要写入/usr、/lib或加载内核模块,普通用户权限必然失败。
第一步:确保已执行chmod +x(见第一部分),否则sudo ./script.sh仍报错“Permission denied”。
第二步:用sudo ./yourscript.sh运行。
第三步:若仍失败,改用sudo bash yourscript.sh,绕过shell查找路径环节。
注意:如果脚本内涉及conda、Python虚拟环境或家目录路径(如/home/user/miniconda3),而服务以root身份运行,root无法访问普通用户家目录——此时需先用chown -R root:root /home/user/miniconda3变更归属,或改用sudo -u user bash yourscript.sh指定用户。
解除KySec安全策略限制
当脚本已赋权、sudo也用了,仍报“权限不够”,大概率是KySec在拦截。
① 临时切为Softmode(开发调试用):sudo setstatus softmode。
执行后运行getstatus确认显示KySec status: Softmode。
② 或单独授信该文件(生产环境推荐):sudo kysec_set -n exectl -v trusted ./yourscript.sh。
【必须带./前缀,否则kysec_set会找不到文件】。
执行完任一方案,直接./yourscript.sh即可运行。











