Operating System - HP-UX
1748014 Members
4356 Online
108757 Solutions
New Discussion юеВ

sh: ls: Execute permission denied.

 
SOLVED
Go to solution
Peter Kovacs 1.0rc
Frequent Advisor

sh: ls: Execute permission denied.

Hi

Executing the following command gives the error in the Subject:

# su - a_user ls

a_user can, of course, properly execute ls, when "logged in" via

# su - a_user

Thanks
Peter
6 REPLIES 6
Robert-Jan Goossens_1
Honored Contributor
Solution

Re: sh: ls: Execute permission denied.

Peter,

# su -a_user -c 'ls'

Robert-Jan
Peter Kovacs 1.0rc
Frequent Advisor

Re: sh: ls: Execute permission denied.

Thanks, working fine.

I just wonder how arguments with spaces can be then passed to su. Using perhaps double quotes?

Thanks
Peter
James R. Ferguson
Acclaimed Contributor

Re: sh: ls: Execute permission denied.

Hi Peter:

> I just wonder how arguments with spaces can be then passed to su. Using perhaps double quotes?

Yes. For example:

# su - a_user -c 'grep "RFC 1078" /etc/services|more'

...or:

# su - root -c "grep 'RFC 1078' /etc/services|more"

Regards!

...JRF...
Peter Kovacs 1.0rc
Frequent Advisor

Re: sh: ls: Execute permission denied.

Let me press on about this. What if I want to pass a command with environment variable expansion onto su? I surely cannot use single quotes, can I?

Thanks
Peter
Hein van den Heuvel
Honored Contributor

Re: sh: ls: Execute permission denied.

Peter,

Do you want use a variable from the current environment?
That's just normal substitution:

$ export test="/tmp"
$ echo $test
/tmp
$ su - hein -c "ls $test"
:

Or do you want to use a variable as defined in the profile for the user switch to? Like a $ORA_HOME or such?
Then you have to make sure the ${symbol_name} is not picked up by the current shell. Two basic ways, as indicated before. Which one is best, depends on how many other variables are used:

$ grep my_name ~hein/.profile
export my_name="Hein van den Heuvel"
:

$ su - hein -c 'echo "my name is " $my_name'
my name is Hein van den Heuvel
:

$ su - hein -c "echo 'my name is ' \$my_name"
my name is Hein van den Heuvel
:

hth,
Hein.
Peter Kovacs 1.0rc
Frequent Advisor

Re: sh: ls: Execute permission denied.

Use quotes as detailed in the respective replies to my questions.