Bashrc File - Conditional Command Execution?

Hello All,

I was wondering if there is a way to execute a command in my ".bashrc" file based on how I logged into the PC?

I was thinking maybe there is a way to check how the user (*myself) logged in, maybe somehow with the who command along with something else, but I'm not sure... I know I could run who and then check to see if there is a remote user logged in, but I didn't see a way of proving that the remote user shown in the who command's output was me or not?

I know I could do this below, but there could also be other user's remotely logged in, or multiple terminals open, etc... So I couldn't just say something like, "If there is an IP Address found in the 'who' commands output, then I'm a remote user...."

# who
user1 :0           2014-07-08 00:00 (console)
user1 pts/0        2015-02-10 10:47 (:0.0)
user2 pts/1        2015-02-10 12:01 (192.168.123.789)
user1 pts/2        2015-02-10 10:55 (:0.0)
user1 pts/3        2015-02-10 10:56 (:0.0)
user2 pts/4        2015-02-10 12:28 (192.168.123.456)      <--**** THIS IS ME ****

So I guess, is there anyway to tell that user2 in the output above is myself? Maybe by finding out which pts I'm using..?

Could anyone point me in the right direction on where I should/could start with finding this out..? Any thoughts or suggestions would be greatly appreciated!

Thanks in Advance,
Matt

********** EDIT **********
I think I may have found something in Google'ing around a bit more...
I knew of the "who", "whoami", "w", "users" commands but I had never seen the "who am i" command (*with Spaces) which printed the following:

# who am i
user2     pts/4        2015-02-10 12:28  (192.168.123.456)

So I guess I'll see if I can give this a try...

This may work if your host has a fixed IP address assigned to it. With DHCP this may change over time. Anyhow, having several users log into the same account is usually deprecated for its inherent insecurity.

Hey RudiC, thanks for the reply.

Yea, I ruled out using the IP Address because of that reason (*DHCP) and also that other users could be logged in remotely as well... Not sure what version that has been deprecated on but the remote PC is running OpenSuSE 13.1 Kernel 3.14... so its fairly newer I suppose...

But anyway, I think the "who am i" command should help me do what I want. I was thinking of something like this below. This is just a simple test, but it seems to have worked:

REGEX="[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}"

if [[ `who am i` =~ $REGEX ]]
 then
    echo "TRUE"
else
    echo "FALSE"
fi

After SSH'ing in I ran this file and it printed "TRUE", then I physically went to this machine and ran this file and it printed "FALSE". So I think it should work.

And I know the REGEX isn't very precise in terms of fitting into what the standards of what an IP Address can be (*i.e. the regex allows numbers higher then 255) but for my purposes I think this should suffice...

Thanks Again for the reply,
Matt

If you use sudo, try the "id" command. That might give you additional information.

Not "depreciated" as in "no longer possible", but "depreciated" as in "giving several different people access to the same account is now widely regarded as dumb and unnecessary".

Oh ok, gotcha... Its just a server/PC that has one user and only 2 of use even know the login so it works for our purposes, thanks.

I did see the "id" command while searching around but it didn't show whether or not the user logged-in remotely or not, but the "who am i" one did... And on a funny note I also came across "who mom likes" which I thought was pretty funny, lol....

By anyway, thanks again for the replies. Much appreciated!

Thanks,
Matt

That's how it often begins, and then suddenly you need to add more users... Before you know it, there's 12 people on one login with no way to know who did what.

You should use their 'group' to help define a role or project that might have common access to storage or commands.