我正在运行一个shell脚本(Script.sh),它本身正在调用其他shell脚本( Script2.sh,Script3.sh ......等等。我以root用户身份登录,并已授予所有脚本的执行权限。但是当我执行“ls -l”时,脚本仍然没有在文件属性列上显示执行权限。 “Script.sh”按以下语法运行:
root@freescale $ sh Script.sh
但是这个脚本无法执行其调用的其他脚本(Script2.sh,Script3.sh)。错误报告为“权限被拒绝”
我已经通过chmod命令授予了执行权限,但是权限也没有改变,脚本(Script2.sh,Script3.sh ..)也没有执行。
我希望这个错误是由于在Script3.sh中调用Script2.sh的原因:
./Script2.sh
./Script3.sh
如果我把它写成: sh Script2.sh 它执行但不能执行在Script2.sh中调用的其他脚本并报告与“Permission Denied”相同的错误
答案 0 :(得分:6)
确保您的分区不挂载了noexec
标志(顾名思义 - 阻止任何文件可执行)
答案 1 :(得分:1)
请确保script.sh文件的权限和所有权,也请尝试
# chmod 755 script.sh
# chown root.root script.sh
感谢。