I want to toggle off the executable bit of a Linux executable. I know that I can set a+x to make it executable, but I can't set it as not executable.

Google omits "not" from searches.


Just FYI.

CHMOD is used to change permissions of a file. PERMISSION COMMAND

     U   G   W
    rwx rwx rwx     chmod 777 filename      
    rwx rwx r-x     chmod 775 filename
    rwx r-x r-x     chmod 755 filename
    rw- rw- r--     chmod 664 filename
    rw- r-- r--     chmod 644 filename

    U = User 
    G = Group 
    W = World

    r = Readable
    w = writable
    x = executable 
    - = no permission

Here is another way of looking at it:


400     read by owner
040     read by group
004     read by anybody (other)
200     write by owner
020     write by group
002     write by anybody
100     execute by owner
010     execute by group
001     execute by anybody

To get a combination, just add them up. For example, to get read, write, execute by owner, read, execute, by group, and execute by anybody, you would add 400+200+100+040+010+001 to give 751.


Easiest way without changing other settings: chmod -x file.

From man chmod:

           mode         ::= clause [, clause ...]
           clause       ::= [who ...] [action ...] action
           action       ::= op [perm ...]
           who          ::= a | u | g | o
           op           ::= + | - | =
           perm         ::= r | s | t | w | x | X | u | g | o

Notice the three options in op: +, - and =

  • doesnt work. it doesnt undo.
    – alexzander
    Aug 20 at 15:11

Simply use: chmod -x <file>


Just like a+x adds execute, a-x removes it.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.