shell script as a startup shell in /etc/password?

shell script as a startup shell in /etc/password?

Post by shavian7 » Wed, 13 Sep 2006 02:44:00


Hi,

I am trying to start a shell script at user login by putting the shell
script in the /etc/password file like this:

foo:x:456:1::/home/foo:/space/foo/myshell

The script myshell is a one liner that starts up a script session for
terminal logging:

#!/usr/bin/bash
/usr/ucb/script /tmp/typescript

But when I try to log into the system as foo, I just see a bunch of
script processes getting created and then dying. Any ideas as to what
is happening? Using Solaris 10, linux had similar results.

$ ssh localhost -l admin
Password:
Last login: Mon Sep 11 09:32:45 2006 from localhost
Script started, file is /tmp/typescript
Script started, file is /tmp/typescript
Script started, file is /tmp/typescript
Script started, file is /tmp/typescript
Script started, file is /tmp/typescript
Script started, file is /tmp/typescript
Script started, file is /tmp/typescript
Script started, file is /tmp/typescript
Script started, file is /tmp/typescript
Script started, file is /tmp/typescript
Script started, file is /tmp/typescript
Script started, file is /tmp/typescript
Script started, file is /tmp/typescript
Script started, file is /tmp/typescript
Script started, file is /tmp/typescript
Script started, file is /tmp/typescript
Script started, file is /tmp/typescript
Script started, file is /tmp/typescript
Script started, file is /tmp/typescript
Script started, file is /tmp/typescript
Script started, file is /tmp/typescript
Script started, file is /tmp/typescript
Script started, file is /tmp/typescript
Script started, file is /tmp/typescript
Script started, file is /tmp/typescript
Script started, file is /tmp/typescript
Script started, file is /tmp/typescript
Script started, file is /tmp/typescript
Bad address
Script done, file is /tmp/typescript
Script done, file is /tmp/typescript
Script done, file is /tmp/typescript
Script done, file is /tmp/typescript
Script done, file is /tmp/typescript
Script done, file is /tmp/typescript
Script done, file is /tmp/typescript
Script done, file is /tmp/typescript
Script done, file is /tmp/typescript
Script done, file is /tmp/typescript
Script done, file is /tmp/typescript
Script done, file is /tmp/typescript
Script done, file is /tmp/typescript
Script done, file is /tmp/typescript
Script done, file is /tmp/typescript
Script done, file is /tmp/typescript
Script done, file is /tmp/typescript
Script done, file is /tmp/typescript
Script done, file is /tmp/typescript
Script done, file is /tmp/typescript
Script done, file is /tmp/typescript
Script done, file is /tmp/typescript
Script done, file is /tmp/typescript
Script done, file is /tmp/typescript
Script done, file is /tmp/typescript
Script done, file is /tmp/typescript
Script done, file is /tmp/typescript
Script done, file is /tmp/typescript
Connection to localhost closed.
$

Is it possible to execute a shell script (or some other binary) from
/etc/password like I am intending too? Any other ideas as to how to log
a user's keystrokes every time the user logs in?

thanks,
Shavian
 
 
 

shell script as a startup shell in /etc/password?

Post by Kaz Kylhek » Wed, 13 Sep 2006 06:44:01


Script launches a new shell. The user's shell is /space/foo/myshell,
and so you get infinite recursion. Try reassigning the SHELL
environment variable as the first step.

#/usr/bin/bash
SHELL=/usr/bin/bash
/usr/ucb/script /tmp/typescript

You should probably use a computed filename for the script file,
otherwise multiple concurrent sessions will clobber each other. Or at
least use the append option of script.

 
 
 

shell script as a startup shell in /etc/password?

Post by shavian7 » Wed, 13 Sep 2006 08:16:57


Thanks much! That did it.