Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.debian.user > #191062 > unrolled thread

history issue - bug?

Started byHans <hans.ullrich@loop.de>
First post2018-01-14 14:10 +0100
Last post2018-01-16 17:50 +0100
Articles 13 — 7 participants

Back to article view | Back to linux.debian.user


Contents

  history issue - bug? Hans <hans.ullrich@loop.de> - 2018-01-14 14:10 +0100
    Re: history issue - bug? David Wright <deblis@lionunicorn.co.uk> - 2018-01-14 15:50 +0100
      Re: history issue - bug? Hans <hans.ullrich@loop.de> - 2018-01-14 17:50 +0100
        Re: history issue - bug? bw <bwtnguy@yahoo.com> - 2018-01-14 18:20 +0100
          Re: history issue - bug? Hans <hans.ullrich@loop.de> - 2018-01-14 18:30 +0100
            Re: history issue - bug? Brian <ad44@cityscape.co.uk> - 2018-01-14 19:50 +0100
          Re: history issue - bug? rhkramer@gmail.com - 2018-01-14 19:10 +0100
            Re: history issue - bug? bw <bwtnguy@yahoo.com> - 2018-01-14 19:40 +0100
            Re: history issue - bug? David Wright <deblis@lionunicorn.co.uk> - 2018-01-14 20:50 +0100
        Re: history issue - bug? David Wright <deblis@lionunicorn.co.uk> - 2018-01-14 20:30 +0100
        Re: history issue - bug? davidson <davidson@freevolt.org> - 2018-01-16 05:40 +0100
    Re: history issue - bug? Felipe Salvador <felipe.salvador@gmail.com> - 2018-01-14 18:30 +0100
      Re: history issue - bug? Felipe Salvador <felipe.salvador@gmail.com> - 2018-01-16 17:50 +0100

#191062 — history issue - bug?

FromHans <hans.ullrich@loop.de>
Date2018-01-14 14:10 +0100
Subjecthistory issue - bug?
Message-ID<v7QcW-3Nq-15@gated-at.bofh.it>
Hi folks, 

try this:

1. login as normal user

2. become root with "su -"

3. delete history with "history -c"

4. Check history, history is gone

5. logout from root by "CTL + D" or "exit"

6. relogin as root with "su -"

7. Check history, voila, it appears again.

What is wrong? Is it a bug or am I doing the wrong way?

Any comment will help.

Best regards

Hans

[toc] | [next] | [standalone]


#191064

FromDavid Wright <deblis@lionunicorn.co.uk>
Date2018-01-14 15:50 +0100
Message-ID<v7RLI-4Dn-3@gated-at.bofh.it>
In reply to#191062
On Sun 14 Jan 2018 at 14:07:01 (+0100), Hans wrote:
> Hi folks, 
> 
> try this:
> 
> 1. login as normal user
> 
> 2. become root with "su -"

… which reads ~/.bash_history into what I call the command recall buffer.

> 3. delete history with "history -c"

… which deletes all the entries in the recall buffer, those just read
  in and those commands typed since logging in.

> 4. Check history, history is gone

Presumably you mean you just tried to recall a command and failed.
Make that command "ls -l ~/.bash_history" and you'll see the file
is still there.

> 5. logout from root by "CTL + D" or "exit"
> 
> 6. relogin as root with "su -"

… which reads ~/.bash_history.

> 7. Check history, voila, it appears again.

… as expected.

> What is wrong?

Distinguish between history list and history file.

To eliminate your history, you need to remove/empty the file and
also clear the list just before you logout.

Cheers,
David.

[toc] | [prev] | [next] | [standalone]


#191068

FromHans <hans.ullrich@loop.de>
Date2018-01-14 17:50 +0100
Message-ID<v7TDP-5PS-1@gated-at.bofh.it>
In reply to#191064
Am Sonntag, 14. Januar 2018, 08:41:21 CET schrieb David Wright:
Hi David,

