


PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/X11R6/bin Here's some sample output of running the above env command first as an ordinary user and then as the root user using sudo env | grep sudo env | grep ^PATH To see what it is set to run env | grep ^PATH Each user sets their own PATH variable according to their needs. The PATH environment variable contains a list of directories which are searched for commands. The reason that the root user is not finding your command is likely that the PATH environment variable for root does not include the directory where foo.sh is located. When you run a command using sudo you are effectively running it as the superuser or root. rwxr-xr-x 1 rkielty users 0 14:47 foo.shįoo.sh is now executable as far as Linux is concerned. $ ls -l foo.sh # Now we see an x after the rw (Group and other only have read permission set on the file, they cannot write to it or execute it) $ chmod +x foo.sh # The owner can set the executable permission on foo.sh Owner has read and write access rw but the - indicates that the executable permission is missing $ ls -l foo.sh # Check file permissions of foo Here's a summary of how to troubleshoot the Permission Denied error in your case. which will list the READ, WRITE and EXECUTE permissions for the file owner, the group owner and everyone else who is not the file owner or a member of the group to which the file belongs (that last permission group is sometimes referred to as "world" or "other") Once read and understood you should be able to understand the output of running. To read the chmod documentation for your local system, run man chmod or info chmod from the command line. chmod, an abbreviation of change mode, is the command that is used to change the permission settings of a file. In order to fully understand Linux file permissions you can study the documentation for the chmod command. In order to run a script the file must have an executable permission bit set.
