Direct answer
On Linux, check whether the startup script is executable, has a valid interpreter, and is located on a filesystem allowing execution. Fix the specific permission or path problem as the Minecraft service account; do not run Java as root or grant everyone write permissions.
What it means
Permission denied while starting ./start.sh may come from the missing executable bit, directory traverse permissions, an unreadable script, or a noexec mount. These are separate from plugin permission nodes.
If you are a player
- Tell the owner exactly when the server fails to start. Client reinstall or OP status will not help.
If you run the server
- Use the panel or terminal to read the exact shell error; distinguish
Permission deniedfromcommand not found,bad interpreterand Java startup errors. - From the server directory, inspect the file and permissions of every parent directory. Check the script’s first line (
#!) points to an installed interpreter. - If you own and trust the script and the only problem is the missing execute bit, run
chmod u+x start.sh. Alternatively execute it explicitly withbash start.shif it is a Bash script. - If execution still fails, inspect filesystem mount options and service user permissions. Fix the narrow issue or ask your hosting provider; don’t use
chmod -R 777.
pwd
ls -l start.sh
head -n 1 start.sh
namei -l "$(pwd)/start.sh"
chmod u+x start.sh
./start.shOnly run scripts you trust. If the script came from Windows, line-ending issues may produce a different error; fix that separately rather than changing permissions blindly.
References
Use the documentation for the exact software and release you run. These sources support the settings or diagnostic behavior used in this fix.
- Oracle Java launcher reference
- PaperMC: Getting started / Java requirements
- PaperMC: Basic troubleshooting
Related fixes and guides
Help us improve this article
Tell us what is missing, unclear, outdated, or incorrect. You can also suggest something we should add.