Bash History not containing all history and blank after reboot, how to resolve?

I've recently upgraded from 13.04 to 13.10 and realized my terminal bash history is not surviving reboots.

cat ~/.bash_history gave me a permissions denied error.

I, possibly unnecessarily or wrongly, issued a chmod 777 ~/.bash_history to see if that would help...and although I could then cat and read some contents it contained not much of anything as far as history.

I also tried sudo rm ~/.bash_history after reading bash history not being preserved

Strangely, after doing that, I typed a few test commands, ls, ls -lah ... and upon pressing the up arrow to go back through history it contained those two commands as well as the odd history from some far off time in the past but very few results and not the hundreds of commands I typed earlier in the day.

Is there a new place bash history is stored? How can removing ~/.bash_history not get rid of the commands that are somehow lingering? I am not certain, but I believe my root bash history is acting normal. My user bash history is what's causing me trouble. Any help and guidance in tracking down and solving this problem is appreciated.


Run:

sudo chown bob:bob ~/.bash_history && chmod 660 ~/.bash_history

the correct solution is to ensure correct permissions on your .bash_history file

  • get your user and group information using the 'id' tool. output should look like: uid=1000(myuser) gid=1000(mygroup)
  • change ownership of the file: sudo chown myuser:mygroup ~/.bash_history
  • change permissions of the file: sudo chmod 0644 ~/.bash_history

outside of /tmp there is NO problem that chmod 777 fixes. you should stop using that permission set, entirely, until you're fully aware of the implications.


Even faster without having to fiddle with chown and chmod:

Logged in as the user whose history is not saved:

sudo rm ~/.bash_history
touch ~/.bash_history

Make sure not to type any command between the 2 above