Непонятка с history -c

Cent OS, Scientific Linux

Модератор: Модераторы разделов

Ответить
Аватара пользователя
kerogaz
Сообщения: 916
ОС: CentOS,FreeBSD 12.1,Arch

Непонятка с history -c

Сообщение kerogaz »

CentOS6.7
Нахожусь под рутом (su) Набираю в командной строке history -c . История команд исчезает. Потом я случайно набрал su и вся предыдушая история команд вновь появилась

Командная оболочка

Код: Выделить всё

echo $SHELL
/bin/bash

Спасибо сказали:
Аватара пользователя
s.xbatob
Сообщения: 1139
ОС: Fedora

Re: Непонятка с history -c

Сообщение s.xbatob »

shell-ы между собой историей не обмениваются. Каждый новый интерактивный sh загружает при старте историю из файла $HOME/.bash_history (который в случае su или sudo может ещё и в другом месте оказаться или - что ещё хуже - может быть сохранён по завершении с чужими правами), держит её в памяти и сохраняет в файл по завершении. В этом механизме надёжно только хранение в памяти. Что, кем и когда будет сохранено - это не слишком предсказуемо.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Непонятка с history -c

Сообщение Bizdelnick »

s.xbatob писал(а):
17.09.2015 09:28
Что, кем и когда будет сохранено - это не слишком предсказуемо.

Ну почему же, в случае bash история сохраняется при выходе.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
kerogaz
Сообщения: 916
ОС: CentOS,FreeBSD 12.1,Arch

Re: Непонятка с history -c

Сообщение kerogaz »

Я обнулил .bash_history и этот эффект исчез. А до этого при вводе su вынимались оттуда какие-то несколько последних строк истории, потому что вся история была огромная
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Непонятка с history -c

Сообщение Bizdelnick »

kerogaz писал(а):
17.09.2015 10:24
вся история была огромная

(man bash) писал(а):

Код: Выделить всё

       HISTSIZE
              The number of commands to remember in the command  history  (see
              HISTORY  below).   If  the value is 0, commands are not saved in
              the history list.  Numeric values less than zero result in every
              command  being  saved  on  the history list (there is no limit).
              The shell sets the  default  value  to  500  after  reading  any
              startup files.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
s.xbatob
Сообщения: 1139
ОС: Fedora

Re: Непонятка с history -c

Сообщение s.xbatob »

Bizdelnick писал(а):
17.09.2015 10:19
s.xbatob писал(а):
17.09.2015 09:28
Что, кем и когда будет сохранено - это не слишком предсказуемо.

Ну почему же, в случае bash история сохраняется при выходе.

...каждым интерактивным шеллом (и только если его остановить по-хорошему). А их запросто может быть больше одного.
Спасибо сказали:
Аватара пользователя
yars
Сообщения: 1144
Статус: Slacker!
ОС: Slackware64-current

Re: Непонятка с history -c

Сообщение yars »

Еще нужно понимать, чем отличается $ su от $ su -:
(su(1)) писал(а):...
It is
recommended to always use the --login option (instead of its shortcut
-) to avoid side effects caused by mixing environments
...
-, -l, --login
Start the shell as a login shell with an environment similar
to a real login:

o clears all the environment variables except TERM

o initializes the environment variables HOME, SHELL,
USER, LOGNAME, and PATH

o changes to the target user's home directory

o sets argv[0] of the shell to '-' in order to make
the shell a login shell

Если войти через su, вся история будет фиксироваться в истории пользователя, а не рута.
http://man7.org/linux/man-pages/man1/su.1.html
Slackware64-current/Xfce 4.12/Acer TravelMate 5760
-------------
Registered Linux User #557010
Спасибо сказали:
Аватара пользователя
kerogaz
Сообщения: 916
ОС: CentOS,FreeBSD 12.1,Arch

Re: Непонятка с history -c

Сообщение kerogaz »

yars писал(а):
17.09.2015 12:52
Еще нужно понимать, чем отличается $ su от $ su -:
(su(1)) писал(а):...
It is
recommended to always use the --login option (instead of its shortcut
-) to avoid side effects caused by mixing environments
...
-, -l, --login
Start the shell as a login shell with an environment similar
to a real login:

o clears all the environment variables except TERM

o initializes the environment variables HOME, SHELL,
USER, LOGNAME, and PATH

o changes to the target user's home directory

o sets argv[0] of the shell to '-' in order to make
the shell a login shell

Если войти через su, вся история будет фиксироваться в истории пользователя, а не рута.
http://man7.org/linux/man-pages/man1/su.1.html

Тогда понятно, я заходил на сервер как юзер по ssh, поскольку по ssh вход root запрещен, набирал su и удалял историю рута, а надо было наверное удалять историю пользователя, под именем которого я входил по ssh
Спасибо сказали:
Аватара пользователя
bormant
Сообщения: 1354

Re: Непонятка с history -c

Сообщение bormant »

kerogaz писал(а):
17.09.2015 16:15
набирал su

Код: Выделить всё

su -
su -l
в помощь...
Спасибо сказали:
Аватара пользователя
Rootlexx
Бывший модератор
Сообщения: 4455
Статус: GNU generation
ОС: Debian GNU/Linux

Re: Непонятка с history -c

Сообщение Rootlexx »

yars писал(а):
17.09.2015 12:52
Если войти через su, вся история будет фиксироваться в истории пользователя, а не рута.

Не наблюдаю такого.
Спасибо сказали:
Ответить