Как известно bash может хранить историю команд пользователя в файле ~/.bash_history Однако мне, как администратору, хотелось бы знать всю историю команд всех пользователей. Это очень важно - особенно в тех случаях, когда хочется узнать кто нагородил косяков, и как их быстрее исправить. В gentoo для этого нужно скомпилировать bash с флагом bashlogger # echo "app-shells/bash bashlogger" >> /etc/portage/package.use # emerge -av bash Далее, в /etc/syslog-ng/syslog-ng.conf необходимо сохранить поток сообщений в нужном месте: destination bash { file("/var/log/bash.log" owner(root) group(root) perm(0600)); }; filter f_bash { program(bash); }; filter f_messages { not program(bash); }; log { source(src); filter(f_bash); destination(bash); }; log { source(src); filter(f_messages); destination(messages); }; Можно устроить и ротацию нового лога: /var/log/bash.log { daily rotate 365 missingok notifempty compress delaycompress dateext nomail sharedscripts postrotate /etc/init.d/syslog-ng reload > /dev/null 2>&1 || true endscript }
Linux/Windows Справочник v0.05 © 2007-2024 Igor Salnikov aka SunDoctor