Ubuntu/Gnome 16.04下运行standalone.sh遇Permission denied(error=13)求解
这个问题我之前在Ubuntu环境部署WildFly时也碰到过,大概率是脚本缺少执行权限或者文件所有权配置不对导致的,给你几个一步步排查解决的方案:
1. 给standalone.sh添加可执行权限
Linux系统下,shell脚本必须拥有可执行权限才能被运行,这是触发Permission denied最常见的原因。打开终端,切换到WildFly的bin目录下,执行以下命令:
chmod +x standalone.sh
执行完成后,再尝试运行./standalone.sh,看看问题是否解决。
2. 检查并调整WildFly目录的所有权
如果你是用root用户下载或解压的WildFly包,整个WildFly目录的所有者可能是root,用普通用户运行脚本时就会被拒绝访问。这种情况下,需要把目录的所有权转移到你的普通用户账户:
sudo chown -R $USER:$USER /path/to/your/wildfly-directory
把/path/to/your/wildfly-directory替换成你实际的WildFly安装路径,比如/home/yourname/wildfly-10.1.0.Final。
3. 检查AppArmor的限制(较少见但需排查)
Ubuntu 16.04默认启用了AppArmor安全模块,它可能会阻止一些脚本的执行。你可以先临时关闭AppArmor来测试是否是这个原因:
sudo systemctl stop apparmor
关闭后再运行standalone.sh,如果能正常启动,说明是AppArmor的规则限制了脚本,你需要调整对应的AppArmor配置文件(通常在/etc/apparmor.d/目录下)来允许WildFly的脚本运行,之后再重新启动AppArmor:
sudo systemctl start apparmor
4. 确认运行脚本的路径正确
最后别忘了,确保你是在WildFly的bin目录下运行./standalone.sh,或者使用完整的绝对路径(比如/home/yourname/wildfly-10.1.0.Final/bin/standalone.sh),避免因为路径错误导致的权限问题。
内容的提问来源于stack exchange,提问作者user6941415

