Из какого журнала я могу получить подробную информацию о командах 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"))