How can I execute a file without giving myself execute permissions (with chmod u+x
) for it?
If I try and tick the 'Allow executing file as program' checkmark, the checkmark is immediately removed.
How can I execute a file without giving myself execute permissions (with chmod u+x
) for it?
If I try and tick the 'Allow executing file as program' checkmark, the checkmark is immediately removed.
Check file ownership
Please do this before anything further (unless you are sure you own the file).
Check and make sure that you own the file which you are trying to execute with one of the following methods.
Graphical
Command Line
Execute this command in a terminal
If it prints "
You don't own the file
", see "Change file ownership" below.Change file ownership
Execute this command in a terminal
Executable Files
An answer I found from a comment by Lekensteyn on an answer for a question about
chmod
on NTFS partitions which I think deserves it's own question and answer, full credit to Lekensteyn.Use this command for executable files (substituting
/path/to/executable
with the correct path):64 bit executable files:
32 bit executable files:
If the above doesn't work (or raises file not found errors), try using this before the above command
All the above commands will not work for text based scripts (Bash, Python, Perl, etc.), see below.
Check if a program is 64 or 32 bit
Use this command to find out if a executable is 32 (
x86
) or 64 (x86-64
) bitIf it says
i386:x86-64
, then it's 64 bit. If it saysi386
only, then it's 32 bit.Scripts
For text based scripts (Bash, Python, Perl, etc.), you should use the command specified in the first
#!
line in the file.For example, if the first line of the file is
then run these commands in a terminal (substituting
/path/to/file
with the correct path)Java
.jar
filesFor Java executable jar's, you can simply use these commands (substituting
/path/to/jar
with the correct path):When you don't need
cd "$(dirname /path/to/file)"
These are possible circumstances where you wont need to use
cd "$(dirname /path/to/file)"
before running the program with any method: If at least one is true, you wont needcd
first.apt-get
)cd
(or equivalent) to change to an absolute path before doing any file operations (example:cd "$(dirname "$0")"
)./
or starting with no slash)If unsure, add
cd "$(dirname "$0")"
(or equivalent) to the top of the script (if applicable) or usecd "$(dirname /path/to/file)"
anyway.If it's a shell script, you can "source" it from another shell script, i.e.:
The "$@" appends the command line parameters, if needed.
Having said that, this is probably not the best solution for the underlying problem, but we don't know enough about that problem to offer alternatives.