Execute and lock a user into a program upon login

Steve Bertrand steve at ibctech.ca
Fri Mar 13 18:23:14 PDT 2009


Polytropon wrote:
> On Fri, 13 Mar 2009 21:12:07 -0400, Steve Bertrand <steve at ibctech.ca> wrote:
>> Steve Bertrand wrote:
>>> Hi everyone,
>>>
>>> Although the application of my question focuses on network operation, I
>>> believe that the objective fits this list.
>>>
>>> Mostly irrelevant, I have been working on securing my network perimeter.
>>> I have a FreeBSD box that acts as a host-based BGP peer to all edge
>>> connected routers.
>>>
>>> I use this host-based Quagga FBSD router to distribute routes that are
>>> to be blackholed by the edge devices.
>>>
>>> What I want is to set up an environment so that when a specific user
>>> logs in to the box via SSH, a command is run, and they immediately get
>>> dropped into the environment that the command produces.
>>>
>>> When they exit this 'command', the login session is dropped.
>>>
>>> Essentially, I want to 'lock' a user into a program upon SSH login, and
>>> drop them from the SSH session when the program terminates.
>>>
>>> In essence:
>>>
>>> - user 'router' connects via SSH
>>> - user is dropped into the application 'vtysh'
>>> - user performs operations
>>> - user exits from program
>>> - shell drops (ie. user does not have to exit the csh shell to drop the
>>> SSH connection)
>> I probably should have explicitly stated that I'd like help as to how I
>> would go about doing what I want to do, instead of simply stating my
>> goals ;)
> 
> If the user's shell is csh (FreeBSD's standard dialog shell), you
> could achieve the goal:
> 
> 	~/.login
> 	vtysh
> 	logout
> 
> Only problem: I don't know how the shell will act when the user
> terminates the vtysh application (^C)...
> 
> Idea: When the application vtysh is terminated, the next command
> in the .login file will be executed, which is the logout command
> that will cause the login shell to exit. This will close the SSH
> connection as well.
> 
> (I haven't checked this, sorry.)

Thanks!

No problem for lack of testing. To be honest, an extra 'exit' command
via the shell is acceptable in this case, given that it will be only
internal network ops working this anyway.

I pretty much just wanted to provide a Cisco-like environment for adding
a route upon login (as opposed to having to manually running the vtysh
command). Manually logging out of a secure shell session is ok.

I'll test the log out portion. If it works, that'd be most handy.

Nonetheless, you've helped me out greatly.

Cheers!

Steve


More information about the freebsd-questions mailing list