thanks for enlightening me. I always though, that "history -c" would clear all 
the history and its files as the help file says:

-c        clear the history list by deleting all of the entries

So IMO this should delete all related history files, even bash_history. 

And as far as I remember, this did it do in former times. 

In my eyes this is a security hole, as someone, who gaines root somehow (what 
already is bad eneough) might get more informations of commands, root did in 
the past. 

As I said, history -c should delete ALL traces of history, just as the help 
files tells, shouldn't it? As you confirmed, it does not and you also 
confirmed, that this is normal behaviour. 

In this case, I recommend this as a failure-by-design.

Again, thanks for your clearence, I will file a bug report.

Best 

Hans
> On Sun 14 Jan 2018 at 14:07:01 (+0100), Hans wrote:
> > Hi folks,
> > 
> > try this:
> > 
> > 1. login as normal user
> > 
> > 2. become root with "su -"
> 
> … which reads ~/.bash_history into what I call the command recall buffer.
> 
> > 3. delete history with "history -c"
> 
> … which deletes all the entries in the recall buffer, those just read
>   in and those commands typed since logging in.
> 
> > 4. Check history, history is gone
> 
> Presumably you mean you just tried to recall a command and failed.
> Make that command "ls -l ~/.bash_history" and you'll see the file
> is still there.
> 
> > 5. logout from root by "CTL + D" or "exit"
> > 
> > 6. relogin as root with "su -"
> 
> … which reads ~/.bash_history.
> 
> > 7. Check history, voila, it appears again.
> 
> … as expected.
> 
> > What is wrong?
> 
> Distinguish between history list and history file.
> 
> To eliminate your history, you need to remove/empty the file and
> also clear the list just before you logout.
> 
> Cheers,
> David.

[toc] | [prev] | [next] | [standalone]


#191069

Frombw <bwtnguy@yahoo.com>
Date2018-01-14 18:20 +0100
Message-ID<v7U6S-6go-5@gated-at.bofh.it>
In reply to#191068

On Sun, 14 Jan 2018, Hans wrote:

> Am Sonntag, 14. Januar 2018, 08:41:21 CET schrieb David Wright:
> Hi David,
> 
> thanks for enlightening me. I always though, that "history -c" would clear all 
> the history and its files as the help file says:
> 
> -c        clear the history list by deleting all of the entries
> 
> So IMO this should delete all related history files, even bash_history. 
> 

Shouldn't it do what it says it will do? 

It says "clear... the list" it does not say delete files.  I can't answer 
the question about how long it has been this way, but I'm sure it is 
documented, so maybe look that up before fiing a bug about it?

[toc] | [prev] | [next] | [standalone]


#191071

FromHans <hans.ullrich@loop.de>
Date2018-01-14 18:30 +0100
Message-ID<v7Ugy-6jG-7@gated-at.bofh.it>
In reply to#191069
Am Sonntag, 14. Januar 2018, 12:14:47 CET schrieb bw:
> On Sun, 14 Jan 2018, Hans wrote:
> > Am Sonntag, 14. Januar 2018, 08:41:21 CET schrieb David Wright:
> > Hi David,
> > 
> > thanks for enlightening me. I always though, that "history -c" would clear
> > all the history and its files as the help file says:
> > 
> > -c        clear the history list by deleting all of the entries
> > 
> > So IMO this should delete all related history files, even bash_history.
> 
> Shouldn't it do what it says it will do?
> 
> It says "clear... the list" it does not say delete files.  I can't answer
> the question about how long it has been this way, but I'm sure it is
> documented, so maybe look that up before fiing a bug about it?

It looks like we understand different. 

-c        clear the history list by deleting all of the entries

It says: .....ALL of the entries

IMHO all means ALL, regardless in which file or if in memory.
Otherwise this command would not make any sense, too.

Of course, one can see it in another way than me...

Cheers

Hans

[toc] | [prev] | [next] | [standalone]


#191081

