Я просто, может казаться, не заставляю это работать в Ubuntu, это должен быть простой ответ, возможно, кто-то может помочь мне. Все, что я пытаюсь сделать, заставляют sudoers использовать их собственный файл истории, но если я установил var истории в .bashrc
для корня с:
HISTFILE="/root/.bash_history.$SUDO_USER"
ничего, кажется, не происходит.
Я попытался измениться /root/.bashrc
и /etc/skel/.bashrc
с вышеупомянутой записью.Ничего. Я заставил это работать в CentOS прежде (См., заставляют sudoers использовать их собственный файл истории).
Я даже переместил запись в запуск файла, когда я нашел некоторые предложения, которые указали, что это может быть проигнорировано после определенного момента, но независимо от положения, не создаются файлы истории. Если я использую свою клавишу со стрелкой однако, записи истории там..., куда они прибывают от, у меня больше нет подсказки, на некоторое волшебство, Voodoo кажется, что это кажется.
Любая справка ценилась бы.
Я просто следовал за тем, что Вы описали, сопровождаемый несколькими экспериментами
~$ sudo -s
~# ls -l $HISTFILE
-rw------- 1 g g 44174 Jan 4 16:26 /home/g/.bash_history
~$ sudo -i
~# ls -l $HISTFILE
-rw------- 1 root root 2356 Jan 4 16:23 /root/.bash_history
~$ sudo ls -l $HISTFILE
-rw------- 1 g g 44174 Jan 4 16:26 /home/g/.bash_history
Таким образом, когда мы выполняем стандарт sudo
команды или когда мы используем sudo -s
для получения корневой оболочки, мы уже используем наш собственный файл истории.
Только, когда мы вызываем sudo -i
для получения надлежащей оболочки входа в систему, исходная корневая история используется.
Теперь я последовал Вашему примеру и отредактировал /root/.bashrc
содержать
HISTFILE="/root/.bash_history.$SUDO_USER"
как первая строка.
Повторение выше экспериментов с sudo -s
и sudo ls -l $HISTFILE
приведенный те же результаты как прежде (как ожидалось). Но sudo -i
дал мне оболочку без истории (и никакого файла истории любой).
После выполнения
~$ sudo -i
~# ls -l .bash_history*
-rw------- 1 root root 2412 Jan 4 17:16 .bash_history
~# echo $HISTFILE
/root/.bash_history.g
~# ls -l $HISTFILE
ls: cannot access '/root/.bash_history.g': No such file or directory
и выходить из системы
~$ sudo -i
~# ls -l .bash_history*
-rw------- 1 root root 2412 Jan 4 17:16 .bash_history
-rw------- 1 root root 52 Jan 4 17:25 .bash_history.g
Я получаю ожидаемые результаты (включая доступ к "моей" истории при помощи клавиш со стрелками.
Следует иметь в виду что содержание /root/.bashrc
только выполняются для интерактивной, оболочки невхода в систему (как sudo -s
), для оболочки входа в систему (как sudo -i
) /root/.bashrc
только получен, и только если /root/.profile
содержит что-то как
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi