根本原因是Linux内核拒绝执行无x权限的文件;需用chmod +x添加执行权限,或通过bash/sh直接解释执行。

在银河麒麟OS中运行.sh或.bin脚本时提示“Permission denied”,根本原因是Linux内核拒绝执行没有可执行位(x)的文件,哪怕脚本语法完全正确、路径也没错,缺了x权限就卡死在这一步。
用chmod +x快速添加执行权限
第一步:打开终端,用cd命令进入脚本所在目录,例如:cd /home/kylin/Downloads。
第二步:执行chmod +x install.sh——这会为当前用户(所有者)添加执行权限,是最常用、最安全的赋权方式。
第三步:验证是否生效,运行ls -l install.sh,输出中第一列应出现-rwxr--r--或类似含x的字符串;若仍显示-rw-r--r--,说明命令未成功执行,需检查拼写或路径是否准确。
按需选择数字模式精确设权
方法一:赋予标准可执行权限(所有者读+写+执行,组和其他人仅读+执行)→ sudo chmod 755 deploy.sh。适用于大多数shell脚本,尤其是要被其他用户调用的部署类脚本。
方法二:仅允许所有者读写,禁止其他任何人访问 → sudo chmod 600 secret-key.sh。【这是密钥类脚本的强制要求,漏设会导致敏感信息泄露】
方法三:让配置文件可被编辑但不可执行 → sudo chmod 644 config.sh。注意:如果误设成744,系统可能在执行时因权限过宽而拒绝加载(尤其在严格模式下)。
绕过权限限制的替代执行法
当chmod在U盘、NTFS分区或某些挂载卷上静默失败(常见于外接硬盘),直接加x无效,此时必须跳过权限检查:
执行bash install.sh或sh install.sh——解释器直接读取并执行脚本内容,不依赖文件x位。
注意:若脚本含bash特有语法(如[[ ]]、数组、source ~/.bashrc),必须用bash而非sh调用,否则报错退出。