FromBrian <ad44@cityscape.co.uk>
Date2018-01-14 19:50 +0100
Message-ID<v7VvY-72W-11@gated-at.bofh.it>
In reply to#191071
On Sun 14 Jan 2018 at 18:25:09 +0100, Hans wrote:

> Am Sonntag, 14. Januar 2018, 12:14:47 CET schrieb bw:
> > On Sun, 14 Jan 2018, Hans wrote:
> > > Am Sonntag, 14. Januar 2018, 08:41:21 CET schrieb David Wright:
> > > Hi David,
> > > 
> > > thanks for enlightening me. I always though, that "history -c" would clear
> > > all the history and its files as the help file says:
> > > 
> > > -c        clear the history list by deleting all of the entries
> > > 
> > > So IMO this should delete all related history files, even bash_history.
> > 
> > Shouldn't it do what it says it will do?
> > 
> > It says "clear... the list" it does not say delete files.  I can't answer
> > the question about how long it has been this way, but I'm sure it is
> > documented, so maybe look that up before fiing a bug about it?
> 
> It looks like we understand different. 

Indeed. It's not unusual for this to happen, even amongst native
speakers of English (or any other language, I presumme).
 
> -c        clear the history list by deleting all of the entries
> 
> It says: .....ALL of the entries

Correct.
 
> IMHO all means ALL, regardless in which file or if in memory.
> Otherwise this command would not make any sense, too.

