Hi, Paul van der Vlis ([email protected] on 2018-03-19 11:57 +0100): > > Het zou behulpzaam zijn, als ik had kunnen nagaan wat ik om 21:15 voor > commando had gegeven. Om het voor een volgende keer te voorkomen. > > bash_history is een goede zaak, maar eigenlijk zou ik het loggen van > commando's graag wat beter geregeld hebben. Zoals een timestamp voor > elk commando. En dat het direct wordt weggeschreven, ook vanuit > meerdere terminals tegelijk.
Zoals al aangegeven, heb je hiervoor geen alternatief nodig -- beide zijn mogelijk met bash zelf. Timestamps kun je activeren met de shell variable HISTTIMEFORMAT (bijvoorbeeld https://unix.stackexchange.com/questions/174900/histtimeformat-syntax) en direct wegschrijven van history kun je doen met PROMPT_COMMAND (bijvoorbeeld https://unix.stackexchange.com/questions/1288/preserve-bash-history-in-multiple-terminal-windows). De officiele documentatie is hier: https://www.gnu.org/software/bash/manual/html_node/Bash-History-Facilities.html, maar SE is vaak nuttiger. Ik heb nog wel een alternatief dat werkt ongeacht welke shell je gebruikt: je kunt NOEXEC:ALL toevoegen aan sudoers, zodat een root shell niets meer kan, en alle admins worden gedwongen om sudo te gebruiken voor ieder commando. Het voordeel daarvan is dat je sudo logging (syslog) kan gebruiken als audit log; het nadeel is dat je vervolgens wel EXEC:-uitzonderingen moet maken voor alle commando's die legitiem andere programma's uitvoeren, en dat zijn er helaas best wel veel. Groet, Arno
