Fix “Permission Denied” Error while Running Bash Script on Linux

2 min

This quick tutorial helps you fix the “permission denied” error while running the bash scripts in Ubuntu and other Linux distributions.

Facing the “Permission Denied” error while trying to run any bash script (.sh) can be overwhelming for new users in Linux. This comprehensive guide will help you to fix that right away.

permission denied error while executing bash script in Linux
permission denied error while executing bash script in Linux

The “Permission Denied” error happens primarily due to access. Your script lacks the necessary permissions to execute certain actions, be it reading files, writing data, or interacting with system resources. For example, here are some of the reasons:

  • Missing Execute Permission: The script itself might not have the necessary “execute” permission.
  • Incorrect File Location: Trying to run the script from a directory where you don’t have permission to execute files will also trigger the error.
  • Missing Dependencies: Some scripts rely on external programs or libraries. If these are missing or inaccessible, you might get this error.
  • SELinux Restrictions (Advanced): Security-Enhanced Linux (SELinux) adds an extra layer of security that can sometimes block script execution.

Fix “permission denied” error by assigning permission

  • Use ls -l to view the script’s permissions. Look for the “x” in the third group of characters (owner permissions). If it’s missing, that’s your culprit!
  • Use chmod +x to add the “x” permission for owner (replace “” with the actual filename).
  • This should be fixed for most of the cases. If not, check out the additional steps below.
execute permission is set to fix the error
execute permission is set to fix the error

Additional steps to fix

  • Ensure you’re executing the script from a directory with execute permissions. Use pwd to check your current location.
  • Navigate to a directory with execute permissions before running the script. Use cd /path/to/directory to switch directories.
  • If SELinux is the issue, consult its documentation for specific policy adjustments. This is like negotiating with the gatekeeper to gain entry.

Closing notes

I hope you get to fix the error after following the above troubleshooting steps. Here are some references for you in this regard:


Creator and author of Connect with me via Telegram, 𝕏 (Twitter), or send us an email.
Notify of

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Inline Feedbacks
View all comments