32
# ./scripts/replace-md5sums.py
bash: ./scripts/replace-md5sums.py: Permission denied

replace-md5sums.py has chmod 600

# ls -l ./scripts/replace-md5sums.py
-rw------- 1 ubuntu ubuntu 661 2011-04-27 16:30 ./scripts/replace-md5sums.py
10
  • 1
    Show the output of ls -l for this program. Commented Apr 27, 2011 at 16:56
  • does the scripts directory have the x rights for your user ? (something like this in the output of ls -l drwx r-x r-x) Commented Apr 27, 2011 at 16:58
  • # ls -l ../ total 4 drwx------ 1 ubuntu ubuntu 4096 2011-04-27 16:42 meta-doctor Commented Apr 27, 2011 at 16:59
  • 1
    do a chmod +x scripts Commented Apr 27, 2011 at 17:00
  • 7
    "replace-md5sums.py has chmod 777" is false. Please remove it from the question. Commented Apr 27, 2011 at 18:02

9 Answers 9

28

You should be able to run the script typing:

$ chmod 755 ./scripts/replace-md5sums.py
$ ./scripts/replace-md5sums.py

There are times where the user you are currently logged with just don't have the permission to change file mode bits. In such cases if you have the root password you can change the file permission this way:

$ sudo chmod 755 ./scripts/replace-md5sums.py
Sign up to request clarification or add additional context in comments.

1 Comment

If you don't like to give the x flag you can use 744. Here to run the script you have to type python ./scripts/replace-md5sums.py explicitly.
17
  • In the terminal enter: chmod u+x script name with the '.py' extension in the end.
  • Remember, u stands for user and x read, write and execute actions to the file.
  • Keep in mind as well the line which must go on top of your Python script which is: #!/usr/bin/python3.9 Going on root you can easily identify what the python version and path is.
  • Now re-execute it again.

Comments

8

Mount your Windows partition with "exec" option - on some distros it's "noexec" by default.

1 Comment

I had the same problem with my XFS partition.
6

I solved my problem. it's just the version of python which the interpreter reads off the first line. removing to version numbers did it for me, i.e.

#!/usr/bin/python2.7 --> #!/usr/bin/python

Comments

4

Try this

python ./scripts/replace-md5sums.py

Comments

0

I'm a Ubuntu user and I had the same issue, when I was trying to run python script through a bash script while files were located in a NTFS partition (even with su didn't work) then I've moved it home (ext4) then it worked.

Comments

0

Okay, so first of all check if you are in the correct directory where your python script is located.
On the net, they say to run the command :

python3 your_file_name.py

But it doesn't work.
What worked for me however was:

python -u my_file_name.py

Comments

-1
#strace ./scripts/replace-md5sums.py

Comments

-1

Check for id. It may have root permissions.

So type su and then execute the script as ./scripts/replace-md5sums.py.

It works.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.