Confusion with "su -c" and quotes, user context switching?
Trying to execute commands for different Unix user with that user's environment variable context without fully switching as that user using sudo && su capabilities. Hoping this would help with security and not having to waste time switching between 10 different app users on same server.
I do not understand why 'ls' command would not get executed, but 'ls -l' would from below output!?.. Does anyone know why?
( Using solaris8, ksh Version: M-11/16/88 ) Please explain what difference does "-c" really make? I am able to execute commands as a sudo userB and his env variables(.profile, .login etc) without "-c" option as well.
[QUOTE]
/home/userA> man su
.........
Example 2: Becoming User bin and Changing to bin's Login
Environment
To become user bin but change the environment to what would
be expected if bin had originally logged in, execute:
example% su - bin
Example 3: Executing command with user bin's Environment and
Permissions
To execute command with the temporary environment and per-
missions of user bin, type:
example% su - bin -c "command args"
[/QUOTE]
Last edited by kchinnam; 05-28-2013 at 09:02 PM..
Reason: formatting
I just tried your way of doing it,, it seems even worse, at least on my server..
Most of the commands I tested so far are working fine with either --> su - <userid> '<command>' or su -c <userid> '<command>'.
My problem is why a simple command like 'ls' would not work but 'ls -l' does, making this a scary half baked solution..
Got it.
ksh man page is more clear about what ' -c ' does ---->
If I put a space character after 'ls', its working, does space tell shell that its not a script, but its a command !?
Last edited by kchinnam; 05-29-2013 at 12:46 AM..
Reason: updated statements
This is indeed an undocumented(?) feature of ksh,
and is also implemented in pdksh. (But not implemented in sh,bash,zsh.)
behaves like
and it is sufficient to provide a space without args
But better use the explicit -c because it works with all shells!
These 2 Users Gave Thanks to MadeInGermany For This Post:
Hello.
System : opensuse leap 42.3
I have a bash script that build a text file.
I would like the last command doing :
print_cmd -o page-left=43 -o page-right=22 -o page-top=28 -o page-bottom=43 -o font=LatinModernMono12:regular:9 some_file.txt
where :
print_cmd ::= some printing... (1 Reply)
How to use "mailx" command to do e-mail reading the input file containing email address, where column 1 has name and column 2 containing “To” e-mail address
and column 3 contains “cc” e-mail address to include with same email.
Sample input file, email.txt
Below is an sample code where... (2 Replies)
Please can you help me understand the significance of providing arguments under sh -s in
> ssh -qtt ${user}@${host} "sh -s "${version}"" < test.sh (4 Replies)
I am executing following command
egrep -w I filename.txt
the filename.txt has following data ....
-I 07-18 08:31:19.924 9880 6 SessionManager ConnectConfig: ConfigurationWebService LoginResults=SuccessfulLogin
I am so hungry that I need to eat
I expect egrep to print only the second... (1 Reply)
Hi,
I have line in input file as below:
3G_CENTRAL;INDONESIA_(M)_TELKOMSEL;SPECIAL_WORLD_GRP_7_FA_2_TELKOMSEL
My expected output for line in the file must be :
"1-Radon1-cMOC_deg"|"LDIndex"|"3G_CENTRAL|INDONESIA_(M)_TELKOMSEL"|LAST|"SPECIAL_WORLD_GRP_7_FA_2_TELKOMSEL"
Can someone... (7 Replies)
Hi Experts,
I have a file with some of the records contain double quotes. If I found a double quote(") in any particular record , I need to look for the next double quote in that particular record and in between these quotes, if any comma(,) is there I need to replace with Tilde (~) in the same... (12 Replies)
Hello to all,
Does anyone know the solution ?
Two strings A and B are present. I want to check whether B is a Substring of A.
1. The value of A is - 29 * * * /bin/ls "test" "tmp*" "log*"
(Note: Pl note that A contains DOUBLEQUOTES, ASTERISK & FRONTSLASH)
2. The value of B is -... (5 Replies)
Hi Friends,
Can any of you explain me about the below line of code?
mn_code=`env|grep "..mn"|awk -F"=" '{print $2}'`
Im not able to understand, what exactly it is doing :confused:
Any help would be useful for me.
Lokesha (4 Replies)
Hi,
Can anyone suggest a Unix command or c-shell algorithm to simulate to behavior of "wall" command minus the "all users"? What I'm trying to do is to send a notice to just one particular user but i dont want other remotely-logged-on users to receive the message (on the pseudo-terminals). I... (6 Replies)