Linux – What does it mean for the file name to be shown with red background

bashlinux

I'm trying to install Cisco VPN client on Linux Ubuntu 10.04. The installer creates the directory, places all the necessary files in it, and then fails to launch the binary. I tried to launch it myself, the system rebukes me too. Closer inspection yields the following:

eugene@eugene-desktop:/opt/cisco/vpn/bin$ sudo chmod u+x vpnagentd 
eugene@eugene-desktop:/opt/cisco/vpn/bin$ ls -la
total 5124
drwxr-xr-x 2 root root    4096 2010-10-23 11:51 .
drwxr-xr-x 6 root root    4096 2010-10-23 11:51 ..
-rwxr-xr-x 1 root root 1607236 2010-10-23 11:51 vpn
-rwsr-xr-x 1 root root 1204692 2010-10-23 11:51 vpnagentd
-r--r--r-- 1 root root  697380 2010-10-23 11:51 vpndownloader.sh
-rwxr-xr-x 1 root root 1712708 2010-10-23 11:51 vpnui
-rwxr-xr-x 1 root root    3654 2010-10-23 11:51 vpn_uninstall.sh
eugene@eugene-desktop:/opt/cisco/vpn/bin$ ./vpnagentd 
bash: ./vpnagentd: No such file or directory
eugene@eugene-desktop:/opt/cisco/vpn/bin$ sudo ./vpnagentd 
sudo: unable to execute ./vpnagentd: No such file or directory

The file name "vpnagentd" is shown in white letters with red background. The other three executables are in green letters with black background, as expected.

Any ideas?

Best Answer

The colors of files when viewed in ls (or more specifically ls --color) by system settings. Use dircolors -p to view a whole list of your configuration.

In that output I see:

# Below are the color init strings for the basic file types. A color init
# string consists of one or more of the following numeric codes:
# Attribute codes:
# 00=none 01=bold 04=underscore 05=blink 07=reverse 08=concealed
# Text color codes:
# 30=black 31=red 32=green 33=yellow 34=blue 35=magenta 36=cyan 37=white
# Background color codes:
# 40=black 41=red 42=green 43=yellow 44=blue 45=magenta 46=cyan 47=white

Your example has a red background and white foreground, so I would look for a code with 37 (white) and 41 (red).

$ dircolors -p | grep 37 | grep 41
SETUID 37;41 # file that is setuid (u+s)

And we see that it's setuid (as per Ignacio's previous answer).

Related Question