You are the one who is imposing "...in which file or if in memory....".
All does mean ALL (you're not a politician, are you :) ). The commands
used in a session are saved in memory in a *list* and written to a
*file* when you log out.
 
> Of course, one can see it in another way than me...

Search on "history list" in the bash manual.

-- 
Brian.


> Cheers
> 
> Hans
> 
> 
> 

[toc] | [prev] | [next] | [standalone]


#191074

Fromrhkramer@gmail.com
Date2018-01-14 19:10 +0100
Message-ID<v7UTf-6Nq-5@gated-at.bofh.it>
In reply to#191069
On Sunday, January 14, 2018 12:14:47 PM bw wrote:
> On Sun, 14 Jan 2018, Hans wrote:
> > Am Sonntag, 14. Januar 2018, 08:41:21 CET schrieb David Wright:
> > Hi David,
> > 
> > thanks for enlightening me. I always though, that "history -c" would
> > clear all the history and its files as the help file says:
> > 
> > -c        clear the history list by deleting all of the entries
> > 
> > So IMO this should delete all related history files, even bash_history.
> 
> Shouldn't it do what it says it will do?
> 
> It says "clear... the list" it does not say delete files.  I can't answer
> the question about how long it has been this way, but I'm sure it is
> documented, so maybe look that up before fiing a bug about it?

I don't know if I want to comment or not.  To me, it takes a fairly savvy user 
to recognize that list and file are not synonymous--for many casual users 
(including me, and I consider myself generally as something more than just a 
casual user), that documentation is not sufficient.

At the risk of overkill, I would have written the documentation with a note to 
clarify exactly what I said above--something like (with a not full 
understanding of where / how the list is stored):

"clear ... the list, but please note that there is both a list with the 
command history, and a file.  History -c clears that list, but not the file, and 
when events occuur (like a new login), the history list is restored from the 
history file.  The history file is in <wherever>, and if you want to eradicate 
most traces of the history file, you must also delete that file, and, 
potentially, if that critical, any backups.

To me, if it will not be considered a bug in the implementation of the history 
command, it is a bug in the documentation.  (Of course, I haven't gone looking 
for documentation on the history command, perhaps this behavior is reasonably 
documented.  I would think it should be covered under the -h option, or maybe 
if several options need to discuss the existence of the history file, at least 
a note under the -h option something like: : see <somewhere> for discussion of 
the history file and the distinction between it and the history list.

[toc] | [prev] | [next] | [standalone]


#191076

Frombw <bwtnguy@yahoo.com>
Date2018-01-14 19:40 +0100
Message-ID<v7Vmh-6Zk-1@gated-at.bofh.it>
In reply to#191074

On Sun, 14 Jan 2018, rhkramer@gmail.com wrote:

> On Sunday, January 14, 2018 12:14:47 PM bw wrote:
> > On Sun, 14 Jan 2018, Hans wrote:
> > > Am Sonntag, 14. Januar 2018, 08:41:21 CET schrieb David Wright:
> > > Hi David,
> > > 
> > > thanks for enlightening me. I always though, that "history -c" would
> > > clear all the history and its files as the help file says:
> > > 
> > > -c        clear the history list by deleting all of the entries
> > > 
> > > So IMO this should delete all related history files, even bash_history.
> > 
> > Shouldn't it do what it says it will do?
> > 
> > It says "clear... the list" it does not say delete files.  I can't answer
> > the question about how long it has been this way, but I'm sure it is
> > documented, so maybe look that up before fiing a bug about it?
> 
> I don't know if I want to comment or not.  To me, it takes a fairly savvy user 
> to recognize that list and file are not synonymous--for many casual users 
> (including me, and I consider myself generally as something more than just a 
> casual user), that documentation is not sufficient.


I agree it's easy to be misled.  I have filed bugs several times when the 
problem was my understanding.  Luckily, the debian maintainers are patient 
and for the most part very kind about it.

Nothing wrong with trying to find a bug, but with very old, very used 
components it's probably not all that common?

[toc] | [prev] | [next] | [standalone]


#191094

FromDavid Wright <deblis@lionunicorn.co.uk>
Date2018-01-14 20:50 +0100
Message-ID<v7Ws2-7DJ-19@gated-at.bofh.it>
In reply to#191074
On Sun 14 Jan 2018 at 12:59:55 (-0500), rhkramer@gmail.com wrote:
> On Sunday, January 14, 2018 12:14:47 PM bw wrote:
> > On Sun, 14 Jan 2018, Hans wrote:
> > > Am Sonntag, 14. Januar 2018, 08:41:21 CET schrieb David Wright:
> > > Hi David,
> > > 
> > > thanks for enlightening me. I always though, that "history -c" would
> > > clear all the history and its files as the help file says:
> > > 
> > > -c        clear the history list by deleting all of the entries
> > > 
> > > So IMO this should delete all related history files, even bash_history.
> > 
> > Shouldn't it do what it says it will do?
> > 
> > It says "clear... the list" it does not say delete files.  I can't answer
> > the question about how long it has been this way, but I'm sure it is
> > documented, so maybe look that up before fiing a bug about it?
> 
> I don't know if I want to comment or not.  To me, it takes a fairly savvy user 
> to recognize that list and file are not synonymous--for many casual users 
> (including me, and I consider myself generally as something more than just a 
> casual user), that documentation is not sufficient.

[…]

>  (Of course, I haven't gone looking 
> for documentation on the history command, perhaps this behavior is reasonably 
> documented.

!

man bash

Cheers,
David.

[toc] | [prev] | [next] | [standalone]


#191089

FromDavid Wright <deblis@lionunicorn.co.uk>
Date2018-01-14 20:30 +0100
Message-ID<v7W8G-7vP-17@gated-at.bofh.it>
In reply to#191068
On Sun 14 Jan 2018 at 17:46:51 (+0100), Hans wrote:
> Am Sonntag, 14. Januar 2018, 08:41:21 CET schrieb David Wright:
> Hi David,
> 
> thanks for enlightening me. I always though, that "history -c" would clear all 
> the history and its files as the help file says:
> 
> -c        clear the history list by deleting all of the entries
> 
> So IMO this should delete all related history files, even bash_history. 

Sorry, but that wouldn't be how the English in that statement would
normally be understood.

> And as far as I remember, this did it do in former times. 

Not in bash 2.

> In my eyes this is a security hole, as someone, who gaines root somehow (what 
> already is bad eneough) might get more informations of commands, root did in 
> the past. 

If this concerns you, truncate ~/.bash_history and chmod a=r.

> As I said, history -c should delete ALL traces of history, just as the help 
> files tells, shouldn't it?

No. you lose functionality.

> As you confirmed, it does not and you also 
> confirmed, that this is normal behaviour. 

Yes, and it follows the documentation.

> In this case, I recommend this as a failure-by-design.

> Again, thanks for your clearence, I will file a bug report.

I would prefer you didn't.

> > On Sun 14 Jan 2018 at 14:07:01 (+0100), Hans wrote:
> > > Hi folks,
> > > 
> > > try this:
> > > 
> > > 1. login as normal user
> > > 
> > > 2. become root with "su -"
> > 
> > … which reads ~/.bash_history into what I call the command recall buffer.
> > 
> > > 3. delete history with "history -c"
> > 
> > … which deletes all the entries in the recall buffer, those just read
> >   in and those commands typed since logging in.
> > 
> > > 4. Check history, history is gone
> > 
> > Presumably you mean you just tried to recall a command and failed.
> > Make that command "ls -l ~/.bash_history" and you'll see the file
> > is still there.
> > 
> > > 5. logout from root by "CTL + D" or "exit"
> > > 
> > > 6. relogin as root with "su -"
> > 
> > … which reads ~/.bash_history.
> > 
> > > 7. Check history, voila, it appears again.
> > 
> > … as expected.
> > 
> > > What is wrong?
> > 
> > Distinguish between history list and history file.
> > 
> > To eliminate your history, you need to remove/empty the file and
> > also clear the list just before you logout.

Cheers,
David.

[toc] | [prev] | [next] | [standalone]


#191176

Fromdavidson <davidson@freevolt.org>
Date2018-01-16 05:40 +0100
Message-ID<v8rct-3pc-3@gated-at.bofh.it>
In reply to#191068

[Multipart message — attachments visible in raw view] — view raw

On Sun, 14 Jan 2018, Hans wrote:

> Am Sonntag, 14. Januar 2018, 08:41:21 CET schrieb David Wright:
> Hi David,
>
> thanks for enlightening me. I always though, that "history -c" would
> clear all the history and its files as the help file says:
>
> -c        clear the history list by deleting all of the entries
>
> So IMO this should delete all related history files, even
> bash_history.

"Even" bash_history? Besides .bash_history, what other files did you
have in mind?

If "history -c" deleted any file at all, the documentation would need
to be changed to reflect that fact. At present, the documentation is
accurate.

A list has entries, and if you delete all the entries, that means you
now have an empty list. It certainly does NOT mean that you have
thereby nuked any and all files to which (the at-most $HISTSIZE length
tails of) previous iterations of that list have been saved.

I suspect that you must be distressed to discover a workflow you had
relied on does not in fact accomplish what you had long thought it
accomplished, because you had conceptually conflated two distinct
entities:

  * your shell *session's* command history *list*

versus

  * your *account's* command history *file*.

Speaking from repeated experience, it does indeed suck to learn that
your beliefs about a trusted tool's behavior have been mistaken for a
long time.

If this is the case, you have my condolences.

But you also have my congratulations, and perhaps you will agree that
finding out you were wrong is still far better than the alternative,
which is to remain forever blissfully mistaken.

> And as far as I remember, this did it do in former times.
>
> In my eyes this is a security hole, as someone, who gaines root
> somehow (what already is bad eneough) might get more informations of
> commands, root did in the past.

You'd like to do without the convenience of a persistent command
history file for root shells.

Since it is your concern to ensure that you don't leave behind shell
command history in a history file:

  1. Did you see Felipe Salvador's suggested addition (elsewhere in
     this thread) to your original workflow? Looked pretty slick to me.

  2. The shell variables HISTFILE and HISTFILESIZE are documented in
     the bash man page. Set HISTFILESIZE to 0, or unset HISTFILE.
     (Since for bash login shells my /root/.profile sources ~/.bashrc,
     my understanding is that it would suffice in my case to set/unset
     these in /root/.bashrc to the appropriate value.)

     If you know you won't want persistent command history on a given
     account, this seems a reasonably reliable way to arrange that you
     don't get one.

  3. Also in the bash man page is documentation of the shell variables
     HISTIGNORE and HISTCONTROL.

      * HISTIGNORE is a colon-separated list of patterns that match
        commands you wish to omit from the history list altogether.

      * HISTCONTROL is a colon-separated list. If one of its elements
        is 'ignorespace', then any command line that begins with a
        space will be omitted from the history list.

     NB: Subsequent lines after the first line, of a multi-line
     command, are stored in the history list regardless of HISTIGNORE
     and HISTCONTROL.

  4. If I remember correctly mksh, the MirBSD Korn shell, by default
     writes to no command history file at all, even for a regular user
     account. (Though this can of course be configured to suit user
     preference.)  Maybe its design would please you better than bash
     in other ways, as well.

> As I said, history -c should delete ALL traces of history, just as
> the help files tells, shouldn't it?

Just FYI, the documentation on bash builtins you get from "help
[builtin]" is intentionally terse, and provides far less contextual
information, than the information available in the bash man page.

> As you confirmed, it does not and you also confirmed, that this is
> normal behaviour.
>
> In this case, I recommend this as a failure-by-design.
>
> Again, thanks for your clearence, I will file a bug report.

Of course you will do what seems best to you.

But it seems to me that studying the bash man page, to see what else
you might have wrongly assumed, might make better use of your time.

I base this advice this on two rules of thumb:

  1. Better sooner than later.

  2. The bash man page is dense with useful information.

Good luck with your stuff.

-- 

"We’re not arguing for censorship, we’re arguing just take it off the
page, put it somewhere else." -- Eric Schmidt

[toc] | [prev] | [next] | [standalone]


#191070

FromFelipe Salvador <felipe.salvador@gmail.com>
Date2018-01-14 18:30 +0100
Message-ID<v7Ugy-6jG-3@gated-at.bofh.it>
In reply to#191062
On Sun, Jan 14, 2018 at 02:07:01PM +0100, Hans wrote:
> Hi folks, 
> 
> try this:
> 
> 1. login as normal user
> 
> 2. become root with "su -"
> 
> 3. delete history with "history -c"

Then run "history -w" to "write the current history to the history
file"

> 4. Check history, history is gone
> 
> 5. logout from root by "CTL + D" or "exit"
> 
> 6. relogin as root with "su -"
> 
> 7. Check history, voila, it appears again.
> 
> What is wrong? Is it a bug or am I doing the wrong way?
> 
> Any comment will help.
> 
> Best regards
> 
> Hans

Regards

-- 
Felipe Salvador

[toc] | [prev] | [next] | [standalone]


#191198

FromFelipe Salvador <felipe.salvador@gmail.com>
Date2018-01-16 17:50 +0100
Message-ID<v8CAW-2Wf-5@gated-at.bofh.it>
In reply to#191070
On Sun, Jan 14, 2018 at 06:24:27PM +0100, Felipe Salvador wrote:
> On Sun, Jan 14, 2018 at 02:07:01PM +0100, Hans wrote:
> > Hi folks, 
> > 
> > try this:
> > 
> > 1. login as normal user
> > 
> > 2. become root with "su -"
> > 
> > 3. delete history with "history -c"
> 
> Then run "history -w" to "write the current history to the history
> file"

Maybe you could fill a bug report in order to ask if it is possible
change the history behaviour about -c and -w switches, actually it
doesn't accept this combination, you cannot use

	$history -c -w  
or
	$history -cw

You have to run separately

    $history -c
AND
    $history -w

Though I don't think this is a bug.


Regards
-- 
Felipe Salvador

[toc] | [prev] | [standalone]


Back to top | Article view | linux.debian.user


csiph-web