З якого журналу я можу отримати детальну інформацію про команди sudo, виконані будь-яким користувачем. Він повинен містити робочий каталог, команду, користувача. Буде корисно, якщо ви зможете надати мені сценарій оболонки для цього
З якого журналу я можу отримати детальну інформацію про команди sudo, виконані будь-яким користувачем. Він повинен містити робочий каталог, команду, користувача. Буде корисно, якщо ви зможете надати мені сценарій оболонки для цього
Відповіді:
Залежно від вашого дистрибутива; просто:
$ sudo grep sudo /var/log/secure
або
$ sudo grep sudo /var/log/auth.log
що дає:
Nov 14 09:07:31 vm1 sudo: pam_unix(sudo:auth): authentication failure; logname=gareth uid=1000 euid=0 tty=/dev/pts/19 ruser=gareth rhost= user=gareth
Nov 14 09:07:37 vm1 sudo: gareth : TTY=pts/19 ; PWD=/home/gareth ; USER=root ; COMMAND=/bin/yum update
Nov 14 09:07:53 vm1 sudo: gareth : TTY=pts/19 ; PWD=/home/gareth ; USER=root ; COMMAND=/bin/grep sudo /var/log/secure
Користувач, який виконує команду, знаходиться після sudo:
- gareth
у цьому випадку.
PWD
- це каталог.
USER
- це користувач, який gareth
працює як - root
у цьому прикладі.
COMMAND
команда бігла.
Тому у наведеному вище прикладі gareth
використовували sudo
для запуску, yum update
а потім запускали цей приклад. Перед цим він набрав неправильний пароль.
Що стосується новіших систем:
$ sudo journalctl _COMM=sudo
дає дуже подібний вихід.
"Фільтр результатів" для рішення Гарета. (для тих, хто прибув за назвою посади, а не описом)
Надає вам чистий список лише команд, які виконуються як sudo, усіма користувачами.
$sudo journalctl _COMM=sudo | sed -e '/COMMAND/!d' -e 's/.*COMMAND=//' -e 's/.*bin\///'
Обхід, якщо sed недоступний
$sudo journalctl _COMM=sudo | grep COMMAND
Результати C&P на аркушах Google
У комірці B1 C&P ця формула
=arrayformula(REGEXREPLACE(A1:A,".*AND=/usr/bin/(.*)","$1"))