启动 bash 脚本的正确方法是什么甲骨文Linux?
在普通的 Linux 服务器上我使用 ./script.sh
但这是我在 Oracle Linux 上执行相同操作时得到的结果
[user@server ~]$ ./script.sh
bash: ./script.sh: Permission denied
权限是正确的
[user@server ~]$ ll script.sh
-rwxr-x--x 1 user oraexpl 317 Jul 4 15:42 script.sh
如果我省略“/”字符,它就可以正常工作
[user@server ~]$ . script.sh
It works
如果我用 bash 执行它就可以了
[user@server ~]$ bash script.sh
It works
在我的脚本中,我确实有 Shebang /bin/bash
这种行为正常吗?
感谢您的反馈意见
答案1
作为答案跟进,以便可以接受和搜索。/home
使用该选项安装noexec
将导致此行为。 CIS 基准没有规定挂载选项,因此您可能有理由向系统管理员或安全组申诉。如果您有sudo
权限,请尝试noexec
从 中的选项中删除/etc/fstab
。如果木偶或厨师之类的东西覆盖了这个,你可以使用
sudo mount -o remount,exec /home; ./script.sh
作为问题的临时解决方案。