根本原因是脚本缺少可执行位(x),需通过chmod +x授权、图形界面勾选“允许作为程序执行”、bash/sh显式调用或修复noexec挂载限制四种方式解决。

统信UOS系统提示“权限不足”时无法运行.sh脚本,根本原因是Linux内核强制校验可执行位(x),哪怕脚本语法完全正确、路径准确无误,只要没设+x,./script.sh就会报错Permission denied。
用chmod命令快速授权
这是最直接、最通用的方法,终端一行命令即可生效,适用于所有UOS版本及后续升级。
打开终端,进入脚本所在目录:cd ~/Downloads
查看当前权限:ls -l install.sh,若显示-rw-r--r--,说明确实缺少执行位。
执行授权:chmod +x install.sh
【注意:不要加sudo,除非该文件属主不是当前用户;加sudo可能改变文件所有权,引发后续图形界面双击失效】
验证是否成功:ls -l install.sh,应看到权限变为-rwxr-xr-x(末尾出现x)
运行脚本:./install.sh
图形界面点选授权(适合不熟悉命令行的用户)
统信UOS文件管理器内置可视化权限控制,无需记忆命令,适合临时授权或教新手操作。
在文件管理器中右键点击目标.sh文件 → 选择“属性”
切换到“权限”选项卡
勾选“允许作为程序执行”
若需同组或其他用户也能运行,再分别勾选“组”和“其他”下的“执行”复选框
点击“应用”保存,关闭窗口后双击脚本即可触发执行确认弹窗
终端里不改权限也能跑脚本(应急调试用)
当你只是想快速验证脚本逻辑是否通顺,又不想永久修改权限,可用解释器显式调用——它绕过x检查,但不继承脚本首行声明的环境。
方法一:bash script.sh
方法二:sh script.sh(兼容性更强,但不支持bash特有语法如数组、[[ ]]判断)
方法三:/bin/bash script.sh(明确指定解释器路径,避免PATH污染干扰)
【关键区别:用bash/sh调用时,脚本名前不加./,也不需要chmod +x】
解决挂载分区导致的权限失效问题
如果你的脚本放在U盘、移动硬盘或Windows双系统NTFS分区上,即使已设+x,运行时仍报“权限不足”,大概率是文件系统被noexec挂载所致。
第一步:查挂载选项:mount | grep noexec
第二步:找到对应挂载点(如/mnt/usb0),执行临时修复:sudo mount -o remount,exec /mnt/usb0
第三步:再次chmod +x your_script.sh → ./your_script.sh
第四步:如需永久生效,编辑/etc/fstab,在对应分区行末尾添加exec(例如:defaults,exec)

















