Termux无法运行Orange Pi官方Shell脚本的权限问题求助
看起来你遇到了挺头疼的权限问题,我来帮你梳理几个可能的解决方向,你可以逐一排查:
检查脚本所在分区是否为只读挂载:有些Orange Pi的存储分区默认可能是只读挂载的,这会导致
chmod +x命令无法修改权限。你可以先运行mount命令,找到脚本所在目录对应的分区,查看挂载属性里有没有ro(只读)标识。如果有的话,先重新挂载为读写模式:mount -o remount,rw /挂载点路径比如脚本在
/sdcard下,就执行mount -o remount,rw /sdcard,之后再重新执行chmod +x script.sh试试。确认脚本是否存放在Termux沙箱外的存储:Termux有自己的沙箱环境,如果你把脚本放在Android的外部存储(比如SD卡),即使root后也可能因为Android的存储权限限制,无法修改文件的执行权限。建议你把脚本复制到Termux的家目录(
~/),比如:cp /sdcard/script.sh ~/ cd ~/ chmod +x script.sh之后再尝试运行脚本。
检查文件系统是否支持Linux权限位:如果脚本所在的存储是FAT32等不支持Linux权限的文件系统,
chmod命令根本不会生效。这种情况下,你不需要给文件加执行权限,直接用Shell解释器来运行脚本即可:bash script.sh # 或者如果是sh脚本的话 sh script.sh验证是否真的获取到了完整root权限:有时候虽然输入了
su,但可能没有拿到真正的root权限。你可以运行whoami命令,看输出是不是root,或者id命令看uid是否为0。如果不是,可能你的Orange Pi root方式有问题,需要重新确认root的有效性。尝试跳过执行权限直接调用解释器:即使没有执行权限,只要你有读权限,就可以直接用解释器来运行脚本,比如上面提到的
bash script.sh,这可以绕开执行权限的问题,先验证脚本本身能不能正常运行。
备注:内容来源于stack exchange,提问作者Wan Ammar

