[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Saving command history for non-interactive shell

From: Greg Wooledge
Subject: Re: Saving command history for non-interactive shell
Date: Fri, 16 Mar 2012 10:56:27 -0400
User-agent: Mutt/

On Fri, Mar 16, 2012 at 02:33:35PM +0000, Lars Peterson wrote:
> Is there a way to configure bash so that commands from a non-interactive
> shell are preserved in the history? I'm more interested in saving commands
> invoked via ssh vs shell scrpts.

>From CHANGES, for bash 4.1:

l.  There is a new configuration option (in config-top.h) that forces bash to
    forward all history entries to syslog.

However, that only applies to commands that bash is already adding to
its history.  So you'd also have to do a "set -o history" command at
some point, since non-interactive shells don't do that by default.
That might be tricky to arrange.

And of course you'd have to force the ssh user to use your specially
compiled bash with the SYSLOG_HISTORY option, and not some other shell.

If the larger context is "I want to know everything my users are doing",
you're going to end up frustrated.  Unix simply wasn't designed to lock
users down.  Quite the opposite -- it was designed to give users full
power.  Users can make system calls without going through a shell, by
writing C code and so on.  They can also invoke processes without using
a shell, if processes are the thing you actually want to track, rather
than, for instance, file system operations.

If any of the above resembles your actual goal, then you need to look
into "accounting" ("process accounting", etc.).  It's a huge topic, and
logging shell commands doesn't even come close to addressing it.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]