it-swarm.com.de

Veranlassen Sie Sudoer, ihre eigene Verlaufsdatei zu verwenden

Ich kann es einfach nicht in Ubuntu zum Laufen bringen, es sollte eine einfache Antwort sein, vielleicht kann mir jemand helfen. Ich versuche nur, einen Sudoer dazu zu bringen, seine eigene History-Datei zu verwenden, aber wenn ich die History-Var im .bashrc für root setze, mit:

HISTFILE="/root/.bash_history.$Sudo_USER"

nichts scheint zu passieren.

Ich habe versucht, den /root/.bashrc und den /etc/skel/.bashrc mit dem obigen Eintrag zu ändern. Nichts. Ich habe dies in CentOS zum Laufen gebracht (Siehe Sudoer sollen ihre eigene History-Datei verwenden ).

Ich habe den Eintrag sogar an den Anfang der Datei verschoben, da ich einige Vorschläge gefunden habe, die besagten, dass er nach einem bestimmten Zeitpunkt möglicherweise ignoriert wird. Unabhängig von der Position werden die Verlaufsdateien jedoch nicht erstellt. Wenn ich meine Pfeiltaste benutze, aber die Einträge in der Historie sind da ... woher sie kommen, habe ich keine Ahnung mehr, es scheint eine Art Magie zu sein, Voodoo, wie es scheint.

Jede Hilfe wäre dankbar.

5
Willem P. Botha

Ich folgte nur dem, was Sie beschrieben, begleitet von ein paar Experimenten

~$ 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

Wenn wir also Standardbefehle Sudo ausführen oder, wenn wir Sudo -s verwenden, um eine Root-Shell zu erhalten, verwenden wir bereits unsere eigene History-Datei.

Nur wenn wir Sudo -i aufrufen, um eine korrekte Login-Shell zu erhalten, wird der ursprüngliche Root-Verlauf verwendet.

Jetzt bin ich deinem Beispiel gefolgt und habe /root/.bashrc bearbeitet, um es zu enthalten

HISTFILE="/root/.bash_history.$Sudo_USER"

als erste Zeile.

Das Wiederholen der obigen Experimente mit Sudo -s und Sudo ls -l $HISTFILE ergab die gleichen Ergebnisse wie zuvor (wie erwartet). Aber Sudo -i gab mir eine Shell ohne History (und auch ohne History-Datei).

Nach der Ausführung

~$ 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

und ausloggen

~$ 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

Ich erhalte die erwarteten Ergebnisse (einschließlich des Zugriffs auf "meinen" Verlauf mithilfe der Pfeiltasten).

Beachten Sie, dass der Inhalt von /root/.bashrc nur ausgeführt für eine interaktive Shell ohne Anmeldung (wie Sudo -s), für eine Anmeldeshell (wie Sudo -i) /root/.bashrc ist nur Quelle und nur, wenn /root/.profile so etwas enthält

if [ -f ~/.bashrc ]; then
 . ~/.bashrc
fi
3
guntbert