0

I have a weird problem where I cannot install a Sybase DB server as root on an AIX virtual machine. I'm logged in as root and launching the installer as such:

bash-4.2# ./setup.bin -i console
Preparing to install...
Extracting the JRE from the installer archive...
Unpacking the JRE...
Extracting the installation resources from the installer archive...
Configuring the installer for this system's environment...

Launching installer...

./setup.bin: /tmp/install.dir.3277230/Linux/resource/jre/bin/java: 0403-006 Execute permission denied.

As you can see one of the first things the installer does is unpack its own JRE and try to install it, during which I get a permission error. So I've checked the file's permissions:

bash-4.2# ls -al /tmp/install.dir.3277230/Linux/resource/jre/bin/java
-rwxr-xr-x    1 28886    ipsec         15755 Jul 14 2013  /tmp/install.dir.3277230/Linux/resource/jre/bin/java

What I don't understand is that this UID does not exist in my /etc/passwd file. I also tried the following:

bash-4.2# cd /tmp/install.dir.3277230/Linux/resource/jre/bin
bash-4.2# ./java
bash: ./java: cannot execute binary file
bash-4.2# sh java
sh: java: 0403-006 Execute permission denied.

Is it possible that the temporary files created by the setup process belong to some kind of temporary user? Is that why this file won't execute even though I launch the setup.bin as root user? If so, how can I make sure the installation can continue?

  • Have you tried executing that file manually? Do you get the same error? – John WH Smith Jan 20 '15 at 14:58
  • If you mean the java file, I cannot execute it. If I try something like source ./java it tells me that it is a binary file that I cannot execute – Lupuss Jan 20 '15 at 15:08
  • I would expect you to run ./java, not try to source it. – John WH Smith Jan 20 '15 at 15:34
  • It seems that this binary file cannot be properly executed, which is sometimes interpreted as a "permission denied" error, as in "you litterally cannot do that". Are you sure you downloaded an appropriate version given your architecture? – John WH Smith Jan 20 '15 at 15:39
  • Oh God you just made me realize I was trying to install the Linux version of the ASE developer edition all this time... – Lupuss Jan 20 '15 at 15:52
1

Since everyone has execute permissions, there are only 2 possibilities to me:

  1. You can't access the binary file because you don't have permission to go that far down in the file structure (missing x permission somewhere on the way).
  2. The kernel is actually unable to load that executable file because it doesn't match certain system requirements, such as your architecture.

In the first case, a good solution might be to use su: switch to the account supposed to run the file, and try to access it. Start from the root, and progressively go down to your file. Eventually, cd will run into a permission denied problem. Of course, another thing might be that you just don't have execute permission on the file, but that's not your case.

Now, if this doesn't seem to be a permission problem, as in your case, you're probably trying to execute something your system just can't handle. A good idea might be to use file on your executable to check whether or not it matches your architecture. For instance, on my system...

$ file /bin/ls
/bin/ls: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), for GNU/Linux 2.6.24.

... which is excellent, since I'm running a 64-bit machine (x86-64 architecture), which supports System V implementations. I am also using a GNU/Linux system, which even fits the last piece of information.

  • I only got java: ELF 64-bit LSB version 1 executable, probably due to the embarrassing fact I mentioned – Lupuss Jan 20 '15 at 16:30

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.