Marco Bosisio wrote:
First of all thanks to the community for interest and several proposed solutions.

The suggestion received from Hubert based on cmd 'logname' could be an easy way to solve my problem.

22:51 [sum...@bobtail ~]$ logname
logname: no login name
22:51 [sum...@bobtail ~]$

This is on Scientific Linux 5.


For example in case I logged on with userid it32673 and I'm in 'su -' , the contents of '$USER' is different of item returned from 'logname' :
lx1iard0:~ # echo $USER
root
lx1iard0:~ # logname
it32673

Then : - at login the /etc/profile.d/profile_local.sh launch script_xxx - script_xxxx will compare data received from 'logname' with '$USER' and it can decide if to continue or terminate...
In conclusion the problem was  :
The 'script_xxx' executed at login writes some info about Linux, zVM and HW based on /proc/sysinfo and zVM CP cmd. I discovered that someone created scripts that includes commands like : "su - root -c 'which sudo | grep .........' " In these cases executing 'su - ...' the 'profile.local' is executed and 'script_xxx' too, when launch 'which sudo' the 'grep' receive unpredictable messages not what you expect. It is not good.... :-(( .... because the execution 'script_xxx' must be transparent for all.
Ciaoo..Thanks again.

Cordiali saluti  / Best regards
Marco Bosisio

IBM Italia S.p.A.



Hubert Kleinmanns <hub...@kleinmanns.eu> Sent by: Linux on 390 Port <LINUX-390@VM.MARIST.EDU>
04/03/2009 09.00
Please respond to
Linux on 390 Port <LINUX-390@VM.MARIST.EDU>


To
LINUX-390@VM.MARIST.EDU
cc

Subject
Re: Which user env. variable tell me that it is in  "s  u - "   mode ?






Mario,

I fear, I misunderstood your question (or you misunderstood my answer ;-) )

"echo $SHLVL" returns always "1" after a "su - ...", but another value after a "su ..." (without th dash). I thought, this was what you would like to see.

There are several mechanism, to distinguish between the primary login shell and a "su ..." shell:

1. "ps -f"

$ ps -f
UID        PID  PPID  C STIME TTY          TIME CMD
hubert    8163  8162  0 06:58 pts/2    00:00:00 -bash
hubert   23237  8163  0 08:54 pts/2    00:00:00 ps -f

$ su - root

# ps -f
UID        PID  PPID  C STIME TTY          TIME CMD
root     23567  8163  0 08:56 pts/2    00:00:00 /bin/su -
root     23569 23567  1 08:56 pts/2    00:00:00 -bash
root     23602 23569  0 08:56 pts/2    00:00:00 ps -f

2. "logname" vs. "id"

# logname
hubert

# id
uid=0(root) gid=0(root) groups=0(root)

Hope this helps.

Regards
Hubert


-----Urspr�ngliche Nachricht-----
Von: "Marco Bosisio" <marco_bosi...@it.ibm.com>
Gesendet: 03.03.09 14:00:17
An: LINUX-390@VM.MARIST.EDU
Betreff: Re: Which user env. variable tell me that it is in "s u - "
mode ?


Hi Hubert,
your suggestion works fine running for nested scripts, I created 3

script testa -> testb -> testc like this :
lx1iard0:~ # cat  testa
#!/bin/bash
echo "testa => SHLVL="$SHLVL
sh /root/testb
exit


lx1iard0:~ # echo $SHLVL
1

lx1iard0:~ # sh testa
testa => SHLVL=2
--testb => SHLVL=3
----testc => SHLVL=4


But.... the variable $SHLVL is always 1 after a "su - " :
it32...@lx1iard0:~> echo $SHLVL
1
it32...@lx1iard0:~> su -
Password:
lx1iard0:~ # echo $SHLVL
1
lx1iard0:~ #


I customized the profile.local and it launch a script_xxx at login. When

use 'su - ' I would like that the new user does not execute the script_xxx again.


Cordiali saluti  / Best regards

        Marco Bosisio             IBM Italia S.p.A.







Hubert Kleinmanns <hub...@kleinmanns.eu> Sent by: Linux on 390 Port <LINUX-390@VM.MARIST.EDU>
03/03/2009 11.32
Please respond to
Linux on 390 Port <LINUX-390@VM.MARIST.EDU>


To
LINUX-390@VM.MARIST.EDU
cc

Subject
Re: Which user env. variable tell me that it is in  "s u - "   mode ?






Hi Marco,

try:

echo $SHLVL

The value is incremented for each new sub shell - so it will be "1" for login shells (which you get with "su - ..."

Regards
Hubert


-----Urspr�ngliche Nachricht-----
Von: "Marco Bosisio" <marco_bosi...@it.ibm.com>
Gesendet: 03.03.09 11:12:04
An: LINUX-390@VM.MARIST.EDU
Betreff: Which user env. variable tell me that it is in "su - " mode
?


Hi,
do you know wich user environment variable I have to test
(executing
a bash script) to know when I am in "su -" (switch user mode)
?

Reading variables provided by "env" command then testing $TERM
I
am able to  know  if  not  a Linux terminal :
..
.......
# We can only execute on a terminal SSH / Telnet ,   not  executed if
secondary console Linux/zVM
if [[ "$TERM" != "xterm" ]] ; then  exit
fi
......

I would like to do the same  when the script  is executed  in a  user
logged  in  "su -  "   mode...

Thanks in advance.

X-390


22:51 [sum...@bobtail ~]$ logname
logname: no login name
22:51 [sum...@bobtail ~]$

This is on Scientific Linux 5.

--

Cheers
John

-- spambait
1aaaa...@coco.merseine.nu  z1aaaa...@coco.merseine.nu
-- Advice
http://webfoot.com/advice/email.top.php
http://www.catb.org/~esr/faqs/smart-questions.html
http://support.microsoft.com/kb/555375

You cannot reply off-list:-)

----------------------------------------------------------------------
For LINUX-390 subscribe / signoff / archive access instructions,
send email to lists...@vm.marist.edu with the message: INFO LINUX-390 or visit
http://www.marist.edu/htbin/wlvindex?LINUX-390

Reply via email to